Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Тормоза таблицы OBJ$  [new]
eml78
Member

Откуда:
Сообщений: 648
В последнее время стали долго выполняться запросы к системным view, которые используют таблицу OBJ$ (а таких очень много). Win2003, Ora SE 9.2.0.4.

Например:
SELECT *
  FROM All_Constraints Con
  WHERE Con.Owner = :OWNER
    and Con.Table_Name = :TABLE_NAME
    and Con.Constraint_Type in ('P', 'U')
  ------------------------------------------------------------
    
  Statement Id=4   Type=NESTED LOOPS
  Cost=468  TimeStamp=11-06-08::10::40:27
  
       (1)  SELECT STATEMENT  CHOOSE 
     Est. Rows: 1  Cost: 471
    FILTER
           (26)  NESTED LOOPS OUTER 
                Est. Rows: 1  Cost: 471
               (23)  NESTED LOOPS OUTER 
                    Est. Rows: 1  Cost: 469
                   (20)  NESTED LOOPS OUTER 
                        Est. Rows: 1  Cost: 468
                       (17)  NESTED LOOPS OUTER 
                            Est. Rows: 1  Cost: 466
                           (14)  NESTED LOOPS OUTER 
                                Est. Rows: 1  Cost: 465
                               (11)  NESTED LOOPS 
                                    Est. Rows: 1  Cost: 463
                                   (8)  NESTED LOOPS 
                                        Est. Rows: 2  Cost: 459
                                       (5)  NESTED LOOPS 
                                            Est. Rows: 2  Cost: 457
                                           (3)  TABLE ACCESS BY INDEX ROWID SYS.USER$  [Analyzed] 
                                           (3)   Blocks: 12 Est. Rows: 1 of 170  Cost: 1 
                                                Tablespace: SYSTEM
                                               (2)  UNIQUE INDEX UNIQUE SCAN SYS.I_USER1  [Analyzed] 
                                                    Est. Rows: 170
                                           (4)  TABLE ACCESS FULL SYS.OBJ$  [Analyzed] 
                                           (4)   Blocks: 4 722 Est. Rows: 2 of 394 124  Cost: 456 
                                                Tablespace: SYSTEM
                                       (7)  TABLE ACCESS CLUSTER SYS.CDEF$  [Analyzed] 
                                       (7)   Blocks: 8 681 Est. Rows: 1 of 642 594  Cost: 1 
                                            Tablespace: SYSTEM
                                           (6)  NON-UNIQUE INDEX UNIQUE SCAN SYS.I_COBJ#  [Analyzed] 
                                                Est. Rows: 68
                                   (10)  TABLE ACCESS BY INDEX ROWID SYS.CON$  [Analyzed] 
                                   (10)   Blocks: 2 830 Est. Rows: 1 of 642 595  Cost: 2 
                                        Tablespace: SYSTEM
                                       (9)  UNIQUE INDEX UNIQUE SCAN SYS.I_CON2  [Analyzed] 
                                            Est. Rows: 1  Cost: 1
                               (13)  TABLE ACCESS BY INDEX ROWID SYS.CON$  [Analyzed] 
                               (13)   Blocks: 2 830 Est. Rows: 1 of 642 595  Cost: 2 
                                    Tablespace: SYSTEM
                                   (12)  UNIQUE INDEX UNIQUE SCAN SYS.I_CON2  [Analyzed] 
                                        Est. Rows: 1  Cost: 1
                           (16)  TABLE ACCESS CLUSTER SYS.USER$  [Analyzed] 
                           (16)   Blocks: 12 Est. Rows: 1 of 170  Cost: 1 
                                Tablespace: SYSTEM
                               (15)  NON-UNIQUE INDEX UNIQUE SCAN SYS.I_USER#  [Analyzed] 
                                    Est. Rows: 1
                       (19)  TABLE ACCESS BY INDEX ROWID SYS.OBJ$  [Analyzed] 
                       (19)   Blocks: 4 722 Est. Rows: 1 of 394 124  Cost: 2 
                            Tablespace: SYSTEM
                           (18)  UNIQUE INDEX UNIQUE SCAN SYS.I_OBJ1  [Analyzed] 
                                Est. Rows: 1  Cost: 1
                   (22)  TABLE ACCESS CLUSTER SYS.USER$  [Analyzed] 
                   (22)   Blocks: 12 Est. Rows: 1 of 170  Cost: 1 
                        Tablespace: SYSTEM
                       (21)  NON-UNIQUE INDEX UNIQUE SCAN SYS.I_USER#  [Analyzed] 
                            Est. Rows: 1
               (25)  TABLE ACCESS BY INDEX ROWID SYS.OBJ$  [Analyzed] 
               (25)   Blocks: 4 722 Est. Rows: 1 of 394 124  Cost: 2 
                    Tablespace: SYSTEM
                   (24)  UNIQUE INDEX UNIQUE SCAN SYS.I_OBJ1  [Analyzed] 
                        Est. Rows: 1  Cost: 1
           (29)  NESTED LOOPS 
                Est. Rows: 32  Cost: 211
               (27)  FIXED TABLE FULL SYS.X$KZSRO 
                    Est. Rows: 100  Cost: 11
               (28)  NON-UNIQUE INDEX RANGE SCAN SYS.I_OBJAUTH2  [Analyzed] 
                    Est. Rows: 1  Cost: 2
           (30)  FIXED TABLE FULL SYS.X$KZSPR 
                Est. Rows: 1  Cost: 11
Данный запрос выполняется порядка 1сек и дает много дисковых чтений.

Возможно причина в том, что на шаге (4) выполняется TABLE ACCESS FULL SYS.OBJ$ вместо поиска по индексу UNIQUE INDEX i_obj2 ON obj$ (owner#, name, namespace, remoteowner, linkname, subname )?

Вобщем на данный момент большая часть всех дисковых чтений приходится на объекты схемы SYS (сервер стал работать заметно медленнее).

Посмотрел заполнение буферного кэша, запрос выдал
SELECT a.owner, a.cnt, ROUND(a.cnt/b.total*100, 3) percent
FROM
  (select o.owner, count(*) ant
   from v$BH bh left outer join DBA_OBJECTS o on o.object_id = bh.objd
   group by o.owner) a,
  (select count(*) TOTAL from v$BH) b

OWNER CNT PERCENT
SYS 180281 80,045
....

Ниже привожу параметры из init.ora
db_block_size=8192
db_cache_size=1887436800
db_file_multiblock_read_count=16
hash_join_enabled=TRUE
java_pool_size=0
job_queue_processes=10
large_pool_size=0
open_cursors=300
pga_aggregate_target=364904448
processes=150
query_rewrite_enabled=FALSE
shared_pool_size=318767104
sort_area_size=524288
timed_statistics=TRUE
undo_management=AUTO
undo_retention=10800
undo_tablespace=UNDOTBS1
workarea_size_policy=AUTO

Правда объем таблицы OBJ$ всего метров 40 - т.е. должна она была в кэш влезть, вот размер объектов схемы SYS в MB (считались все выделенные под объект экстенты)
C_OBJ#_INTCOL#	CLUSTER	  824
SOURCE$	            TABLE	328
IDL_UB2$	     TABLE	 224
IDL_UB1$	     TABLE	208
TRIGGER$	    TABLE	192
AUD$	              TABLE	  160
I_H_OBJ#_COL#	INDEX	    152
I_SOURCE1	   INDEX       120
C_OBJ#	            CLUSTER   104
C_COBJ#	           CLUSTER    72
IDL_SB4$	    TABLE	64
HIST_HEAD$	  TABLE	      55
C_FILE#_BLOCK#	CLUSTER	  52
I_COL1	             INDEX	 49
I_CON1	             INDEX	39
OBJ$	              TABLE	 37
DEPENDENCY$	TABLE	    32
I_CDEF2	            INDEX	32
I_OBJ2	             INDEX	 28
11 июн 08, 12:06    [5792303]     Ответить | Цитировать Сообщить модератору
 Re: Тормоза таблицы OBJ$  [new]
ЫЫЫ
Guest
Статистику по схеме SYSEM собрали что ли ?
11 июн 08, 13:52    [5793298]     Ответить | Цитировать Сообщить модератору
 Re: Тормоза таблицы OBJ$  [new]
eml78
Member

Откуда:
Сообщений: 648
ЫЫЫ
Статистику по схеме SYSEM собрали что ли ?

После того как начались тормоза - собрали, но это ничего не изменило.
А что, со статистикой там могут быть проблемы - может ее удалить?
11 июн 08, 14:54    [5793812]     Ответить | Цитировать Сообщить модератору
 Re: Тормоза таблицы OBJ$  [new]
eml78
Member

Откуда:
Сообщений: 648
ЫЫЫ
Статистику по схеме SYSEM собрали что ли ?

После того как начались тормоза - собрали, но это ничего не изменило.
А что, со статистикой там могут быть проблемы - может ее удалить?
11 июн 08, 15:07    [5793904]     Ответить | Цитировать Сообщить модератору
 Re: Тормоза таблицы OBJ$  [new]
Халдурды Амандурдыевич Бердыев
Member

Откуда: Киргизский тракторист
Сообщений: 149
eml78
После того как начались тормоза - собрали, но это ничего не изменило.
Не верю


eml78
А что, со статистикой там могут быть проблемы - может ее удалить?
Сначала надо было почитать, потом собирать. Угу - может ;-)
11 июн 08, 15:14    [5793949]     Ответить | Цитировать Сообщить модератору
 Re: Тормоза таблицы OBJ$  [new]
eml78
Member

Откуда:
Сообщений: 648
Халдурды Амандурдыевич Бердыев
eml78
После того как начались тормоза - собрали, но это ничего не изменило.
Не верю
eml78
А что, со статистикой там могут быть проблемы - может ее удалить?
Сначала надо было почитать, потом собирать. Угу - может ;-)

Вы не могли бы выражаться точнее, по вашему мнению, нужно собирать статистику по SYSTEM или нет?
И если она вдруг оказалась собрана, то что нужно делать?
А то из ваших комментариев, не очень ясно, что именно вы хотели сказать.

Я в документации по по пакету сбора статистики нигде не видел четкого запрета на сбор статистики в схеме SYSTEM. Может я конечно чего пропустил, или вы что-то другое имели в виду?
11 июн 08, 17:15    [5795006]     Ответить | Цитировать Сообщить модератору
 Re: Тормоза таблицы OBJ$  [new]
Халдурды Амандурдыевич Бердыев
Member

Откуда: Киргизский тракторист
Сообщений: 149
eml78
Вы не могли бы выражаться точнее, по вашему мнению, нужно собирать статистику по SYSTEM или нет?
Разницу между SYSTEM и SYS понимаешь?


eml78
И если она вдруг оказалась собрана, то что нужно делать?
У-да-лить


eml78
А то из ваших комментариев, не очень ясно, что именно вы хотели сказать.
А я их так даю, чтобы потом еще пришлось головой подумать ;-)


eml78
Я в документации по по пакету сбора статистики нигде не видел четкого запрета на сбор статистики в схеме SYSTEM. Может я конечно чего пропустил, или вы что-то другое имели в виду?
Я тоже не видел. Но рекомендации по схеме SYS не собирать где-то видел. Ищи.
11 июн 08, 20:29    [5795687]     Ответить | Цитировать Сообщить модератору
 Re: Тормоза таблицы OBJ$  [new]
eml78
Member

Откуда:
Сообщений: 648
Извиняюсь, что внезапно исчез из форума - был в отъезде, проблема вроде решилась.

Удалили статистку по схеме DBMS_STATS.DELETE_SCHEMA_STATS('SYS');
Осталось только понять кто ее собрал - но это уже внутренние проблемы.

Всем кто ответил - спасибо.
19 июн 08, 12:24    [5819987]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить