Низкая скорость запроса Pervasive

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

Ответить
Ренат
Постоянный обитатель
Сообщения: 194
Зарегистрирован: 12 сен 2007, 16:34
Откуда: Глазов
Контактная информация:

Низкая скорость запроса Pervasive

Сообщение Ренат »

Доброе время суток.

Есть задача - делать срезы БД за определенный период времени. Далее предпологается отслеживать что изменилось. Интерисуют лишь наладные и их спецификации. Предполагаю переносить данные посредством средств SQL сервера через драйвер ODBC в базу SQL сервера.
В чем проблема - Пишу запрос. Для начала ,самое простое, что могло прийти с лету

Код: Выделить всё

SELECT  K.NREC, K.NAME, K.DESCR, K.SUMMA, K.DSOPR, K.NSOPR, K.VIDSOPR, K.CPODRFROM, K.CPODRTO, K.CORG
FROM KATSOPR K
where K.Dsopr ='2008-04-04'
Запрос выполняется очень долго! :(
Почему так может происходить?
Спасибо.
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Сообщение edward_K »

это где? в сапорте? если да то один вопрос - когда ж народ научится форумы читать и не писать неиндексные условия запроса?
where K.Dsopr ='2008-04-04'
замените на
where (( 0 == k.cnzakaz and date(4,4,2008) == k.dsopr )) ;
если все таки cnzakaz заполнено где то смотрите индекс katsopr02
а мзмененые можно по и по atl_lastdate вытянуть - сразу нужное получите.
Ренат
Постоянный обитатель
Сообщения: 194
Зарегистрирован: 12 сен 2007, 16:34
Откуда: Глазов
Контактная информация:

Сообщение Ренат »

Нет. Это на MS SQL сервере в ветке "Data Transformation Services" раздел "Local Package". Так же можно запрос выполнить и через
"Pervasive Control Center"
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Сообщение edward_K »

ну в любом разе такого индекса нет
добавте условие по cnzakaz первым.
Ренат
Постоянный обитатель
Сообщения: 194
Зарегистрирован: 12 сен 2007, 16:34
Откуда: Глазов
Контактная информация:

Сообщение Ренат »

Переделал в

Код: Выделить всё

SELECT  K.NREC, K.NAME, K.DESCR, K.SUMMA, K.DSOPR, K.NSOPR, K.VIDSOPR, K.CPODRFROM, K.CPODRTO, K.CORG
FROM KATSOPR K
where (0=K.cnzakaz and '2008-04-04'=K.Dsopr)
Теперь работает быстро. Но раз нет индекса значит без страшных тормозов не обойтись?
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Сообщение edward_K »

на то они и индексы :)
Ответить