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

нет, но тормозят в том числе и любые запросы к системным словарям которые в том числе показывают объекты из корзины. dba_tables, dba_tab_columns вот это все. Тормозит рекомпиляция схемы и некоторые другие вещи. Я думаю это все завязано на это.
...
Рейтинг: 0 / 0
truncate recyclebin
    #39462771
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На тестовой, да с 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
truncate recyclebin
    #39506465
Valergrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вячеслав ЛюбомудровНа тестовой, да с 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
truncate recyclebin
    #39506470
Valergrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
К примеру этот запрос который должен отрабатывать мгновенно ( и возвращает 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
6 сообщений из 6, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / truncate recyclebin
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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