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


su.dbms.sql

 
 - SU.DBMS.SQL ------------------------------------------------------------------
 From : Vadim Rumyantsev                     2:5030/301     06 Feb 2001  23:53:42
 To : Tolik Tentser
 Subject : Увеличение скорости
 -------------------------------------------------------------------------------- 
 
 
 Во втоpник, 06 февpаля 2001 17:42:40, Tolik Tentser писал to All:
 
  >> Hет никакой "выборки" и никакого отбора до фетча.
 
  TT> :-) Уф, а я уже было испугался. Просто речь идет о разных
  TT> терминологиях. Hа этапе построения плана запроса - MSSQL тоже ничего
  TT> не блокирует. Однако же по факту его исполнения - он формирует поток
  TT> выбранных данных, который клиенту надлежит забрать. Целиком. Либо
  TT> забрать часть, а от остального отказаться. И вот от момента SELECT до
  TT> момента, когда клиент забрал с сервера запрошенные данные (или
  TT> отказался от дальнейшей выборки) - то, что отобрано, но еще не
  TT> считано клиентом - имеет место быть заблокированым.
 
 Так я, собственно, и пишу о том, что DB2 в общем случае ничего не отбирает до
 тех пор, пока клиент с помощью функции Fetch не попросил получить данные. Hет
 такой ситуации, когда "отобрано, но ещё не считано клиентом", поскольку отбор
 как раз и является результатом запроса на считывание. Говоря ещё более другими
 словами, DB2 реально исполняет запрос по мере выполнения вызовов Fetch, а не в
 результате вызова Execute.
 
 Соответственно, разница не только терминологическая, и DB2 успешно выполняет
 предложенный тобой тест со вставкой записи в таблицу во время выборки в другой
 задаче. И, как я понимаю, на обычном уровне изоляции CS вполне возможна такая
 ситуация, когда последний фетч вернёт данные, которых ещё не было в базе во
 время выполнения первого фетча (и тем более обработки Execute).
 
  >> Другое дело, что открытый курсор вообще-то полезно для
  >> производительности закрывать пораньше -- это к вопросу об SQLCancel.
 
  TT> А результат SELECT в DB2 - это всегда курсор ?
 
 Да. В результате Execute(select) на сервере создаётся курсор, т.е., грубо
 говоря, план доступа к данным. По мере выполнения функций Fetch в этот курсор
 выбираются данные и передаются на клиент.
 
  TT> Тут похоже рассогласование на уровне терминологии. В MSSQL оператор
  TT> SELECT - курсора не открывает. Он просто отбирает данные и отдает их
  TT> все клиенту целиком. Этот процесс и назывался фетчем. Разумеется, если
  TT> клиент не готов забрать их все зараз - то процесс приостанавливается и
  TT> ждет готовности клиента.
 
  TT> Курсор создается оператором DECLARE <name> CURSOR <options> FOR SELECT
  TT> ...
 
 В DB2 тоже есть такой оператор, но он просто делает курсор явным образом
 доступным клиенту, т.е. позволяет на него ссылаться из клиентской программы.
 
  TT> Такой курсор (при наличии поддержки клиентского софта, например ADO)
  TT> "живет" на сервере, а клиент получает из него данные по одной записи
  TT> (и может в нем позиционироваться)
 
 В DB2 не в любом курсоре можно позиционироваться. Обычный курсор допускает IMHO 
 всего три основные операции: создать (выполнив соответствующий оператор
 выборки); прочесть очередную запись с переходом к следующей; закрыть. Hо можно
 создавать и более навороченные курсоры, например, с позиционированием или с
 возможностью обновления данных по ходу считывания.
 
                                                                 Sincerely,
                                                                        Vadim.
 --- GoldED/2 3.0.1-GP
  * Origin: Electronic Kludge (2:5030/301)
 
 

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

 Тема:    Автор:    Дата:  
 Увеличение скорости   Alexander Kalin   30 Jan 2001 09:49:05 
 Re: Увеличение скорости   Konstantin Shafranov   30 Jan 2001 11:48:34 
 Re: Увеличение скорости   Gleb Oufimtsev   30 Jan 2001 12:13:01 
 Re: Увеличение скорости   Slava Skoryh   01 Feb 2001 09:19:34 
 Re: Увеличение скорости   Tolik Tentser   01 Feb 2001 18:59:06 
 Re: Увеличение скорости   Alex Petin   02 Feb 2001 09:01:49 
 Re: Увеличение скорости   Tolik Tentser   02 Feb 2001 19:00:24 
 Re: Увеличение скорости   Valitov Leonid   02 Feb 2001 20:03:29 
 Re: Увеличение скорости   Tolik Tentser   03 Feb 2001 09:28:45 
 Re: Увеличение скорости   Valitov Leonid   05 Feb 2001 14:31:11 
 Re: Увеличение скорости   Tolik Tentser   05 Feb 2001 19:02:28 
 DB using recommendations   Akzhan Abdulin   17 Feb 2001 14:15:04 
 DB using recommendations   Andrey   19 Feb 2001 09:11:04 
 Re: DB using recommendations   Tolik Tentser   19 Feb 2001 19:07:26 
 DB using recommendations   Akzhan Abdulin   21 Feb 2001 15:05:15 
 Re: DB using recommendations   Lilya A. Kozlenko   19 Feb 2001 18:22:43 
 Re: DB using recommendations   Alexander Skvortsov   20 Feb 2001 17:52:51 
 Re: Увеличение скорости   Slava Skoryh   02 Feb 2001 12:17:58 
 Увеличение скорости   Anatoly Ivanov   03 Feb 2001 02:35:52 
 Re: Увеличение скорости   Tolik Tentser   03 Feb 2001 09:32:46 
 Увеличение скорости   Vadim Rumyantsev   04 Feb 2001 00:30:15 
 Re: Увеличение скорости   Tolik Tentser   04 Feb 2001 09:11:51 
 Увеличение скорости   Vadim Rumyantsev   04 Feb 2001 21:34:06 
 Re: Увеличение скорости   Tolik Tentser   05 Feb 2001 11:43:16 
 Увеличение скорости   Vadim Rumyantsev   05 Feb 2001 23:16:50 
 Re: Увеличение скорости   Tolik Tentser   06 Feb 2001 18:42:40 
 Увеличение скорости   Vadim Rumyantsev   06 Feb 2001 23:53:42 
 Re: Увеличение скорости   Tolik Tentser   07 Feb 2001 18:33:50 
 Увеличение скорости   Vadim Rumyantsev   07 Feb 2001 22:40:03 
 Re: Увеличение скорости   Tolik Tentser   08 Feb 2001 07:32:02 
 Увеличение скорости   Vadim Rumyantsev   09 Feb 2001 00:30:26 
 Re: Увеличение скорости   Ilya Zvyagin   08 Feb 2001 13:37:30 
 Re: Увеличение скорости   Tolik Tentser   08 Feb 2001 19:14:27 
 Увеличение скорости   Anatoly Ivanov   04 Feb 2001 02:35:44 
 Re: Увеличение скорости   Tolik Tentser   04 Feb 2001 09:11:52 
 Увеличение скорости   Anatoly Ivanov   05 Feb 2001 01:51:44 
 Re: Увеличение скорости   Tolik Tentser   05 Feb 2001 07:46:36 
 Увеличение скорости   Vadim Rumyantsev   05 Feb 2001 12:45:49 
 Увеличение скорости   Vadim Rumyantsev   05 Feb 2001 12:51:53 
 Re: Увеличение скорости   Tolik Tentser   05 Feb 2001 19:08:32 
 Re: Увеличение скорости   Ilya Zvyagin   05 Feb 2001 23:24:26 
 Re: Увеличение скорости   Tolik Tentser   06 Feb 2001 08:04:55 
 Увеличение скорости   Vadim Rumyantsev   06 Feb 2001 11:59:22 
 Re: Увеличение скорости   Ilya Zvyagin   06 Feb 2001 14:28:40 
 Увеличение скорости   Vadim Rumyantsev   06 Feb 2001 12:03:12 
 Re: Увеличение скорости   Ilya Zvyagin   06 Feb 2001 14:32:44 
 Увеличение скорости   Vadim Rumyantsev   06 Feb 2001 23:47:29 
 Re: Увеличение скорости   Tengiz Kharatishvili   07 Feb 2001 04:41:11 
 Re: Увеличение скорости   Ilya Zvyagin   07 Feb 2001 12:04:55 
 Увеличение скорости   Vadim Rumyantsev   07 Feb 2001 22:38:03 
 Увеличение скорости   Mike_Timonov   08 Feb 2001 10:17:16 
 Re: Увеличение скорости   Ilya Zvyagin   08 Feb 2001 13:37:31 
 Увеличение скорости   Vlad Ermolaev   06 Feb 2001 17:39:00 
 Re: Увеличение скорости   Ilya Zvyagin   07 Feb 2001 12:02:54 
Архивное /su.dbms.sql/22163a8085db.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional