Страница 2 из 2

Добавлено: 22 мар 2004, 19:42
Naeel Maqsudov
Минуточку, а сколько времени занимает Ctrl-PgDown (Т.е. полный фетч) при просмотре полученного рекордсета?

Добавлено: 22 мар 2004, 20:26
miland
Запрос в Query Analyzere длится 1 секунду. По Ctrl+End моментом перехожу на последнюю строку. Запрос:
select ContactID from membership where groupID=<число>
Собственно, разница во времени выполнения и натолкнула на мысль о потере производительности в так сказать бутерброде из ADO и ODBC.

Добавлено: 23 мар 2004, 16:37
AiK
miland, просто ради интереса: запусти тот же запрос на чистом OLE DB (?) драйвере для MS SQL Server'a...

Добавлено: 26 май 2004, 17:20
Слава
Лучшая производительность: ADO + MS SQL-сервер

Добавлено: 31 май 2004, 18:39
Naeel Maqsudov
Запрос в Query Analyzere длится 1 секунду. По Ctrl+End моментом перехожу на последнюю строку. Запрос:
select ContactID from membership where groupID=<число>
Ни за что не поверю, что 150тыс записей фетчатся мгновенно (даже если база локальная).
Виноват, Ctrl-End не показатель, так как более или менее умные приложения могут производить поиск последней записи используя или строя обратные индексы.

Добавлено: 01 июн 2004, 00:56
AiK
Naeel Maqsudov, всё очень просто - время выполнения запроса на сервере действительно очень маленькое. Время же выфетчивания резалтсета стандартными средствами не учитывается.
Т.е. для чистоты эксперимента нужно писать что то вроде этого:

declare @start datetime
select @start = date()
select * from...
select datediff('millisec', date(), @start)
Сорри за неточности, давненько шашек в руках не держал :)
Этот запрос нужно завернуть в хранимую процедуру и запустить таймер перед её запуском в Delphi и остановить после.
Разница между тем, что вернёт процедура в консоли и в программе на Delphi на одной и той же машине как раз и будет отображать степень тормознутости связки ADO+Delphi. Если тебе удается выфетчить в консколи 150К записей меньше чем за секунду, то в 3 секунды в дельфи ты всяко должен уложиться...
Но есть у меня большие подозрения, что всё это ты отливаешь в какой-нибудь грид и всё время расходуется на его перерисовку...

Добавлено: 01 июн 2004, 07:38
Naeel Maqsudov
Но есть у меня большие подозрения, что всё это ты отливаешь в какой-нибудь грид и всё время расходуется на его перерисовку...
Фетч не связан с перерисовкой, так как Table1.Last не по одной же записи щелкает до последней, а делает поиск переход на букмарк, причем все это заключено в Disable/EnableControls.
то в 3 секунды в дельфи ты всяко должен уложиться
Возможно. Надо пробовать.

Добавлено: 01 июн 2004, 12:56
AiK
Naeel Maqsudov, собственно в предыдущем сообщении я забыл переключится на miland'a :)

Добавлено: 25 июн 2004, 10:41
Paul
Возникла та же проблема - с длительностью выборки, но уже с подключением dBase-базы.
Никто не справился случайно с задачей?
Заметил, что при выборке создается временной файл размером запрашиваемой бызы.
Где-то вычитал,что если установить свойство clUseServer "все будет пучком".
А если сама база на сервере, где будет создаваться tmp-файл?