Форум программистов, компьютерный форум, киберфорум
Наши страницы
Базы данных
Войти
Регистрация
Восстановить пароль
 
tretmike
0 / 0 / 0
Регистрация: 15.08.2007
Сообщений: 20
#1

Производительность ADO (работа с MDB) - Базы данных

15.08.2007, 09:13. Просмотров 939. Ответов 7
Метки нет (Все метки)

У меня есть MDB-база, в которой хранится порядка 100000 записей - телефонный номера.
Хотелось бы вывести их все единым списком, а затем, когда пользователь, начинает вводить номер телефона, то позиционироваться по первым цифрам на нужную запись.
Все работает (пользую методом Find), только ужасно медленно. Поиск 'Phone Like '5*'' отрабатывает порядка 8 секунд.
Подскажите, что можно сделать для повышения производительности.

Буду очень признателен. Михаил.
http://www.cyberforum.ru/database/thread460338.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.08.2007, 09:13
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Производительность ADO (работа с MDB) (Базы данных):

Работа с Paradox в Delphi через ADO.
Добрый день. Я пишу приложения баз данных на Delphi, в данном случае с...

Конвертация MDB->DBF
Как можно сконвертировать базу Access в базу Visual FOxpro 6 ?

Изменение адреса файла mdb
Как сделать, чтобы в последствии я мог изменять нахождении базы данных и проект...

сжатие файла mdb в access97
плз подсажите решение: после выполнения каждой процедуры модуля, файл с базой...

Имя пользователя в MDB - файле
Как узнать имя пользователя с правами администратора в MDB- файле

7
сержвск
0 / 0 / 0
Регистрация: 03.08.2007
Сообщений: 61
15.08.2007, 09:59 #2
Если по рекордсету, то SEEK.
Если через ListBox , for i =0 to lb.listcount-1
0
tretmike
0 / 0 / 0
Регистрация: 15.08.2007
Сообщений: 20
16.08.2007, 05:10  [ТС] #3
Я пользуюсь RecordSet'ом c SQL-выражением вида 'select * from People order by phone'.
Я попробовал использовать метод Seek, но мне сообщается, что индексы не поддерживаются.
Так что проблема осталась.
0
сержвск
0 / 0 / 0
Регистрация: 03.08.2007
Сообщений: 61
16.08.2007, 08:45 #4
В DAO: Открой рекордсет, как таблицу(), создай индекс на поле ORDER и используй SEEK.
0
lan
0 / 0 / 0
Регистрация: 26.03.2007
Сообщений: 240
16.08.2007, 11:24 #5
По идее так и должно быть. Номер в строке, а работа со строкой самая медленная. Можно выпендриться таким образом: номер 7 цифр, разбиваешь на семь полей (Integer), на каждое поле индекс. И вперёд - дёшево и сердито .
0
tretmike
0 / 0 / 0
Регистрация: 15.08.2007
Сообщений: 20
16.08.2007, 11:42  [ТС] #6
Так ведь что обидно. Если открыть запрос в Access, то поиск идет просто махом. Причем не только по номеру телефона, но и по фамилии, и по адресу.
И я не могу понять, почему через ADO это так медленно.
0
lan
0 / 0 / 0
Регистрация: 26.03.2007
Сообщений: 240
16.08.2007, 11:51 #7
Старик, это не обидно - оно так и есть. ДАО - это специально для джета (т.е. работает непосредственно с джетом, без всякой кучи преобразований), а адо ( по структуре) пока доберётся до джета - долго получается. АДО чем хорош - универсален, только провайдера указывай...
Золотое правило механики.
0
tretmike
0 / 0 / 0
Регистрация: 15.08.2007
Сообщений: 20
16.08.2007, 12:13  [ТС] #8
Проверил с DAO. Небо и земля. Поиск идет мгновенно.
Теперь проблема только в том, что обычно я работаю в Дельфи. Но это уже другая история.
0
16.08.2007, 12:13
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.08.2007, 12:13
Привет! Вот еще темы с решениями:

ADO Connection и MDB
Здравствуйте. Использую MDB где нибудь на расшаренном ресурсе. Коннекчюсь,...

Скорость выгрузки из ado .mdb в xls
Я заметил, что скорость выгрузки данных из ado .mdb в .xls очень низкая....

Программное создание mdb в Builder 2010 с ADO
Информации в нете хоть и много, но она раздроблена. как в 2010 Билдере создать...

Можно ли в ADO использовать mdb, находящийся на хостинге?
можно ли в ADO использовать базу mdb, которая находится на хостинге.база только...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru