| |
|
|
| | Сейчас прикидываю как ускорить обработку запросов.
Есть рабочая база с доступом по сети с нескольких компов.
В базу записываются заказы.
В одном из параметров заказа пишется дата и время заказа.
И по сети при увеличении базы данных начинает замедляться работа при запросе к базе.
Запрос если отобразить в SQL выглядит так:
SELECT Заказы.НомерТелЗак, Заказы.ГородОткудаЗак, Заказы.УлицаОткудаЗак, Заказы.ДомПодъездОткудаЗак, Заказы.ГородКудаЗак, Заказы.РайонКудаЗак, Заказы.ДеньЗаказаЗак, Заказы.ВремяЗаказаЗак, Заказы.КоличПассЗак, Заказы.ФормаНачЗак, Заказы.ВодительЗак, Заказы.ВыполнениеЗаказаЗак, Заказы.ПримечЗак, Заказы.ДиспетчерЗак, СтатусЗаказа.СтатусЗаказа
FROM Заказы INNER JOIN СтатусЗаказа ON Заказы.Код = СтатусЗаказа.КодЗаказа
WHERE (((Заказы.ВыполнениеЗаказаЗак)=False) AND ((СтатусЗаказа.СтатусЗаказа)<4) AND (((([Заказы].[ДеньЗаказаЗак]+[Заказы].[ВремяЗаказаЗак]-Now())-0.042)*24)<=0))
ORDER BY Заказы.ДеньЗаказаЗак DESC , Заказы.ВремяЗаказаЗак DESC;
По идее перебирает всю базу при запросе. Что можно бы сделать чтобы ускорить?
Пока что из рабочей базы старые заказы удаляю (перекинув их в архивную копию).
В месяц 20000-40000 записей добавляется и когда общее число записей около 100000 тормоза становятся заметны при подключении по сети. | |
| |
| |
| |
|
|
| | после select надо звёздочку забабахать - вывод всех полей в запросе.
Очень много вычислений
попробуйте хотя бы Заказы.ВыполнениеЗаказаЗак)=False - в сортировку бросить, не выбирая, а сортируя по полю ВыполнениеЗаказаЗак
а сортировку (Заказы.ДеньЗаказаЗак DESC , Заказы.ВремяЗаказаЗак DESC;)убрать пусть сортируют кому как нравится. | |
| |
| |