![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
ADO [D7, XP]
DimOk © (2008-03-03 09:34:00)Доброго времени суток вам мастера. Скажите пожалуйсто как можно ускорить работу ADO. У меня ситуация следующая - таблица имеет около 20 тысяч записей, после того как я пишу ADOTable.Activate := True; сижу и смоотрю в монитор минут пять, при чем на достаточно хорошм железе.... Все настройки компонента по умолчанию, за исключением Connection
Anatoly Podgoretsky (2008-03-03 18:49:00) [1]> DimOk (03.03.2008 11:09:16) [76]
А нафига нам обсуждать один нереальный запрос, а у тебя совсем другой крутится.
Приведеный запрос никогда не сможет исполниться.
DimOk (2008-03-03 15:38:00) [2]
> см.
> SELECT SomeField OREDR BY SomeField
Большое спасибо за подсказку! Буду пробовать все это воплощать в жизнь....:)
Сергей М. (2008-03-03 15:34:00) [3]
> результаты запросов уже приходилось сортировать
Нафига сортировать результат, если можно получить ужесортированную выборку ?
см.
SELECT SomeField OREDR BYSomeField
На сравнительно больших НД существующий индекс по полю SomeField по результирующей скорости выполнения запроса наверняка обставит любой изощренный алгоритм сортировки на стороне клиента.
DimOk (2008-03-03 15:27:00) [4]
> Осталась самая "малость" - [25]...
Ну это я думаю у меня трудносте не вызовет, т.к. результаты запросов уже приходилось сортировать, да и в справке написанно про это понятней уже не куда. Но.......... если что начну новуу тему, как сортировать выборку из таблицы имеющую одну колонку..... :))
Сергей М. (2008-03-03 15:23:00) [5]Чудненько)
Осталась самая "малость" - [25]...
DimOk (2008-03-03 15:09:00) [6]
> Впрочем для твоей задачи этот "пролет со свистом" будет
> скорей более вреден, чем полезен - тебе ж надо предоставить
> юзеру твои 20 тыс. записей сразу, а не "частями" по мере
> их загрузки.
Вообще то да, но и 2-4 секунды можно подождать ..... :)
Сергей М. (2008-03-03 15:06:00) [7]
> что за зверь такой
Впрочем для твоей задачи этот "пролет со свистом" будет скорей более вреден, чем полезен - тебе ж надо предоставить юзеру твои 20 тыс. записей сразу, а не "частями" по мере их загрузки.
DimOk (2008-03-03 15:05:00) [8]
> См. TADOTable.ExecuteOptions
Cool! Вообще летает :)
Сергей М. (2008-03-03 15:00:00) [9]См. TADOTable.ExecuteOptions
DimOk (2008-03-03 14:58:00) [10]
> async fetch
А это что за зверь такой.....?
Сергей М. (2008-03-03 14:56:00) [11]
> А с этим еще быстрее
А если еще async fetch прикрутить, то вообще со свистом пролетать будет)
DimOk (2008-03-03 14:55:00) [12]
> Похоже, что из-за бестолкового привлечения тобой в запросе
> мемо-полей львиная доля времени уходила на вынужденное открытие
> файлов с мемо-данными и позиционирование в них. Чего сам
> Фокс по умолчанию, естественно, не делал в таких же условиях.
>
Я не профи но думаю так же и полностья с вами согласен. Всем еще раз большое спасибо! :)
Сергей М. (2008-03-03 14:53:00) [13]
> DimOk
Похоже, что из-за бестолкового привлечения тобой в запросе мемо-полей львиная доля времени уходила на вынужденное открытие файлов с мемо-данными и позиционирование в них. Чего сам Фокс по умолчанию, естественно, не делал в таких же условиях.
Kolan (2008-03-03 14:51:00) [14]+ еще сразу количество уменьшить до того, как показываешь и будет нормально.
Сергей М. (2008-03-03 14:49:00) [15]Ну а с учетом этого еще минимум в 2 раза быстрей будет.
DimOk (2008-03-03 14:48:00) [16]
> И результат в <= 4 сек - это с учетом [98] или без ?
А с этим еще быстрее !!!! :)
DimOk (2008-03-03 14:47:00) [17]
> И результат в <= 4 сек - это с учетом [98] или без ?
Без.
Сергей М. (2008-03-03 14:45:00) [18]И результат в <= 4 сек - это с учетом [98] или без ?
DimOk (2008-03-03 14:40:00) [19]
> Включая как минимум одно мемо-поле ?
Нет, только типа char и double :)
Сергей М. (2008-03-03 14:37:00) [20]
> два конкретных поля
Включая как минимум одно мемо-поле ?