Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.02.20;
Скачать: CL | DM;

Вниз

Траблы с запросом   Найти похожие ветки 

 
}|{yk ©   (2005-01-20 13:09) [0]

Такой вот запрос
SELECT APP_LOG_TIME,
            APP_LOG_OPERATION,
            APP_LOG_OLD_VALUE,
            APP_LOG_NEW_VALUE,
            DML_CODE,
            APP_LOG_ID,
            APP_LOG_TABLE,
            STATUS,
            REASON
     FROM APP_LOG
      where
      STATUS="not sended" or
      STATUS=:inSTATUS1 or
      STATUS=:inSTATUS2 or
      STATUS=:inSTATUS3
     order by APP_LOG_TIME

во первых, при исполнении хавает 60 Мб на таблице из 9000 записей. Но это ладно. Но при прохождении по таблице с начала до конца на 6 тыс записей сообщает Out of memory. Хотя прога занимает 35 Мб памяти, и свободной памяти много. Что сделано неправильно? FB 1.5.2


 
Соловьев ©   (2005-01-20 13:14) [1]

индекс есть по APP_LOG_TIME? STATUS?
Попробуй
...
where STATUS in("not sended", :inSTATUS1, :inSTATUS2, :inSTATUS3)
...


 
}|{yk ©   (2005-01-20 13:26) [2]

Смысл индекса в поле, где может быть только 4 варианта?


 
Соловьев ©   (2005-01-20 13:27) [3]

тогда не надо


 
Соловьев ©   (2005-01-20 13:28) [4]

а какой тогда смысл проверки? 8)


 
Danilka ©   (2005-01-20 13:39) [5]


> во первых, при исполнении хавает 60 Мб на таблице из 9000
> записей. Но это ладно. Но при прохождении по таблице с начала
> до конца на 6 тыс записей сообщает Out of memory. Хотя прога
> занимает 35 Мб памяти, и свободной памяти много. Что сделано
> неправильно? FB 1.5.2

Если запустить запрос в ИБЭксперте и пролистать результат выполнения до конца, то-же самое происходит?
Сдается мне что дело не в запросе и не в индексах (9к записей без всяких индексов такой запрос шустро отработает), а в том, что ты делаешь "при прохождении по таблице с начала до конца".


 
Desdechado ©   (2005-01-20 14:16) [6]

у тебя случайно блобы не достаются?
это не блобы ли: APP_LOG_OLD_VALUE, APP_LOG_NEW_VALUE
Out of memory - это ClientDataSet может говорить, если фетчишь много и с блобами (поставь fetchblobondemand)


 
}|{yk ©   (2005-01-20 14:17) [7]

При выполнении в IBExpert запрос так же хавает 60 Мб памяти сервера. Но отфетчить записи можно.


 
Johnmen ©   (2005-01-20 14:42) [8]

>}|{yk ©  

Какой размер записи ?


 
}|{yk ©   (2005-01-20 14:45) [9]

Можно поставить UniDirectional := True. Но случился какой-то непонятный глюк и 20 записей в нужный файл так и не попало


 
Ega23 ©   (2005-01-20 14:48) [10]

2 }|{yk ©   (20.01.05 13:09)
Оффтоп.
Я бы на твоём месте поле STATUS или целочисленным сделал, или вообще в отдельную таблицу бы вынес. Хранить строки как-то...


 
}|{yk ©   (2005-01-20 15:07) [11]

Пожирание 60 Мб было связано с... order by APP_LOG_TIME. Поставил order by LOG_ID - FB на запрос отнимает всего 5 Мб!


 
Vlad ©   (2005-01-20 15:10) [12]


> }|{yk ©   (20.01.05 15:07) [11]

Сделай индекс по APP_LOG_TIME


 
}|{yk ©   (2005-01-20 15:36) [13]

В продолжение... Если поставить UniDirectional в true то все работает быстро. Но! Первые двадцать записей с непонятных мне причин имебт такие индексы: 1,20,1,20,1,20...22,23,24 и дальше нормально! Если же UniDirectional = false, то на 6 тысяче Out of memory


 
}|{yk ©   (2005-01-20 15:57) [14]

Вобщем, решил эту проблему следующим образом. Перед проходом по датасету устанавливаю dataset грида в nil. После окончания - восстанавливаю обратно. Работает, причем довольно быстро


 
Ega23 ©   (2005-01-20 16:02) [15]

2 }|{yk ©   (20.01.05 15:57) [14]

DisabledControls
EnabledControls
ставил?


 
Danilka ©   (2005-01-20 16:05) [16]

а грид тогда зачем? а если я в гриде буду листать, вылетит?


 
msguns ©   (2005-01-20 17:53) [17]

Жук, поясни для тупых: где тормоз-то: на выполнении запроса или на сканировании ?
И зачем вообще сканировать ?
Если не секрет, конечно.



Страницы: 1 вся ветка

Текущий архив: 2005.02.20;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.059 c
14-1106632599
syte_ser78
2005-01-25 08:56
2005.02.20
Что за ... спай?


3-1106640830
Koala
2005-01-25 11:13
2005.02.20
Помогите разобратся....


1-1107375723
Homa_Programer
2005-02-02 23:22
2005.02.20
Размер текста


1-1107740278
TReader
2005-02-07 04:37
2005.02.20
Как правильно использовать ReadInteger в TReader ?


14-1106939309
Ломброзо
2005-01-28 22:08
2005.02.20
"Что, уже началось?" :-)