Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2005.02.20;
Скачать: [xml.tar.bz2];

Вниз

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

 
}|{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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.035 c
3-1106246660
Urvin
2005-01-20 21:44
2005.02.20
Начала с БД


1-1107116061
newid
2005-01-30 23:14
2005.02.20
помогите сделать временную копию объекта


14-1107054763
Бугага
2005-01-30 06:12
2005.02.20
Enterprise Resource Planning


3-1106229162
EthernalWonderer
2005-01-20 16:52
2005.02.20
TopRow в DBGrid


6-1102401635
Pretender
2004-12-07 09:40
2005.02.20
У становка Indy 9 на Delphi 6





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский