![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Долго загружаются данные из базы данных [D7, Access]
smalik © (2003-06-30 15:35:00)Добрый день, Мастерам!
Буржуи прислали прайс 55 МВ в Ассеss"e 500 000 наименований, Используя ADO накатал прогу для склада. Работает все Ок, не считая долгой загрузки данных из базы по сетке. На 100 М/бит грузится 13 секунд выбор 1 позиции из базы. Наименование выбираю Select"ом. Как возможно ускорить загрузку данных, без улучшения железяк? Возможно есть какие-нибудь хитрости, более бысрый выбор, быстрее Select"а, или ещче что-нибудь.
Всем заранее спасибо! за любую полезную информацию.
Edward (2003-07-01 09:55:00) [1]Можно еще попробовать:
ADODataSet1.CursorLocation := clUseServer;
ADODataSet1.CursorType := ctOpenForwardOnly;
sniknik (2003-06-30 16:01:00) [2]добавка к
Семен Сорокин © (30.06.03 15:50)
попробуй ее сначала ключом сделать (если все неповторяющиеся, получится), по ключу поиск быстрее.
и (мало ли чего прислали), если база старая Access 97 то преобразуй к 2000-му.
smalik (2003-06-30 15:59:00) [3]Мужики, МАСТЕРА!
Всем СПАСИБО, к сожелению нет милисекундомера, засветить используемое время даже на 10 М/битах.
Семен Сорокин (2003-06-30 15:50:00) [4]smalik © (30.06.03 15:46)
В Access"e в Design"е для поля "Номер" таблы price поставь Indexed = true
да и посмотри там утилиты есть в Tools->Analyze по оптимизации
Карелин Артем (2003-06-30 15:47:00) [5]Индекс по полю Номер. Однозначно. У меня с индексом из таблицы на 10 000 000 записи быстрее секунды выбираются. Только база не Акцесса.
smalik (2003-06-30 15:46:00) [6]Семен!
На тему цифровых номеров к сожалению не получится, буквы однозначно присутствуют. Номера типа А0000000000, есть и другие маркировки. А на тему индексов, можно более подробно?
sniknik (2003-06-30 15:45:00) [7]индекс по Номер-у очень поможет, если он там уже есть то гдето глюк. (не может одну позицию так долго выбирать)
а если его там нет то 13 секунд на полный перебор 500 000 зап. - нормально.
Семен Сорокин (2003-06-30 15:41:00) [8]smalik © (30.06.03 15:39)
а Номер цифровым никак не сделать + индекс по нему?
smalik (2003-06-30 15:39:00) [9]Артем!
MainForm. AdoDataSet3.CommandText := "select * from price where Номер = """+ Edit1.Text+"""";
Карелин Артем (2003-06-30 15:37:00) [10]Было бы неплохо указать примерные запросы. А если select не простой, а с Where, то индексы возможно дадут счастие.