![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как ускорить запросы SQL проводимые над Paradox базой? [D6, Paradox]
firedemon © (2002-09-10 13:35:00)Делаю запросы к таблице такого типа:
SELECT DISTINCT S.FIO
FROM STUDENT.DB S
WHERE S.BIRTHDAY BETWEEN "10.9.1932" and "10.9.1984" and S.SEX=TRUE
В таблице всего 50 записей. Этот запрос выполняется 1 или 2 минуты! И это на 4-ом пне!
Влияют ли вторичные индексы на скорость обработки данных?
Что мне делать посоветуйте.
ЮЮ (2002-09-12 04:15:00) [1]когда нужно делать выборки из нескольких таблиц, надо указывать связи между таблицами, иначе получаешь произведение таблиц, отсюда и время
firedemon (2002-09-11 11:06:00) [2]ВСЁ! Разобрался. Спасибо Вам за Ваши мысли.
Оказывается дело было в том что динамически формируемый запрос формировался примерно вот так :
SELECT DISTINCT S.FIO
FROM STUDENT.DB S,SPECIALITY.DB P,LEVELSVK.DB K,LANGUAGE.DB L
WHERE S.BIRTHDAY BETWEEN "11.9.1932" and "11.9.1984" and S.SEX=TRUE
Хотя таблицы SPECIALITY.DB P,LEVELSVK.DB K,LANGUAGE.DB L не учавствуют в запросе! НО с другой стороны, а когда их нужно включать в запрос - время выборки будет вообще до 5 минут доходить. Попробую сделать вторичные индексы по всем полям учавствующим в запросе.
MsGuns (2002-09-10 17:55:00) [3]>WHERE S.BIRTHDAY BETWEEN "10.9.1932" and "10.9.1984" and
> S.SEX=TRUE
Возьми условия в скобки (у меня тоже такое было):
WHERE (S.BIRTHDAY BETWEEN "10.9.1932" and "10.9.1984") and
(S.SEX=TRUE)
Johnmen (2002-09-10 15:25:00) [4]Как, откуда, какими средствами делается запрос ?
1-2 мин. для 50 записей, даже в отсутствии индексов, - НОНСЕНС !!!
Shaman_Naydak (2002-09-10 15:10:00) [5]50 записей - 2 минуты, любопытно, однако!
Влияют-влияют