|
Не хватает кеша. Sybase IQ 16.0
|
|||
---|---|---|---|
#18+
SP не помню какой, но кажется последний. При выполнении SELECT возникает ошибка: [15:20:05] Stanislav Polunin: There was an error reading the results of the SQL statement. The displayed results may be incorrect or incomplete. temp Bufman: All buffer cache pages are in use, ask your DBA to increase the size of the buffer cache. -- (slib\s_blockmap.cxx 6028) SQLCODE=-1009031, ODBC 3 State="HY000" temp Bufman: All buffer cache pages are in use, ask your DBA to increase the size of the buffer cache. -- (slib\s_blockmap.cxx 6028) SQLCODE=-1009031, ODBC 3 State="HY000" Кеши по 2 ГБ. В запросе таблица примерно 5 млрд. записей, соединяется с 10-15 справочников и делается GROUP BY, - запрос из SAP BO. Подскажите, это глюк какой-то или нормальное поведение IQ ? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2014, 17:42 |
|
Не хватает кеша. Sybase IQ 16.0
|
|||
---|---|---|---|
#18+
john2007, в частности, если в SELECT оставить только count(*), то выполняется, а если добавить еще SUM() по полю типа decimal (36,16) то вылетает с этой ошибкой. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2014, 18:00 |
|
Не хватает кеша. Sybase IQ 16.0
|
|||
---|---|---|---|
#18+
john2007, не могу сказать именно про 16 версию, но 2 Гб на кеши при таких объемах это не серьезно. По поводу COUNT() и SUM() это абсолютно разные для IQ задачи по объему данных. Увеличивайте кеши в разы как минимум. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2014, 09:53 |
|
Не хватает кеша. Sybase IQ 16.0
|
|||
---|---|---|---|
#18+
john2007, Включаем план запроса с Index_Advisor=On Query_Plan_After_run=Off NoExec=On Смотрим в нём на Output Vector - сколько в байтах на каждой ноде плана * на кол-во Estimated Rows Плюс смотрим на Estimated Temp Space Usage (по ошибке - не хватает Temp Cache). Возможно не хватает индекса (смотрим на Index Advice) - поэтому запросу нужно много места в temp Store, например, на Order By ... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2014, 12:18 |
|
Не хватает кеша. Sybase IQ 16.0
|
|||
---|---|---|---|
#18+
И ещё: Смотрим на Storage size for a decimal number: http://infocenter.sybase.com/help/topic/com.sybase.infocenter.dc38151.1603/doc/html/san1278452908740.html Для decimal (36,16) получаем 24 байта, умножаем на 5 млрд = 112 Гб только на эту колонку... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2014, 12:26 |
|
Не хватает кеша. Sybase IQ 16.0
|
|||
---|---|---|---|
#18+
Спасибо! Я понимаю, что объемы обрабатываемых данных больше чем 2Гб, но: 1) Это же кеш, он ИМХО должен влиять только на быстродействие, но не работоспособность в принципе. 2) 5 млрд. записей, честно говоря, ИМХО, не так уж и много для ХД. 3) Кеш - это же оперативная память, мне что нужно 112 Гб (decimal (36,16) получаем 24 байта, умножаем на 5 млрд) оперативки только под одну эту колонку? Или я что-то не правильно понял и это все такая специфика IQ? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2014, 10:56 |
|
Не хватает кеша. Sybase IQ 16.0
|
|||
---|---|---|---|
#18+
посмотрел в плане Est. Temp Space Used (Mb) - 25.8 ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2014, 11:29 |
|
Не хватает кеша. Sybase IQ 16.0
|
|||
---|---|---|---|
#18+
john2007, Чтобы не гадать, план в html выложите плз. set temporary option Query_Plan='ON'; set temporary option Query_Detail='ON'; set temporary option Query_Timing='ON'; set temporary option Query_Plan_After_Run='OFF'; set temporary option Query_Plan_As_HTML='ON'; set temporary option Index_Advisor='ON'; set temporary option NoExec='ON'; Запрос. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2014, 12:39 |
|
Не хватает кеша. Sybase IQ 16.0
|
|||
---|---|---|---|
#18+
Забыл пароль, Приложил! ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2014, 17:18 |
|
Не хватает кеша. Sybase IQ 16.0
|
|||
---|---|---|---|
#18+
Судя по плану вы вообще кроме дефолтных индексов FP - больше никаких не используете, что есть плохо. В частности в вашем случае по полям соединия, группировки - используется FP индексы Почитайте тут Always use indexes on .... Index Advisor вам даже подсказывает, что надо сделать. Раставите нужные индексы, и тогда почти уверен - ругательство исчезнет ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2014, 18:22 |
|
Не хватает кеша. Sybase IQ 16.0
|
|||
---|---|---|---|
#18+
moris, да, спасибо, я обратил на это внимание, когда выше предложили посмотреть на сообщения Advisor, так и попробуем сделать, по результату отпишусь в ветке, как будут результаты! но, ИМХО, это глюк и решение - workaround, т.е. так быть не должно. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2014, 19:08 |
|
Не хватает кеша. Sybase IQ 16.0
|
|||
---|---|---|---|
#18+
Нет это не глюк. Это ожидаемо. Точная статистика в IQ (особо необходимая при join) есть только в HG/LF индексах. Без знания точной статистики оптимизатор строит планы на дефолтной, в результате план не оптимальный , и в кеш приходится поднимать значительно больше данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2014, 19:22 |
|
|
start [/forum/topic.php?fid=55&msg=38538681&tid=2009880]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
61ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 170ms |
0 / 0 |