30.06.2017 09:47
OlegON
 
Нене, ее там и не должно было быть...
30.06.2017 11:23
bob
 
Цитата:
Mtirt bob, попробуй собрать статистику по четырем темповым таблицам: TTCASHCLASS, TTCASHMATRIX, TTCASHQUEUE, TTCARDCHANGE.
Мне помогло.
ANALYZE TABLE <TABLE_NAME> COMPUTE STATISTICS;

или лучше

dbms_stats.gather_table_stats('OWNER', 'INDEX_NAME');

Хуже точно не будет? и ее разово собрать, или постоянно запускать с какой-то периодичностью?
30.06.2017 11:28
Mtirt
 
Сейчас Олег закидает меня тапками, но я не знаю.
Я вчера запустила EM, и он это сделал за меня.

Думаю, что надо разово собрать при работающем кассовом модуле (под нагрузкой).
30.06.2017 12:43
bob
 
INSERT INTO TTCARDCHANGES(ARTICLE, REMOVED, PRICE, DEPID, IDCLASS, IDSCALE, DATATYPE, MINPRICE, DISCLIMITPERCENT) SELECT C.ARTICLE, '0', NVL(P.PRICE,0),0, C.IDCLASS, DECODE(BITAND(C.FLAGS,2),0,C.IDSCALE,NULL), C.DATATYPE, (SELECT E.MINPRICE FROM SMEXTRACHARGE E WHERE E.PRICETYPE = :B2 AND E.ARTICLE = C.ARTICLE ) MINPRICE, (SELECT E.PERCENT FROM SMDISCLIMITS E WHERE E.PRICEID = :B2 AND E.ARTICLE = C.ARTICLE ) DISCLIMITPERCENT FROM SMCARD C, SMPRICES P, TTCASHQUEUE T WHERE C.ACCEPTED = 1 AND (C.CASHLOAD<>'0') AND P.STORELOC(+) = :B1 AND P.PRICETYPE(+) = :B2 AND P.ARTICLE(+) = C.ARTICLE AND T.ARTICLE = C.ARTICLE AND (P.PRICE>0 OR BITAND(C.FLAGS,1024)<>0 OR :B1 = -1) AND ( EXISTS (SELECT * FROM TTCASHCLASS T WHERE T.TREE='#') OR EXISTS (SELECT * FROM SACARDCLASS A, TTCASHCLASS T WHERE A.ID = C.IDCLASS AND A.TREE LIKE T.TREE||'%') OR EXISTS (SELECT * FROM SMCARDMATRIX X, SACARDMATRIX A, TTCASHMATRIX T WHERE X.ARTICLE = C.ARTICLE AND A.ID = X.IDMATRIX AND A.TREE LIKE T.TREE||'%') )
30.06.2017 12:57
Mtirt
 
Да-да, висело именно на этом запросе...
И все темповые таблицы из него.
30.06.2017 21:14
bob
 
Мне не помог расчет статистики. Правильно Олег сказал, что ее там не должно быть. Написал в поддержку. У многих такие проблемы. может план запроса попробовать изменить. но блин мне все это дико не нравится. Скорее всего запрос криво написан и не оттестирован.
06.07.2017 07:49
bob
 
begin

dbms_stats.gather_table_stats(
ownname=> 'SUPERMAG',
tabname=> 'TTCARDCHANGES' ,
estimate_percent=> DBMS_STATS.AUTO_SAMPLE_SIZE,
cascade=> DBMS_STATS.AUTO_CASCADE,
degree=> null,
no_invalidate=> DBMS_STATS.AUTO_INVALIDATE,
granularity=> 'AUTO',
method_opt=> 'FOR ALL COLUMNS SIZE AUTO');

dbms_stats.gather_table_stats(
ownname=> 'SUPERMAG',
tabname=> 'TTCASHCLASS' ,
estimate_percent=> DBMS_STATS.AUTO_SAMPLE_SIZE,
cascade=> DBMS_STATS.AUTO_CASCADE,
degree=> null,
no_invalidate=> DBMS_STATS.AUTO_INVALIDATE,
granularity=> 'AUTO',
method_opt=> 'FOR ALL COLUMNS SIZE AUTO');

dbms_stats.gather_table_stats(
ownname=> 'SUPERMAG',
tabname=> 'TTCASHMATRIX' ,
estimate_percent=> DBMS_STATS.AUTO_SAMPLE_SIZE,
cascade=> DBMS_STATS.AUTO_CASCADE,
degree=> null,
no_invalidate=> DBMS_STATS.AUTO_INVALIDATE,
granularity=> 'AUTO',
method_opt=> 'FOR ALL COLUMNS SIZE AUTO');

dbms_stats.gather_table_stats(
ownname=> 'SUPERMAG',
tabname=> 'TTCASHQUEUE' ,
estimate_percent=> DBMS_STATS.AUTO_SAMPLE_SIZE,
cascade=> DBMS_STATS.AUTO_CASCADE,
degree=> null,
no_invalidate=> DBMS_STATS.AUTO_INVALIDATE,
granularity=> 'AUTO',
method_opt=> 'FOR ALL COLUMNS SIZE AUTO');

end;
06.07.2017 08:09
bob
 
причем первый раз, когда запускал статистику в момент выполнения запроса - не помогло. а сегодня, когда вычислял статистику при остановленной выгрузке, а после сбора статистики запустил выгрузку, то прошло за 4 минуты.
06.07.2017 08:47
OlegON
 
Цитата:
OlegON Сбор статистики по временным таблицам больше похож на игру в рулетку. Именно по этому общая рекомендация такую статистику удалять вообще, либо задавать ее руками.
Цитата:
bob причем первый раз, когда запускал статистику в момент выполнения запроса - не помогло. а сегодня, когда вычислял статистику
есть вариант, что еще раз соберешь - опять плохо будет работать
06.07.2017 16:02
bob
 
Угу. несколько раз запустилось нормально, а дальше опять по 40 минут. мне что ее теперь на втомат в задачи поставить раз в час что ли?

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.