Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Подключение индексов в ADO / 7 сообщений из 7, страница 1 из 1
06.12.2006, 13:38
    #34180353
Pr0teus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подключение индексов в ADO
Работаю с БД Fox Pro 6.0 через ADO. И часто приходиться выполнять запрос вида

Код: plaintext
1.
2.
SELECT * FROM table WHERE dbid=ln_id .AND. recid=ln_recid


Можно ли сделать так, чтобы драйвер использовал индексы для поиска данной записи, а то все больно медленно получается, если в сумме считать, т.к. таких однотипных запросов много.
...
Рейтинг: 0 / 0
06.12.2006, 13:39
    #34180359
Pr0teus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подключение индексов в ADO
Добавление: прога, которая достукивается до данных, на Visual Basic 6.0 написана
...
Рейтинг: 0 / 0
06.12.2006, 15:04
    #34180710
Andrey Ts
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подключение индексов в ADO
Pr0teus...
Можно ли сделать так, чтобы драйвер использовал индексы для поиска данной записи, а то все больно медленно получается, если в сумме считать, т.к. таких однотипных запросов много.

Найдите и прочтите это в HELP для вашего драйвера - вероятно, по ключевому слову ИНДЕКС
...
Рейтинг: 0 / 0
06.12.2006, 15:11
    #34180740
Pr0teus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подключение индексов в ADO
Я тут поэкспериментировал. Поставил Regular индекс на поля dbid и recid (вручную). Все стало гораздо быстрее работать. Хотя я в программе на Basic'е я явно не указывал установку индекса, т.к. просто не знаю, как это сделать. Получается драйвер автоматически подхватил индекс, но вот вопрос вчера тоже создавали теже самые индексы (это делали из проги написанной на фоксе) и прога их не схватила и работала также медленно. Может проблема в COLLATE?
...
Рейтинг: 0 / 0
06.12.2006, 17:58
    #34181355
Igor86
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подключение индексов в ADO
Если с Фксовыми БД работаете через ADO, то лучше использовать Фоксовый OLEDB провайдер. Берите лучше самый последний, т.к меньше глюков и MS в нем подкручивала оптимизатор запросов. В Вашем контретном случае должна отработать Рамшор оптимизация, но дя этого обязательно нужны индексы дла полей dbid и recid. Рамшор оптимизатор автоматически подхватывает индексы и это значительно ускоряет работу запроса. От того на чем написана программа значения не имеет - работает в этом случае драйвер OLEDB. Если мне не изменяет память, то по умолчанию COLLATE = Machine.
...
Рейтинг: 0 / 0
06.12.2006, 18:44
    #34181450
Pr0teus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подключение индексов в ADO
Правильно ли я понял, что для такого типа запроса

Код: plaintext
1.
SELECT * FROM table WHERE dbid=ln_id .AND. recid=ln_recid

нужно сделать следующие индексы, чтобы заработал Rushmor
[Name] [Type] [Expression]
dbid Regular dbid
recid Regular recid
...
Рейтинг: 0 / 0
07.12.2006, 16:46
    #34183995
Igor86
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подключение индексов в ADO
Посмотри пример создания индексов, для Фоксовых таблиц, используя Фоксовый OLEDB. Как раз твой вариант. И еще - чтобы работал Рамшор оптимизатор индексы подключать не надо (так MS пишет).
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Подключение индексов в ADO / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]