Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / truncate recyclebin / 6 сообщений из 6, страница 1 из 1
30.05.2017, 22:49
    #39462704
Valergrad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
truncate recyclebin
Есть тестовая база которая используется для автоматического тестирования деплоймент скриптов. Грубо говоря, там сотни раз в день создаются-удаляются таблицы, пакеты и прочие объекты, иногда целыми схемами. По недосмотру корзина там была включена. Через какое-то время заметили что все операции с системными словарями ( например поиск в dba_objects и т.п. ) стали тормозить. Причина в том, что системные словари в том числе и учитывают объекты из корзины, а там их в результате предыдущих действий накопились миллионы.
Окей, отключили корзину, удалили все объекты - purge dba_recyclebin. Сильно помогло, но все еще все работает значительно медленней чем на "свежей" базе. Системные вьюхи все еще подтормаживают. Запрос
select count(*) from dba_recyclebin работает 30 секунд, хоть и возвращает 0. Вероятно, записи о старых объектах хоть и удалены, но блоки под эти записи все еще выделены и сканируются постоянно. Если бы это была обычная таблица - то ответ был бы понятен - truncate спасет отца русской демократии. Есть ли что-то подобное для recyclebinа?
...
Рейтинг: 0 / 0
30.05.2017, 23:23
    #39462711
Shtock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
truncate recyclebin
А ты часто гоняешь этот count?
...
Рейтинг: 0 / 0
31.05.2017, 00:23
    #39462741
Valergrad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
truncate recyclebin
Shtock,

нет, но тормозят в том числе и любые запросы к системным словарям которые в том числе показывают объекты из корзины. dba_tables, dba_tab_columns вот это все. Тормозит рекомпиляция схемы и некоторые другие вещи. Я думаю это все завязано на это.
...
Рейтинг: 0 / 0
31.05.2017, 03:17
    #39462771
Вячеслав Любомудров
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
truncate recyclebin
На тестовой, да с RECYCLEBIN$ -- легко
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
tst> select * from sys.bootstrap$ where upper(sql_text) like '%RECYCLEBIN%';

no rows selected

tst> connect sys@tst
Enter password: *************
Connected.
tst> truncate table recyclebin$;

Table truncated.

Но есть подозрение, что это ничему не поможет, поскольку там еще и OBJ$, TAB$, COL$ и все остальное наверняка разрослись, а с ними такой фокус не пролезет
...
Рейтинг: 0 / 0
16.08.2017, 17:14
    #39506465
Valergrad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
truncate recyclebin
Вячеслав ЛюбомудровНа тестовой, да с RECYCLEBIN$ -- легко
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
tst> select * from sys.bootstrap$ where upper(sql_text) like '%RECYCLEBIN%';

no rows selected

tst> connect sys@tst
Enter password: *************
Connected.
tst> truncate table recyclebin$;

Table truncated.

Но есть подозрение, что это ничему не поможет, поскольку там еще и OBJ$, TAB$, COL$ и все остальное наверняка разрослись, а с ними такой фокус не пролезет

В общем да, вы правы - не помогло.
Есть какой-то еще подход к проблеме?
Самые длительные запросы судя по логам - это ко всяким user_objects и т.п.
...
Рейтинг: 0 / 0
16.08.2017, 17:20
    #39506470
Valergrad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
truncate recyclebin
К примеру этот запрос который должен отрабатывать мгновенно ( и возвращает 0 строк ) работает по 30 секунд:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
SQL_ID  2a5rmbqt0vn12, child number 0
-------------------------------------
select object_name,object_type from user_objects where status <> 'VALID'
 
Plan hash value: 1084386615
 
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| Id  | Operation                      | Name         | Starts | E-Rows |E-Bytes| Cost (%CPU)| E-Time   | A-Rows |   A-Time   | Buffers | Reads  |  OMem |  1Mem |  O/1/M   |
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT               |              |      6 |        |       |  1345 (100)|          |      0 |00:00:17.26 |   21602 |  21414 |       |       |          |
|   1 |  VIEW                          | USER_OBJECTS |      6 |    176 | 14432 |  1345   (1)| 00:00:19 |      0 |00:00:17.26 |   21602 |  21414 |       |       |          |
|   2 |   UNION-ALL                    |              |      6 |        |       |            |          |      0 |00:00:17.26 |   21602 |  21414 |       |       |          |
|*  3 |    TABLE ACCESS BY INDEX ROWID | SUM$         |      0 |      1 |    26 |     0   (0)|          |      0 |00:00:00.01 |       0 |      0 |       |       |          |
|*  4 |     INDEX UNIQUE SCAN          | I_SUM$_1     |      0 |      1 |       |     0   (0)|          |      0 |00:00:00.01 |       0 |      0 |       |       |          |
|*  5 |    FILTER                      |              |      6 |        |       |            |          |      0 |00:00:17.26 |   21602 |  21414 |       |       |          |
|*  6 |     HASH JOIN                  |              |      6 |    182 | 20020 |  1345   (1)| 00:00:19 |      0 |00:00:17.26 |   21602 |  21414 |  1455K|  1455K|     6/0/0|
|   7 |      INDEX FULL SCAN           | I_USER2      |      6 |    261 |  5742 |     1   (0)| 00:00:01 |   1572 |00:00:00.01 |       6 |      0 |       |       |          |
|*  8 |      TABLE ACCESS FULL         | OBJ$         |      6 |    182 | 16016 |  1344   (1)| 00:00:19 |      0 |00:00:17.26 |   21596 |  21414 |       |       |          |
|*  9 |     TABLE ACCESS BY INDEX ROWID| IND$         |      0 |      1 |     9 |     2   (0)| 00:00:01 |      0 |00:00:00.01 |       0 |      0 |       |       |          |
|* 10 |      INDEX UNIQUE SCAN         | I_IND1       |      0 |      1 |       |     1   (0)| 00:00:01 |      0 |00:00:00.01 |       0 |      0 |       |       |          |
|  11 |     NESTED LOOPS               |              |      0 |      1 |    32 |     3   (0)| 00:00:01 |      0 |00:00:00.01 |       0 |      0 |       |       |          |
|* 12 |      INDEX SKIP SCAN           | I_USER2      |      0 |      1 |    20 |     1   (0)| 00:00:01 |      0 |00:00:00.01 |       0 |      0 |       |       |          |
|* 13 |      INDEX RANGE SCAN          | I_OBJ4       |      0 |      1 |    12 |     2   (0)| 00:00:01 |      0 |00:00:00.01 |       0 |      0 |       |       |          |
|* 14 |    FILTER                      |              |      6 |        |       |            |          |      0 |00:00:00.01 |       0 |      0 |       |       |          |
|* 15 |     INDEX RANGE SCAN           | I_LINK1      |      0 |      1 |    79 |     0   (0)|          |      0 |00:00:00.01 |       0 |      0 |       |       |          |
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 
Query Block Name / Object Alias (identified by operation id):
-------------------------------------------------------------
 
   1 - SET$1        / USER_OBJECTS@SEL$1
   2 - SET$1       
   3 - SEL$3        / S@SEL$3
   4 - SEL$3        / S@SEL$3
   5 - SEL$1FF6F973
   7 - SEL$1FF6F973 / U@SEL$4
   8 - SEL$1FF6F973 / O@SEL$4
   9 - SEL$7        / I@SEL$7
  10 - SEL$7        / I@SEL$7
  11 - SEL$6       
  12 - SEL$6        / U2@SEL$6
  13 - SEL$6        / O2@SEL$6
  14 - SEL$8       
  15 - SEL$8        / L@SEL$8
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   3 - filter(BITAND("S"."XPFLAGS",8388608)=8388608)
   4 - access("S"."OBJ#"=:B1)
   5 - filter(((("O"."TYPE#"<>1 AND "O"."TYPE#"<>10) OR ("O"."TYPE#"=1 AND =1)) AND (("O"."TYPE#"<>4 AND "O"."TYPE#"<>5 AND "O"."TYPE#"<>7 AND "O"."TYPE#"<>8 AND 
              "O"."TYPE#"<>9 AND "O"."TYPE#"<>10 AND "O"."TYPE#"<>11 AND "O"."TYPE#"<>12 AND "O"."TYPE#"<>13 AND "O"."TYPE#"<>14 AND "O"."TYPE#"<>22 AND "O"."TYPE#"<>87 AND 
              "O"."TYPE#"<>88) OR BITAND("U"."SPARE1",16)=0 OR (INTERNAL_FUNCTION("O"."TYPE#") AND ((SYS_CONTEXT('userenv','current_edition_name')='ORA$BASE' AND "U"."TYPE#"<>2) 
              OR ("U"."TYPE#"=2 AND "U"."SPARE2"=TO_NUMBER(SYS_CONTEXT('userenv','current_edition_id'))) OR  IS NOT NULL)))))
   6 - access("O"."OWNER#"="U"."USER#")
   8 - filter(("O"."SPARE3"=USERENV('SCHEMAID') AND DECODE("O"."STATUS",0,'N/A',1,'VALID','INVALID')<>'VALID' AND "O"."NAME"<>'_NEXT_OBJECT' AND 
              "O"."NAME"<>'_default_auditing_options_' AND "O"."LINKNAME" IS NULL AND BITAND("O"."FLAGS",128)=0))
   9 - filter(("I"."TYPE#"=1 OR "I"."TYPE#"=2 OR "I"."TYPE#"=3 OR "I"."TYPE#"=4 OR "I"."TYPE#"=6 OR "I"."TYPE#"=7 OR "I"."TYPE#"=8 OR "I"."TYPE#"=9))
  10 - access("I"."OBJ#"=:B1)
  12 - access("U2"."TYPE#"=2 AND "U2"."SPARE2"=TO_NUMBER(SYS_CONTEXT('userenv','current_edition_id')))
       filter(("U2"."TYPE#"=2 AND "U2"."SPARE2"=TO_NUMBER(SYS_CONTEXT('userenv','current_edition_id'))))
  13 - access("O2"."DATAOBJ#"=:B1 AND "O2"."TYPE#"=88 AND "O2"."OWNER#"="U2"."USER#")
  14 - filter(NULL IS NOT NULL)
  15 - access("L"."OWNER#"=USERENV('SCHEMAID'))
 
Column Projection Information (identified by operation id):
-----------------------------------------------------------
 
   1 - "OBJECT_NAME"[VARCHAR2,128], "OBJECT_TYPE"[VARCHAR2,19]
   2 - STRDEF[128], STRDEF[19], STRDEF[7]
   4 - "S".ROWID[ROWID,10]
   5 - "O"."OBJ#"[NUMBER,22], "O"."NAME"[VARCHAR2,30], "O"."TYPE#"[NUMBER,22], "O"."STATUS"[NUMBER,22]
   6 - (#keys=1) "U"."SPARE2"[NUMBER,22], "U"."TYPE#"[NUMBER,22], "U"."SPARE1"[NUMBER,22], "O"."OBJ#"[NUMBER,22], "O"."NAME"[VARCHAR2,30], "O"."TYPE#"[NUMBER,22], 
       "O"."STATUS"[NUMBER,22]
   7 - "U"."USER#"[NUMBER,22], "U"."TYPE#"[NUMBER,22], "U"."SPARE1"[NUMBER,22], "U"."SPARE2"[NUMBER,22]
   8 - "O"."OBJ#"[NUMBER,22], "O"."OWNER#"[NUMBER,22], "O"."NAME"[VARCHAR2,30], "O"."TYPE#"[NUMBER,22], "O"."STATUS"[NUMBER,22]
  10 - "I".ROWID[ROWID,10]
  12 - "U2"."USER#"[NUMBER,22]
  14 - "L"."NAME"[VARCHAR2,128]
  15 - "L"."NAME"[VARCHAR2,128]
 
SQL_ID  2a5rmbqt0vn12, child number 1
-------------------------------------
select object_name,object_type from user_objects where status <> 'VALID'
 
Plan hash value: 1084386615
 
---------------------------------------------------------------------------------------------------------------------------
| Id  | Operation                      | Name         | E-Rows |E-Bytes| Cost (%CPU)| E-Time   |  OMem |  1Mem |  O/1/M   |
---------------------------------------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT               |              |        |       |  1345 (100)|          |       |       |          |
|   1 |  VIEW                          | USER_OBJECTS |    176 | 14432 |  1345   (1)| 00:00:19 |       |       |          |
|   2 |   UNION-ALL                    |              |        |       |            |          |       |       |          |
|*  3 |    TABLE ACCESS BY INDEX ROWID | SUM$         |      1 |    26 |     0   (0)|          |       |       |          |
|*  4 |     INDEX UNIQUE SCAN          | I_SUM$_1     |      1 |       |     0   (0)|          |       |       |          |
|*  5 |    FILTER                      |              |        |       |            |          |       |       |          |
|*  6 |     HASH JOIN                  |              |    182 | 20020 |  1345   (1)| 00:00:19 |  1455K|  1455K|   136/0/0|
|   7 |      INDEX FULL SCAN           | I_USER2      |    261 |  5742 |     1   (0)| 00:00:01 |       |       |          |
|*  8 |      TABLE ACCESS FULL         | OBJ$         |    182 | 16016 |  1344   (1)| 00:00:19 |       |       |          |
|*  9 |     TABLE ACCESS BY INDEX ROWID| IND$         |      1 |     9 |     2   (0)| 00:00:01 |       |       |          |
|* 10 |      INDEX UNIQUE SCAN         | I_IND1       |      1 |       |     1   (0)| 00:00:01 |       |       |          |
|  11 |     NESTED LOOPS               |              |      1 |    32 |     3   (0)| 00:00:01 |       |       |          |
|* 12 |      INDEX SKIP SCAN           | I_USER2      |      1 |    20 |     1   (0)| 00:00:01 |       |       |          |
|* 13 |      INDEX RANGE SCAN          | I_OBJ4       |      1 |    12 |     2   (0)| 00:00:01 |       |       |          |
|* 14 |    FILTER                      |              |        |       |            |          |       |       |          |
|* 15 |     INDEX RANGE SCAN           | I_LINK1      |      1 |    79 |     0   (0)|          |       |       |          |
---------------------------------------------------------------------------------------------------------------------------
 
Query Block Name / Object Alias (identified by operation id):
-------------------------------------------------------------
 
   1 - SET$1        / USER_OBJECTS@SEL$1
   2 - SET$1       
   3 - SEL$3        / S@SEL$3
   4 - SEL$3        / S@SEL$3
   5 - SEL$1FF6F973
   7 - SEL$1FF6F973 / U@SEL$4
   8 - SEL$1FF6F973 / O@SEL$4
   9 - SEL$7        / I@SEL$7
  10 - SEL$7        / I@SEL$7
  11 - SEL$6       
  12 - SEL$6        / U2@SEL$6
  13 - SEL$6        / O2@SEL$6
  14 - SEL$8       
  15 - SEL$8        / L@SEL$8
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   3 - filter(BITAND("S"."XPFLAGS",8388608)=8388608)
   4 - access("S"."OBJ#"=:B1)
   5 - filter(((("O"."TYPE#"<>1 AND "O"."TYPE#"<>10) OR ("O"."TYPE#"=1 AND =1)) AND (("O"."TYPE#"<>4 AND 
              "O"."TYPE#"<>5 AND "O"."TYPE#"<>7 AND "O"."TYPE#"<>8 AND "O"."TYPE#"<>9 AND "O"."TYPE#"<>10 AND "O"."TYPE#"<>11 
              AND "O"."TYPE#"<>12 AND "O"."TYPE#"<>13 AND "O"."TYPE#"<>14 AND "O"."TYPE#"<>22 AND "O"."TYPE#"<>87 AND 
              "O"."TYPE#"<>88) OR BITAND("U"."SPARE1",16)=0 OR (INTERNAL_FUNCTION("O"."TYPE#") AND 
              ((SYS_CONTEXT('userenv','current_edition_name')='ORA$BASE' AND "U"."TYPE#"<>2) OR ("U"."TYPE#"=2 AND 
              "U"."SPARE2"=TO_NUMBER(SYS_CONTEXT('userenv','current_edition_id'))) OR  IS NOT NULL)))))
   6 - access("O"."OWNER#"="U"."USER#")
   8 - filter(("O"."SPARE3"=USERENV('SCHEMAID') AND DECODE("O"."STATUS",0,'N/A',1,'VALID','INVALID')<>'VALID' AND 
              "O"."NAME"<>'_NEXT_OBJECT' AND "O"."NAME"<>'_default_auditing_options_' AND "O"."LINKNAME" IS NULL AND 
              BITAND("O"."FLAGS",128)=0))
   9 - filter(("I"."TYPE#"=1 OR "I"."TYPE#"=2 OR "I"."TYPE#"=3 OR "I"."TYPE#"=4 OR "I"."TYPE#"=6 OR "I"."TYPE#"=7 
              OR "I"."TYPE#"=8 OR "I"."TYPE#"=9))
  10 - access("I"."OBJ#"=:B1)
  12 - access("U2"."TYPE#"=2 AND "U2"."SPARE2"=TO_NUMBER(SYS_CONTEXT('userenv','current_edition_id')))
       filter(("U2"."TYPE#"=2 AND "U2"."SPARE2"=TO_NUMBER(SYS_CONTEXT('userenv','current_edition_id'))))
  13 - access("O2"."DATAOBJ#"=:B1 AND "O2"."TYPE#"=88 AND "O2"."OWNER#"="U2"."USER#")
  14 - filter(NULL IS NOT NULL)
  15 - access("L"."OWNER#"=USERENV('SCHEMAID'))
 
Column Projection Information (identified by operation id):
-----------------------------------------------------------
 
   1 - "OBJECT_NAME"[VARCHAR2,128], "OBJECT_TYPE"[VARCHAR2,19]
   2 - STRDEF[128], STRDEF[19], STRDEF[7]
   3 - "S".ROWID[ROWID,10], "S"."XPFLAGS"[NUMBER,22]
   4 - "S".ROWID[ROWID,10]
   5 - "O"."OBJ#"[NUMBER,22], "O"."NAME"[VARCHAR2,30], "O"."TYPE#"[NUMBER,22], "O"."STATUS"[NUMBER,22]
   6 - (#keys=1) "U"."SPARE2"[NUMBER,22], "U"."TYPE#"[NUMBER,22], "U"."SPARE1"[NUMBER,22], "O"."OBJ#"[NUMBER,22], 
       "O"."NAME"[VARCHAR2,30], "O"."TYPE#"[NUMBER,22], "O"."STATUS"[NUMBER,22]
   7 - "U"."USER#"[NUMBER,22], "U"."TYPE#"[NUMBER,22], "U"."SPARE1"[NUMBER,22], "U"."SPARE2"[NUMBER,22]
   8 - "O"."OBJ#"[NUMBER,22], "O"."OWNER#"[NUMBER,22], "O"."NAME"[VARCHAR2,30], "O"."TYPE#"[NUMBER,22], 
       "O"."STATUS"[NUMBER,22]
   9 - "I".ROWID[ROWID,10], "I"."TYPE#"[NUMBER,22]
  10 - "I".ROWID[ROWID,10]
  12 - "U2"."USER#"[NUMBER,22]
  14 - "L"."NAME"[VARCHAR2,128]
  15 - "L"."NAME"[VARCHAR2,128]
 
Note
-----
   - Warning: basic plan statistics not available. These are only collected when:
       * hint 'gather_plan_statistics' is used for the statement or
       * parameter 'statistics_level' is set to 'ALL', at session or system level
 

...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / truncate recyclebin / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]