Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Поможите понять работу с TQuery/TADOQuery. [MSSQL]


Behemoth ©   (2003-08-13 16:16:00) 

Query после запроса возвращаяет набор данных, но путешествуя по нему (First, Next ...) все равно идет обращение к базе. Так ли это? Если так, то как сделать, чтобы после запроса Не было б этих обращений.


Desdechado   (2003-08-14 11:11:00) [1]

> Это действительно нормально?
Зависит от настроек MSSQL, операционки, числа подключений, вида выполняемых операций и т.д.


Nikolay M.   (2003-08-13 17:25:00) [2]


> На машине всего 512 физической памяти

Мало. Лучше гиг. А два - еще лучше. Только сколько ни ставь - все равно будет мало.


Behemoth   (2003-08-13 17:01:00) [3]

Спасибо. Теперь понятно.
Еще вопрос не в тему. Смотрю скоко сервер занимает памяти. На машине всего 512 физической памяти, а 490 из них занято виндами с сервером (сервер отдельно 380М). Я понимаю что кэширование запросов и т.д. но не столько же. Это действительно нормально?


Johnmen   (2003-08-13 16:59:00) [4]

>Behemoth © (13.08.03 16:16)
>... все равно идет обращение к базе.

Как это проверено ?


Nikolay M.   (2003-08-13 16:56:00) [5]


> делаю запрос возвращяющий 1 000 000 записей

А этот запрос у тебя на сервере мгновенно отрабатывает? Столько же, сколько и запрос, возвращающий 10 записей?


Vlad   (2003-08-13 16:53:00) [6]

Естественно, ведь время уходит на выполнение самого SQL запроса.
А клиент просто подтягивает нужное количество записей из полученного набора данных на сервере, по мере скроллинга клиентского датасета.


Behemoth   (2003-08-13 16:49:00) [7]

Тогда не пойму такую вещь: делаю запрос возвращяющий 1 000 000 записей, так у меня комп задумывается минуты на 3, а на 500 так это он лётом. По вашему должно одинаково. ???


Desdechado   (2003-08-13 16:26:00) [8]

Запрос к серверу формирует ответ.
Ответ подается на клиента не сразу, а частями. Для начала - штук 20. Потом когда ты переходишь на 21, клиент фэтчит (достает) очередную запись. Если ты пробежался по всем, то данные уже все на клиенте, больше ничего с сервера в этой транзакции не будет идти.
А делается так для экономии траффика.


MsGuns   (2003-08-13 16:25:00) [9]

Да, так, если объем записей превышает размеры кэша. Это совершенно нормально. Чтобы не было "елозанья", не надо писать запросы, возвращающие большое кол-во записей (на экране за раз более 3-4 десятков строк физически показать нельзя).


Vlad   (2003-08-13 16:23:00) [10]

CacheSize побольше поставь. Столько, сколько записей ты планируешь в датасете получать.


Наверх

Титульная страница Поиск, карта сайта Написать письмо