Як прискорити запити SQL, які проводяться над Paradox базою
Роблю запити до таблиці такого типу: SELECT DISTINCT S.FIO FROM STUDENT.DB WHERE S.BIRTHDAY BETWEEN "10.9.1932" and "10.9.1984" and S.SEX=TRUE У таблиці всього 50 записів. Цей запит виконується 1-2 хвилини! І це на 4-му пні! Чи впливають вторинні індекси на швидкість обробки даних? Що мені робити порадьте.
50 записів - 2 хвилини, цікаво, однак! Впливають-впливають
Як, звідки, якими засобами робиться запит? 1-2 хв. для 50 записів, навіть без індексів, - НОНСЕНС .
>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)
ВСІ! Розібрався. Дякую Вам за Ваші думки. Виявляється справа була в тому що динамічно формується запит формувався приблизно ось так : SELECT DISTINCT S.FIO FROM STUDENT.DB>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 хвилин доходити. Спробую зробити вторинні індекси по всіх полях, що беруть участь у запиті.
коли потрібно робити вибірки з кількох таблиць, треба вказувати зв'язки між таблицями, інакше отримуєш добуток таблиць, звідси й час