|
|
|
| Здравствуйте,
Приложение на Accesse 2007 используется для создания(заполнения) отчета(таблица Ексель). Данные крутятся на SQL Server 2008 на отдельном сервере. Акцесс при обработке присоединят нужные таблицы через ODBC, расчетные данные получаю запросами DAO.Recordset. В "главной" таблице порядка 100 тыс. записей.
Еще неделю назад отчет обрабатывался за 10 мин. сегодня уходит около часа.
Выполняются запросы типа:
SELECT Sum([orit_count]*[orit_price]) AS SM FROM (dbo_Archives INNER JOIN (dbo_OrderItems INNER JOIN (dbo_Orders INNER JOIN dbo_Guests ON dbo_Orders.ordr_gest_ID = dbo_Guests.gest_ID) ON dbo_OrderItems.orit_ordr_ID = dbo_Orders.ordr_ID) ON dbo_Archives.arch_ID = dbo_Guests.gest_arch_ID) INNER JOIN dbo_MenuItemsVer ON dbo_OrderItems.orit_mitm_ID = dbo_MenuItemsVer.mitv_mitm_ID WHERE (((dbo_OrderItems.orit_deld_ID) Is Null) AND ((dbo_MenuItemsVer.mitv_mver_ID) Is Null) AND ((dbo_Archives.arch_dvsn_ID)=" & rstEx!Division & ") AND ((dbo_Archives.arch_DateOpen)>=#" & Format(Me!pDat, "mm\/dd\/yyyy") & "# And (dbo_Archives.arch_DateOpen)<#" & Format(DateAdd("d", 1, Me!pDat), "mm\/dd\/yyyy") & "#) AND ((dbo_MenuItemsVer.mitv_mtyp_ID)=2))
|
Подскажите как ускорить выполнение приложения?
Спасибо. | |
|
| |
|
|
|
| Посмотрите план выполнения запроса. возможно нужны доп индексы
откажитесь от связанных таблиц, используйте запросы к серверу | |
|
| |
|
|
|
| А можно как-то программно создавать запросы к серверу, потому как параметры в where все время меняются?
или остается только создавать запрос к серверу: "select * from ТАБЛИЦА" и уже потом другим запросом обращаться к нему для выборки данных... | |
|
| |
|
|
|
| вариант 1
http://support.microsoft.com/kb/112108
Вариант 2
создаете простой запрос к серверу
сохраняете его
когда нужно использовать заменяете у него свойство sql на сформированную строку | |
|
| |
|
|
|
| 1- вариант понравился больше всего!!!
Время обработки 10 секунд при полной автоматизации )))
Тема ЗАКРЫТА.
Всем огромное спасибо!!! | |
|
| |
|
|
|
| ОООО спасибо огромное!!!
Используя запросы к серверу отчет обрабатывается 2 минуты | |
|
| |