|
|
su.dbms.sql- SU.DBMS.SQL ------------------------------------------------------------------ From : Tolik Tentser 2:5020/400 07 Feb 2001 18:33:50 To : All Subject : Re: Увеличение скорости -------------------------------------------------------------------------------- Hi, Vadim Rumyantsev! В чреве акулы, пойманной Tue, 06 Feb 2001 22:53:42 +0300, дети капитана Гранта нашли письмо на тему 'Увеличение скорости': >DB2 реально исполняет запрос по мере выполнения вызовов Fetch, а не в >результате вызова Execute. Т.е. на SELECT * FROM SomeTable ST WHERE ST.SomeField IN (complex_subquery) оно по каждому FETCH перебирает записи из SomeTable и выполняет для каждой из них этот самый complex_subquery, пока не найдет подходящую ? > TT> А результат SELECT в DB2 - это всегда курсор ? > >Да. В результате Execute(select) на сервере создаётся курсор, т.е., грубо >говоря, план доступа к данным. По мере выполнения функций Fetch в этот курсор >выбираются данные и передаются на клиент. Hу, а применительно к SYBASE/MSSQL есть просто еще один вид выборок, которые сразу отдают resultset на клиента. Серверные курсоры ведут себя похоже на DB2. И разговоры про "недофетчивание" касались только их. > TT> Такой курсор (при наличии поддержки клиентского софта, например ADO) > TT> "живет" на сервере, а клиент получает из него данные по одной записи > TT> (и может в нем позиционироваться) > >В DB2 не в любом курсоре можно позиционироваться. Обычный курсор допускает IMHO >всего три основные операции: создать (выполнив соответствующий оператор >выборки); прочесть очередную запись с переходом к следующей; закрыть. Hо можно >создавать и более навороченные курсоры, например, с позиционированием или с >возможностью обновления данных по ходу считывания. В общем-то тут все аналогично. Bye ... Тенцер А.Л. tolik@katren.nsk.ru ICQ 15925834 --- ifmail v.2.15dev5 * Origin: AO Katren (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /su.dbms.sql/2080940e35fb.html, оценка из 5, голосов 10
|