11.08.2007 18:14
vdm
 
Хотел секционировать что нибудь :) но что-то наша 8-ка, хотя и называла себя Enterprise, в partitioning было false и что странно,
в инсталляторе эта опция отсутствовала.
Поэтому вдруг, не подготовившись вообще *194 , переехал на 9,
ну и заслуженно огреб по полной программе *192
(полдня операторы курили, пока индексы/статистика не ожили)

Подобные вещи на форуме почитал, но всеж напишу свое.

P4 2-х ядерный, 4Гб, база 80Гб (дамп 14Гб) на 3-х raid1
Win2003, Oracle 9.2.0.8

Cначала по мелочи - старая проблема еще с 8-ки
Все дольше, часами принимаются Z-отчеты,
там многократно повторяется этот запрос:
Код:
delete FROM supermag.smcashdisc d
    WHERE EXISTS (SELECT 1
                      FROM supermag.smcashchecks c
                      WHERE c.locid = d.locid
                        AND c.desknum = d.desknum
                        AND c.znum = d.znum
                        AND c.checknum = d.checknum
                        AND c.opcode = 3)

Operation	Object Name	Rows	Bytes	Cost	Object Node	In/Out	PStart	PStop

SELECT STATEMENT Optimizer Mode=CHOOSE		7  	 	24102  	 	      	             	 
  HASH JOIN SEMI		7  	238  	24102  	 	      	             	 
    TABLE ACCESS FULL	SUPERMAG.SMCASHDISC	27 M	582 M	7607  	 	      	             	 
    TABLE ACCESS FULL	SUPERMAG.SMCASHCHECKS	2 M	23 M	1398
Чем лечить ?

Также еле ворочаются отчеты по аналитике (всяческие ffmaprep+ffmaprep_ table access full)
Например, один из таких запросов для оборачиваемости по поставщикам

Код:
INSERT INTO supermag.ttturnoversupp1
    (suppid, locid, article, summa)
    (SELECT t.suppid, t.locid, t.article, round(sum(t.summa * nvl(p.price1, 0)), 
            2)
         FROM (SELECT /*+  ORDERED USE_HASH (m l spl) */ 
                      m.incomeclientindex suppid, l.id locid, m.article article, 
                      sum(decode(l.id, m.salelocationfrom, -m.quantity, 
                      m.quantity)) summa
                   FROM supermag.smstorelocations l, supermag.fvmaprep m
                   WHERE m.saledate <= to_date('31.07.2007', 'DD.MM.YYYY')
                     AND m.incometype = 'WI'
                     AND m.forcedmapping = 0
                     AND l.id IN (m.salelocationto, m.salelocationfrom)
                     AND l.id IN (SELECT id
                              FROM supermag.ttloclist)
                     AND m.incomeclientindex IN (SELECT id
                              FROM supermag.ttsuppllist)
                     AND m.article IN (SELECT crd.article
                              FROM supermag.smcard crd
                              WHERE crd.datatype != 4
                                AND crd.article IN (SELECT article
                                         FROM supermag.ttidgroup))
                   GROUP BY m.incomeclientindex, l.id, m.article) t, 
              supermag.ttgoodsnotsale1 p
         WHERE t.locid = p.locid (+)
           AND t.article = p.article (+)
         GROUP BY t.suppid, t.locid, t.article)
 
Operation	Object Name	Rows	Bytes	Cost	Object Node	In/Out	PStart	PStop

INSERT STATEMENT Optimizer Mode=CHOOSE		1  	 	16321  	 	      	             	 
  SORT GROUP BY		1  	109  	16321  	 	      	             	 
    NESTED LOOPS OUTER		3  	327  	16318  	 	      	             	 
      VIEW		1  	56  	16317  	 	      	             	 
        SORT GROUP BY		1  	160  	16317  	 	      	             	 
          SORT GROUP BY		1  	160  	16317  	 	      	             	 
            HASH JOIN		589 K	89 M	14051  	 	      	             	 
              VIEW		86 K	7 M	4289  	 	      	             	 
                UNION-ALL		  	 	 	 	      	             	 
                  TABLE ACCESS FULL	SUPERMAG.FFMAPREP	48 K	1 M	2402  	 	      	             	 
                  TABLE ACCESS FULL	SUPERMAG.FFMAPREP_	38 K	1 M	1887  	 	      	             	 
              HASH JOIN		1 G	65G	9762  	 	      	             	 
                INDEX FULL SCAN	SUPERMAG.SMCSTORELOCATIONS_PK	27  	81  	1  	 	      	             	 
                MERGE JOIN CARTESIAN		1 G	62G	188  	 	      	             	 
                  MERGE JOIN CARTESIAN		53 M	2G	187  	 	      	             	 
                    HASH JOIN		6 K	229 K	186  	 	      	             	 
                      INDEX FULL SCAN	SUPERMAG.TTCIDGROUP_PK	8 K	215 K	 	 	      	             	 
                      TABLE ACCESS FULL	SUPERMAG.SMCARD	93 K	819 K	173  	 	      	             	 
                    BUFFER SORT		8 K	103 K	14  	 	      	             	 
                      INDEX FULL SCAN	SUPERMAG.TTCSUPPLLIST_PK	8 K	103 K	 	 	      	             	 
                  BUFFER SORT		20  	260  	187  	 	      	             	 
                    INDEX FULL SCAN	SUPERMAG.TTCLOCLIST_PK	20  	260  	 	 	      	             	 
      TABLE ACCESS BY INDEX ROWID	SUPERMAG.TTGOODSNOTSALE1	3  	159  	1  	 	      	             	 
        INDEX UNIQUE SCAN	SUPERMAG.TTCGOODSNOTSALE1_PK	1
Попробую все же порезать ffmap на секции - есть смысл, например для запроса выше?
От fullscan в данном случае уйдем или не ?

Compress где имеет смысл - на всех больших таблицах или где-то не нужно?

И что совсем плохо - перемещения встали, смена статуса с черновика до зеленой - до 25 мин, буду ловить, отпишусь, *23
11.08.2007 19:00
OlegON
 
А оптимайзер? Просто ты пожаловался, а зацепок для рекомендаций не оставил, собсно.
11.08.2007 19:57
vdm
 
Оптимайзер был пока в таком виде
/optimize /novalid
т.к. возможности сделать полный прогон нет, будет только завтра ночью.
В пройденном - ничего криминального.
На параметры памяти (ораклу больше 2-х Гб отдано), max_rollback_segments>99 и левые пакеты spotlight-a ругнулся.
А, еще 3 индекса не смог пересоздать (заняты были) - я их вручную потом сделал.

Какую цифирь сказать, чтоб было о чем говорить?
11.08.2007 20:09
baggio
 
init.ora положи...
Размер и параметры(max,min экстент) RBS...
Размер и параметры(max,min экстент) TEMP...
Размер и параметры(max,min экстент) INDX...
можно скриншотиками..
Индексы разнесены?
Расположение операционки и файлов базы данных по дикам.. до кучи...
Есть ли закрытие периоды?
Расчитаны статистика по остаткам в закрытых периодах (если есть)...

первое что в голову пришло..
11.08.2007 22:00
OlegON
 
Цитата:
vdm Какую цифирь сказать, чтоб было о чем говорить?
Лог дать :) Зашифрованный. Ибо проще пробежаться и посмотреть, что в глаза кидается. Только на обменники скриншоты и логи кидай. Сюда не надо.
13.08.2007 07:28
isi
 
Я так понимаю что делал при переходе exp / imp.

так вот я две недели грабли разгребал с помощью данного форума. Оказалось что при импорте по умолчанию расчитывается статистика по темповым таблица и после этого не возможно дождаться запросов, которые используют темповые таблицы.

Могу порекомендовать так, сделалй bat файл
следующего содержания:
sqlplus sys/пароль@база @stats.sql
sqlplus sys/пароль@база @stats_cmd.sql
del stats_cmd.sql /q
и второй файл stats.sql:
set feedback off;
set heading off;
set termout off;
set linesize 1000;
set trimspool on;
set verify off;
spool stats_cmd.sql;

select 'ANALYZE TABLE '||OWNER||'.'||TABLE_NAME||' DELETE STATISTICS;'
from dba_tables
where temporary='Y' and owner='SUPERMAG'
union all
select 'ANALYZE INDEX '||OWNER||'.'||INDEX_NAME||' DELETE STATISTICS;'
from dba_indexes
where temporary='Y' and owner='SUPERMAG'
union all
select 'ANALYZE TABLE '||OWNER||'.'||TABLE_NAME||' COMPUTE STATISTICS;'
from dba_tables
where tablespace_name in ('USERS','INDX') and owner='SUPERMAG'
union all
select 'ANALYZE INDEX '||OWNER||'.'||INDEX_NAME||' COMPUTE STATISTICS;'
from dba_indexes
where tablespace_name in ('USERS','INDX') and owner='SUPERMAG';

prompt exit;

spool off;
set feedback on;
set heading on;
set termout on;
set linesize 100;
exit;

имя и пароль естественно свои.
батник соберет статистику по всем таблицам и удалит с темповых.
13.08.2007 08:49
vdm
 
Оптимайзер до конца не дождался - прервал (людям работать надо) *11
лог и прочее лежит тут


isi, я твою ветку читал и импорт делал с отключением статистики
TT* проверял, ее там нет

расположено сейчас так :
r1 - система + redo + undo + temp
+ вчера туда переместил и чуть порезал ffmaprep в отдельном ТП
r2 - users
r3 - indx

Есть закрытый период 1 год (статистика в нем расчитана)
открытый - 10 месяцев
17.08.2007 03:33
isi
 
Не знаю что и сказать, сверь структуру с другой БД, мож индексов не хватает?
19.08.2007 14:03
vdm
 
Все относительно нормализовалось после еще одного расчета статистики и удаления ее с индексов временных таблиц (откуда-то она там все же взялась)
Остались еще подвисания на проведении накладных для должностей с сильно ограниченными правами, разберусь как нибудь.
Часовой пояс GMT +3, время: 08:46.

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