Форум: "Базы";
Текущий архив: 2003.09.01;
Скачать: [xml.tar.bz2];
ВнизКак использовать индексы Foxpro при подключении чере ODBC ? Найти похожие ветки
← →
Vorobyev Sergey (2003-08-06 15:40) [0]Привет всем!
Есть несколько таблиц *.dbf, созданных в Foxpro..
Извлекаю данные из таблиц, используя TQuery через Microsoft Visual Foxpro ODBC драйвер.. (BDE не подходит)
В таблицах много записей (до 100000 записей в среднем) и запрос выполняется ОЧЕНЬ долго (~2 мин)
Предполагаю, что если бы использовались индексы при выполнении запроса, то он выполнялся бы намного быстрее..
Вот собственно и
ВОПРОС: Возможно ли где-нибудь указать драйверу, чтобы он использовал индексы таблиц (*.cdx) при выполнении запроса?
Или все-таки драйвер автоматически использует индексы, а запрос даже в этом случае выполняется долго? (хотя сравнивал, разницы не почувствовал)
Кто знает?
← →
sniknik (2003-08-06 15:45) [1]использует автоматически но и от запроса зависит (условия), на вычисляемых индекс не работает.
← →
Vorobyev Sergey (2003-08-07 07:21) [2]
> на вычисляемых индекс не работает.
А почему ?
Дело в том, что Visual Foxpro ODBC драйвер поддерживает функции в SQL запросе, причем не просто функции, а те, которые используются в досовском фокспро, например (alltrim(), ctod(), date()
и т.п.)
Неужели, включив использование этих функций в запросе, разработчики драйвера не включили поддержку индексов по вычисляемым выражениям..
К примеру, есть индекс поalltrim(fam)+alltrim(name)+alltrim(otch)
..
>sniknik
Значит драйвер не будет использовать этот индекс в SQL запросе?
← →
sniknik (2003-08-07 08:06) [3]не будет если в условие поставить к примеру name = "xxxx" (даже вероятно и fam = "xxxx"), для составного индекса, так понимаю, оно в таком случае и будет вычисляемым.
хотя по началу строки в индексе некоторые драйвера могут работать (поэтому не уверен во втором приведенном условии).
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.09.01;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.009 c