Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.02.06;
Скачать: CL | DM;

Вниз

ADOQuery && full database scan   Найти похожие ветки 

 
Октавиан   (2004-01-13 14:32) [0]

Мне нужно просканировать всю базу данных, с учётом что в ней могут быть примерно 100000 рядов а у клиента опер. память не в 1Gb. Я пользуюсь компонентой ADOQuery и база данных на MsSQl. Я заметил две штуки, во первых при сканировании както этот компонент ограничивается примерно 60 Mb что всё равно не мало, и еше программа теряет темп уже после первой тысячи. Для решении первой проблемы я пробовал ставить ADOQuery.CursorType:=ctForwardOnly но это не помогает (тогда для чего эта опция сушествует вообще !?). Для второй проблемы я поставил ADOQuery.CacheSize:=500 и ExecuteOptions eoAsyncFetch:=True что повысило скорость но всё равно темп быстро падает. Если можете подскажите как зделать лучше.


 
sniknik ©   (2004-01-13 14:39) [1]

один дополнительный скромный вопрос...
а для чего тебе сканировать всю базу? чего ты этим хочеш добится? и зачем через клиента, нельзя ли на сервере?

(3 получилось... :о()


 
Danilka ©   (2004-01-13 14:40) [2]

что значит "просканировать"?
а на счет, "как сделать лучше", специально для этого придумали язык, называется SQL, на котором обьясняют серверу что надо сделать, и он сам все делает, не выплевывая мильены записей на клиента.


 
Danilka ©   (2004-01-13 14:51) [3]

а обозвать записи рядами - это круто! :))
интересно, а как поля называцца будут, вероятно полочками.


 
Vlad ©   (2004-01-13 14:57) [4]

ИМХО, такие вещи надо в хранимой процедуре делать, а не на клиенте. Пожалей пользователя.


 
Октавиан   (2004-01-13 15:46) [5]

Я перефразирую чтоб было более понятно, да прога может выполняться на сервере, но всё равно мне надо все записи пропустить через прогу (она делает очень сложную и комлексную статистику которую мало кто в силах выразить через один огромный SQL запрос). Дело в том что эта прога будет запускаться ровно один раз в году, думаю это не будет грехом пропустить почти всю базу данных через прогу. Так как мне ограничить рост памяти в ADOQuery ?


 
Danilka ©   (2004-01-13 15:49) [6]


> она делает очень сложную и комлексную статистику которую
> мало кто в силах выразить через один огромный SQL запрос

А вот для этого как раз и служат ХП!
Какая разница, на чем писать эту самую "прогу", на дельфи или в ХП на T-SQL, но во втором случае посчитает сам сервер, не загружая ни клиента ни сеть. :))



Страницы: 1 вся ветка

Текущий архив: 2004.02.06;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.023 c
3-16121
RUYurik
2004-01-15 07:59
2004.02.06
Объем данных - 4,5 млн записей: не хватает вирт.памяти


7-16765
Zheks
2003-11-17 11:18
2004.02.06
Есть ли компонент для программирования портов?


1-16407
Prankster
2004-01-20 21:47
2004.02.06
FindFirst,FindNext


14-16696
Egloo
2004-01-16 11:03
2004.02.06
DHTML SDK... ПОМОГИТЕ ПОЖАЛУЙСТА!!!


4-16834
vitalmoya
2003-12-01 23:03
2004.02.06
Название, класа по идентификатору