|
su.dbms.sql- SU.DBMS.SQL ------------------------------------------------------------------ From : Vadim Rumyantsev 2:5030/301 06 Feb 2001 12:03:12 To : Ilya Zvyagin Subject : Увеличение скорости --------------------------------------------------------------------------------
В понедельник, 05 февpаля 2001 22:24:26, Ilya Zvyagin писал to All:
IZ> Так если клиент не будет фетчить - до COMMIT просто дело не дойдет.
IZ> Просто серверный процесс буфер заполнит - и встанет ждать пока клиент
IZ> все отсосет. Все ж строго синхронно. Поэтому ( к Вадиму ) кстати и
IZ> недофетчивать нельзя. Hу, т.е. можно, но отказавшись от результатов,
IZ> т.е. SQLCancel вызвать или его аналог в соотв. API.
О чём ты говоришь, какой буфер, какая строгая синхронность?! Hет ничего такого в
DB2. "Hедофетченье" вообще рекомендовалось IBM'ерами как базовая техника, пока
сравнительно недавно не придумали "FETCH FIRST x ROWS ONLY" в SQL (аналог SELECT
TOP x).
В DB2 можно параллельно в одной и той же транзакции выполнять сколько угодно
разных операторов. Единственная синхронность заключается в том, что сами
_вызовы_ на клиенте будут сериализованы, т.е. DB2 Client внутри себя обвешан
семафорами и будет одновременные вызовы API из разных ниток выполнять по
очереди, в порядке поступления. Тем более нет никаких проблем с последовательным
выполнением разных вызовов.
Другое дело, что открытый курсор вообще-то полезно для производительности
закрывать пораньше -- это к вопросу об SQLCancel.
* * *
У меня появилось страшное подозрение: не хочешь ли ты сказать, что в MS SQL
нельзя в одной транзакции работать одновременно с двумя запросами, фетча
потихоньку то из одного, то из другого? Или по мере фетча записей из одного
запроса выдавать другие запросы и получать их результаты?
Sincerely,
Vadim.
--- GoldED/2 3.0.1-GP
* Origin: Electronic Kludge (2:5030/301)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /su.dbms.sql/22163a7fda80.html, оценка из 5, голосов 10
|