Время выполнения запроса
Добавлено: 29 окт 2007, 10:17
Периодически (раз в 2 часа) в табличку переливаются данные из внешних OLTP-систем (делается с помощью IBPump-а). Предварительно удаляются из таблицы записи, датированные текущим месяцем и заливаются обновленные, тоже за текущий месяц (положим 100 тыс. записей). Таким образом осуществляется поддержание актуального состояния записей. Затем из этой таблички запросами делаются отчеты (запросы простые select * from Table) очередность выполнения запросов, формирующих отчеты фиксирована, и записана в BAT-файле. Выборок много, с разными фильтрами, есть выборки, пролетающие за секунды есть и подольше. Есть пара выборок (возвращают 300-500 тыс записей) с числом полей до 30, по которым происходит странная ситуация (систематически!):
После заливки данных первый раз запрос возвращает записи очень долго, примерно около часа, Затем выполняются более мелкие запросы, а если запустить повторно запрос (после всех остальных), который долго выполнялся, то возвращает все записи уже за 2-3 минуты. Так же помечено, что если в запросе поменять условия фильтрации, то отработает он тоже очень быстро.
Подскажите пожалуйста как побороть эту напасть и сделать так, чтобы запрос выборки не провисал на час?
Подскажите где собака порылась. Такое впечатление что первое выполнение длинного запроса происходит без использования индексов.
Условия: FB 1,5. Заливка :Ibpump 3,4, выборки для создания отчетов при помощи ODBC 1.02.00.69 Phoenix. таблица индексирована по полям, используемым в фильтрах, изменение очередности выполнения запросов не влияет на скорость их выполнения.
После заливки данных первый раз запрос возвращает записи очень долго, примерно около часа, Затем выполняются более мелкие запросы, а если запустить повторно запрос (после всех остальных), который долго выполнялся, то возвращает все записи уже за 2-3 минуты. Так же помечено, что если в запросе поменять условия фильтрации, то отработает он тоже очень быстро.
Подскажите пожалуйста как побороть эту напасть и сделать так, чтобы запрос выборки не провисал на час?
Подскажите где собака порылась. Такое впечатление что первое выполнение длинного запроса происходит без использования индексов.
Условия: FB 1,5. Заливка :Ibpump 3,4, выборки для создания отчетов при помощи ODBC 1.02.00.69 Phoenix. таблица индексирована по полям, используемым в фильтрах, изменение очередности выполнения запросов не влияет на скорость их выполнения.