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

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

Какие установки и действия должны быть для следующей задачи... [D6, Access]


brestmarket ©   (2003-03-15 12:29:00) 

Есть Access *.mdb база, содержащая два поля (телефон и ФИО) состоящая из 300 тыс. записей. Для доступа используется Jet 4.0, ADOSQL, условие доступа ShareDenyWrite.
ВОПРОС: Как наиболее быстро (методы, настройки базы...) осуществлять доступ к базе и делать поиск по первому совпадению и выборку.
Надо ли еще как-то создавать индексы в своей программе, если в самой базе Access поля уже проиндексированы?

p.s. На компьютерах PII база запускается больше 40 секунд.


sniknik   (2003-03-15 21:26:00) [1]

вопрос расплывчатый (не все понял) как доступ идет (компоненты), если ADOTable то все ясно почему долго (одно открытие вкачивает в рекордсет "300 тыс. записей"). Если же другие то поставь ограничение (WHERE) в используемые запросы.

> ShareDenyWrite - есть необходимость? базу с CD читаеш? нет поставь Share Deny None.

>Надо ли еще как-то создавать индексы в своей программе, если в самой базе Access поля уже проиндексированы?
база одна что в Access что в Delphi раз индекс создан то он везде есть.

> ВОПРОС: Как наиболее быстро (методы, настройки базы...) осуществлять доступ к базе и делать поиск по первому совпадению и выборку.
запросы в любом случае. (только ограниченные а не на всю таблицу)
(выборка 100 записей из 1.5 млн. по индексированному полю идет ~ 20-30 мс. ну конечно о компа тоже зависит)

CursorLocation верни на клиентский, кроме быстрого открытия серверный ничего тебе не даст. (Access локальня база) а проблем добавит (с определением количества выборки, порядкового номера если вдруг нужно, и т.д.).

> поиска с помощью Locate.
делай запрос вместо локейта либо поиск по фильтру (обязательно по индексированному полю) хотя и локейт будет быстрее если найдет индекс (долго, видимо не находит).


brestmarket   (2003-03-15 19:39:00) [2]

может кто поможет?...


brestmarket   (2003-03-15 14:50:00) [3]

Спасибо. Приведенный совет действительно позволил быстрей запускать оболочку, но это никак не отразилось на скорости поиска с помощью Locate. Как более эффективно искать и делать выборку в моем случае?


Delirium   (2003-03-15 14:37:00) [4]

CursorLocation=clServer


Наверх

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