Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Очистить справочник SYS.SNAP_XCMT$ / 11 сообщений из 11, страница 1 из 1
13.06.2019, 15:03
    #39826180
MaXie
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очистить справочник SYS.SNAP_XCMT$
Доброго всем времени суток!

Просьба помочь. Как наименее затратно очистить справочник SYS.SNAP_XCMT$?

Он постоянно растет в следствии наличия "журналов" материализованных представлений(CREATE MATERIALIZED VIEW LOG ON), работающих в режиме COMMIT SCN, БЕЗ использования самих мат.представлений. Каждое изменение фиксируется в этом справочнике.

Мне известен только один способ очистки данного справочника - удалить все "журналы". Это возможно. Но есть проблемы:
1. Удаление каждого "журнала" - это полная блокировка мастер-таблицы;
2. Нельзя запустить параллельно несколько скриптов на удаление "журналов", так чтобы в несколько сессией удалять сразу несколько "журналов".

Есть какой то менее ресурсозатратный способ почистить данный справочник?
Спасибо всем кто откликнется(очень нужно).
...
Рейтинг: 0 / 0
13.06.2019, 16:38
    #39826249
SY
SY
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очистить справочник SYS.SNAP_XCMT$
MaXieМне известен только один способ очистки данного справочника - удалить все "журналы".

Хирург ?

Создай MV и обновляй когда надо очистить:

Код: 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.
SQL> CREATE TABLE TBL
  2    AS
  3      SELECT  *
  4        FROM  EMP
  5        WHERE 1 = 2
  6  /

Table created.

Elapsed: 00:00:00.02
SQL> CREATE MATERIALIZED VIEW LOG
  2    ON TBL
  3    WITH ROWID,
  4         COMMIT SCN(
  5                    EMPNO,
  6                    ENAME,
  7                    JOB,
  8                    MGR,
  9                    HIREDATE,
 10                    SAL,
 11                    COMM,
 12                    DEPTNO
 13                   )
 14         INCLUDING NEW VALUES
 15  /

Materialized view log created.

Elapsed: 00:00:00.02
SQL> CREATE MATERIALIZED VIEW TBL_MV
  2    REFRESH FAST
  3    ON DEMAND
  4    WITH ROWID
  5    AS
  6      SELECT  ROWID RID
  7        FROM  TBL
  8        WHERE 1 = 2
  9  /

Materialized view created.

Elapsed: 00:00:00.08
SQL> INSERT
  2    INTO TBL
  3    SELECT  *
  4      FROM  EMP
  5  /

14 rows created.

Elapsed: 00:00:00.02
SQL> COMMIT
  2  /

Commit complete.

Elapsed: 00:00:00.01
SQL> BEGIN
  2      FOR V_REC IN (SELECT * FROM EMP WHERE ROWNUM = 1) LOOP
  3        FOR V_I IN 1..100000 LOOP
  4          INSERT
  5            INTO TBL
  6            VALUES V_REC;
  7          COMMIT;
  8        END LOOP;
  9      END LOOP;
 10  END;
 11  /

PL/SQL procedure successfully completed.

Elapsed: 00:02:10.38
SQL> COMMIT
  2  /

Commit complete.

Elapsed: 00:00:00.01
SQL> SELECT  COUNT(*)
  2    FROM  SYS.SNAP_XCMT$
  3  /

  COUNT(*)
----------
    100001

Elapsed: 00:00:00.02
SQL> EXEC DBMS_MVIEW.REFRESH('TBL_MV')

PL/SQL procedure successfully completed.

Elapsed: 00:00:03.89
SQL> SELECT  COUNT(*)
  2    FROM  SYS.SNAP_XCMT$
  3  /

  COUNT(*)
----------
         0

Elapsed: 00:00:00.01
SQL> 



SY.
...
Рейтинг: 0 / 0
13.06.2019, 17:36
    #39826281
MaXie
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очистить справочник SYS.SNAP_XCMT$
Благодарю Вас за ответ.

При создании материализованного представления все равно устанавливается монопольная блокировка на мастер-таблицу. ( И само создание, при распухшем SNAP_XCMT$, длится значительное время, т.к. читается весь справочник. (

Можно что нибудь с этим сделать? Как то ускорить процесс?
...
Рейтинг: 0 / 0
13.06.2019, 17:46
    #39826287
SY
SY
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очистить справочник SYS.SNAP_XCMT$
В приведенном примере c 100,000 строк в SNAP_XCMT$ refresh занял < 4 секунд.

SY.
...
Рейтинг: 0 / 0
13.06.2019, 17:52
    #39826290
SY
SY
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очистить справочник SYS.SNAP_XCMT$
Ну и System Tablespace Growing Too Fast, SYS.SNAP_XCMT$ Table is the Largest Consumer of Space (Doc ID 2406069.1).

SY.
...
Рейтинг: 0 / 0
13.06.2019, 18:44
    #39826311
MaXie
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очистить справочник SYS.SNAP_XCMT$
В моем случае счет идет на сотни миллионов записей в этом справочнике(DBA продолбали). (

При создании мат.представления, насколько я понимаю, блокировка ставится на "журнал" и в мастер-таблицу ни чего не вставишь(хоть и чтение разрешено), пока не будет создано мат.представление. Т.к. при создании мат.представления идут обращения к справочнику, время пока он прочитается, к сожалению, измеряется десятками минут, а это много. (

Спасибо за ссылку, но у меня нет доступа к металинку. Я встречал ответ от тех.поддержки Оракла на этот счет. Да, оно сводится к двум пунктам: либо создание мат.представления и последующий "рефреш", либо "дроп" всех "журналов". Я бы "дропнул" и все "журналы", но их удаление, это монопольная блокировка на мастер-таблицу и перечитывание огромного справочника. Ни "параллель" не срабатывает, ни просто параллельный запуск скриптов на удаление из нескольких сессий. В итоге "даун-тайм" выходит слишком большой. (
...
Рейтинг: 0 / 0
13.06.2019, 18:50
    #39826312
SY
SY
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очистить справочник SYS.SNAP_XCMT$
MaXieТ.к. при создании мат.представления идут обращения к справочнику, время пока он прочитается, к сожалению, измеряется десятками минут, а это много.

Пробовал:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
CREATE MATERIALIZED VIEW TBL_MV
  REFRESH FAST
  ON DEMAND
  WITH ROWID
  AS
    SELECT  ROWID RID
      FROM  TBL
      WHERE 1 = 2
/



SY.
...
Рейтинг: 0 / 0
13.06.2019, 18:51
    #39826313
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очистить справочник SYS.SNAP_XCMT$
MaXieпока не будет создано мат.представление.
ON PREBUILT TABLE не?
...
Рейтинг: 0 / 0
13.06.2019, 18:57
    #39826316
MaXie
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очистить справочник SYS.SNAP_XCMT$
авторПробовал:

Да, создал таблицу с нуля и на пустую создавал мат.представление.

авторON PREBUILT TABLE не?

Спасибо за Ваш ответ. Можете чуть подробнее свою мысль озвучить? Признаться не сталкивался с такой опцией.

P.S. Сразу забыл указать, речь идет про Oracle Database 12c Enterprise Edition Release 12.1.0.2.0.
...
Рейтинг: 0 / 0
13.06.2019, 19:03
    #39826318
MaXie
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очистить справочник SYS.SNAP_XCMT$
авторON PREBUILT TABLE не?

Вспомнил что это такое. У нас при рефакторинге большой таблицы, Экземпляр на блокировках "заклинило". Не вариант. (
...
Рейтинг: 0 / 0
13.06.2019, 19:28
    #39826324
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очистить справочник SYS.SNAP_XCMT$
MaXieУ нас при рефакторинге большой таблицы, Экземпляр на блокировках "заклинило".
Слабо представляю себе что конкретно означает процитированный фрагмент и как это все относится к переводу неспешно подготовленной таблицы в статус mat.view, но Вам виднее.
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Очистить справочник SYS.SNAP_XCMT$ / 11 сообщений из 11, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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