Главная страница


su.dbms

 
 - SU.DBMS ----------------------------------------------------------------------
 From : Victor Metelitsa                     2:5020/400     14 Jan 2002  18:19:24
 To : All
 Subject : в чем зло хранимых проце  дур?
 -------------------------------------------------------------------------------- 
 
 
 Во-первых, я считаю их злом из "педагогических" соображений. Реляционка 
 - это ведь про множества записей и операции над множествами? А некие 
 товарищи (не буду говорить, кто... ! да я даже в книжке по Oracle 
 примеры такого кода видел, якобы учебного) обращаются с реляционкой, как 
 с Клиппером, даже когда убогие возможности "их" SQL позволяют без этого 
 обойтись. Рекорд (в моих глазах) поставил некий крутой спец по ораклу, 
 который и количество записей в выборке так считает - открыл курсор, 
 обнулил счетчик, и вперед по записям, накручивая счетчик!
 
 Во-вторых, всякие сложные вычисления. Здесь - вопрос веры. Я верю, что 
 немыслимо закрученные UPDATE и т.п. (изредка демонстрируемые мне) - это 
 всего лишь результат неправильной постановки задачи. Доказать я это не 
 могу, потому что для этого придется в каждую задачу вникать, а это 
 немыслимо. Hо я в это верю. Когда-то я в SU.DBMS.SQL продемонстрировал 
 DB2-шный запрос немыслимой величины, а Румянцев по этому или подобному 
 поводу сказал, что это результат плохой схемы данных. Когда я 
 познакомился с TOPLink'ом и ее (схему) переосмыслил, я понял/решил, что 
 он был прав.
 
 Контрпример из IBM-овской поставки - нахождение медианы выборки. 
 Действительно, нет способа ее вычислить, кроме как просканировать 
 выборку до середины, и не тянуть же ее на клиента? Hо - кому она нужна, 
 медиана?
 
 Третье - построение изощренных схем проверок бизнес-правил и секьюрити. 
 Hо SP для этого не обязательны (на DB2, понятно).
 
 Четвертое - псевдо-ОО-подход, инкапсуляция etc. У меня к этому 
 отношение, как к тому же псевдо-ОО на plain C. Там теоретически тоже 
 можно этим заниматься, делать объекты через структуры и указатели на 
 функции, только ведь это чудовищное уродство. А в случае СУБД - в десять 
 раз уродливее. Чем брать суррогат, не лучше ли взять натуральный продукт?
 
 Пятое - раздувание кода. Если программёрам платят построчно, это для них 
 достоинство, но...
 
 ***
 
 "правильный подход по ВВМ".
 
 Я предпочитаю минимизировать усилия. Скажем, для настройки СУБД или 
 создания индексов для запросов я прибегаю к "визардам".
 
 Hо, как правило, и SQL-запросов не пишу. Я когда-то приводил примеры 
 работы с TOPLink'ом, приведу еще. Hапример, пусть объект employee имеет 
 атрибут
 lname со значением 'Иванов', session - коннект с базой данных.
 
 "1" session beginUnitOfWork.
 "2" session registerObject: employee.
 "3" employee lname: 'Петров'.
 "4" session beginUnitOfWork.
 "5" session registerObject: employee.
 "6" employee lname: 'Сидоров'.
 "7" session rollbackUnitOfWork.
 "8" session commitUnitOfWork.
 
 Пример демонстрирует вложенные транзакции. В двойных кавычках - 
 комментарий (я перенумеровал строки для наглядности). После 
 registerObject: система отслеживает изменения. Когда в 7-й строке 
 произошел rollback, фамилия сотрудника автоматически вернулась к 
 прежнему значению ('Петров'), присвоенному в 3-й строке. Когда в 8-й 
 строке произошел commitUnitOfWork, если эта единица работы не заключена 
 в какую-то другую, TOPLink сгенерировал SQL-выражение (наподобие UPDATE 
 EMPLOYEE SET lname='Петров' WHERE employeeId=что-то-там) и выполнил его, 
 затем COMMIT. TOPLink имеет много возможностей и умеет генерировать 
 очень сложные запросы, а также берет на себя заботу об identity-полях 
 (причем эмулируя их там, где их нет).
 
 Hа SP так просто не получится (мягко говоря).
 
 Далее,
 
 у меня такой код зашит в клиентских программах, их обновления 
 автоматически доставляются на рабочее место (а можно было использовать 
 shared resource), так что рассинхронизации нет. Более правильно было бы, 
 чтобы такой код был загружен в единственном экземпляре, т.е. трехзвенка; 
   а если application server расположен, скажем, там же, где и 
 SQL-сервер, то и медианы можно было бы находить без напряга, сетевого 
 трафика нет; увы, у меня пока не так. Еще лучше было бы выкинуть 
 SQL-сервер на помойку и пользоваться чистым GemStone/S, но это слишком 
 дорого (особенно, учитывая, что спиратить его, в отличие от 
 DB2/Oracle/etc, практически невозможно).
 -- 
 Отправлено через сервер Talk.Ru - http://www.talk.ru
 --- ifmail v.2.15dev5
  * Origin: Talk.Ru (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 в чем зло хранимых проце дур?   Victor Metelitsa   14 Jan 2002 18:19:24 
 Re: в чем зло хранимых процедур?   Vladimir Petrov   14 Jan 2002 20:12:01 
 Hа: в чем зло хранимых процедур?    Sergey Pratch   15 Jan 2002 01:50:26 
 Re: Hа: в чем зло хранимых процедур?   Andrei N.Sobchuck   15 Jan 2002 10:17:10 
 Hа: Hа: в чем зло хранимых процедур?    Sergey Pratch   15 Jan 2002 23:41:28 
 Re: Hа: в чем зло хранимых процедур?   Vladimir Petrov   16 Jan 2002 14:44:53 
 Re: Hа: в чем зло хранимых процедур?   sad   16 Jan 2002 15:01:18 
 Hа: Hа: в чем зло хранимых процедур?    Sergey Pratch   16 Jan 2002 22:53:31 
 Hа: Hа: в чем зло хранимых процедур?   Andrei Sokolik   17 Jan 2002 14:46:04 
 Re: Hа: в чем зло хранимых процедур?   Vladimir Pavlikov   18 Jan 2002 16:20:07 
 Re: Hа: в чем зло хранимых процедур?   Eugene Karataev   18 Jan 2002 17:44:34 
 Re: Hа: в чем зло хранимых процедур?   sad   18 Jan 2002 18:11:22 
 Re: Hа: в чем зло хранимых процедур?   Eugene Karataev   18 Jan 2002 18:40:14 
 Hа: в чем зло хранимых процедур?   Maksim Zaitcev   21 Jan 2002 10:05:36 
 Re: Hа: в чем зло хранимых процедур?   Ilya Zvyagin   18 Jan 2002 13:49:48 
 Hа: в чем зло хранимых процедур?   Michael Demichev   21 Jan 2002 15:26:50 
 Re: в чем зло хранимых процедур?   Ilya Zvyagin   22 Jan 2002 19:58:29 
 Re: в чем зло хранимых процедур?   Nikolay Kulikov   16 Jan 2002 15:03:23 
 Hа: в чем зло хранимых процедур?    Sergey Pratch   16 Jan 2002 22:53:31 
 Re: в чем зло хранимых процедур?   Nikolay Kulikov   18 Jan 2002 15:03:57 
 Re: в чем зло хранимых процедур?   Tolik Tentser   18 Jan 2002 19:29:41 
 Hа: в чем зло хранимых процедур?    Sergey Pratch   19 Jan 2002 21:09:06 
 Re: в чем зло хранимых процедур?   Ilya Zvyagin   22 Jan 2002 14:11:10 
 в чем зло хранимых процедур?   Roman Dawydkin   17 Jan 2002 11:56:30 
 в чем зло хранимых процедур?   Vladimir Chernyshov   18 Jan 2002 11:41:49 
 Re: в чем зло хранимых процедур?   sad   18 Jan 2002 15:40:59 
 в чем зло хранимых процедур?   Roman Dawydkin   21 Jan 2002 13:49:46 
 в чем зло хранимых процедур?   Andrei Sokolik   18 Jan 2002 17:08:06 
 Re: в чем зло хранимых процедур?   Serguei Tarassov   19 Jan 2002 00:56:32 
 Hа: Hа: в чем зло хранимых процедур?   Andrei Sokolik   17 Jan 2002 14:56:56 
 Hа: Hа: в чем зло хранимых процедур?   Michael   18 Jan 2002 00:00:26 
 Hа: Hа: в чем зло хранимых процедур?   Andrei Sokolik   18 Jan 2002 17:19:10 
 Hа: Hа: в чем зло хранимых процедур?   Michael   18 Jan 2002 21:39:17 
 Hа: Hа: в чем зло хранимых процедур?   Andrei Sokolik   21 Jan 2002 16:06:42 
 Re: Hа: Hа: в чем зло хранимых процедур?   yurik shestakov   19 Jan 2002 14:52:42 
 Hа: Hа: в чем зло хранимых процедур?   Andrei Sokolik   21 Jan 2002 16:31:24 
 Re: в чем зло хранимых процедур?   Ilya Zvyagin   14 Jan 2002 21:07:29 
 по мотивам хранимых процедур...   sad   15 Jan 2002 11:18:47 
 Re: по мотивам хранимых процедур...   Ђ«ҐЄбҐ© Њ ¬®­®ў   15 Jan 2002 15:00:37 
 по мотивам хранимых процедур...   Vadim Rumyantsev   20 Jan 2002 20:33:56 
 Re: по мотивам хранимых процедур...   sad   21 Jan 2002 11:35:56 
 по мотивам хранимых процедур...   Vadim Rumyantsev   21 Jan 2002 19:39:01 
 Re: по мотивам хранимых процедур...   sad   22 Jan 2002 11:13:37 
 Re: по мотивам хранимых процедур...   Dmitry Novikov   22 Jan 2002 11:36:14 
 Re: по мотивам хранимых процедур...   Vladimir Pavlikov   22 Jan 2002 16:59:53 
 по мотивам хранимых процедур...   Vadim Rumyantsev   25 Jan 2002 22:06:22 
 по мотивам хранимых процедур...   Michael Demichev   21 Jan 2002 15:17:02 
 Re: по мотивам хранимых процедур...   sad   22 Jan 2002 11:03:20 
 по мотивам хранимых процедур...   Michael Demichev   23 Jan 2002 19:58:33 
 Hа: в чем зло хранимых процедур?    Sergey Pratch   15 Jan 2002 01:50:27 
 Re: в чем зло хранимых проце дур?   Andrew Grachyov   16 Jan 2002 00:20:00 
 в чем зло хранимых проце дур?   Michael Demichev   21 Jan 2002 14:47:52 
Архивное /su.dbms/53640ffd1573.html, оценка 3 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional