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

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

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

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

Есть какой то менее ресурсозатратный способ почистить данный справочник?
Спасибо всем кто откликнется(очень нужно).
...
Рейтинг: 0 / 0
Очистить справочник SYS.SNAP_XCMT$
    #39826249
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Очистить справочник SYS.SNAP_XCMT$
    #39826281
MaXie
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Благодарю Вас за ответ.

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

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

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

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

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

Спасибо за ссылку, но у меня нет доступа к металинку. Я встречал ответ от тех.поддержки Оракла на этот счет. Да, оно сводится к двум пунктам: либо создание мат.представления и последующий "рефреш", либо "дроп" всех "журналов". Я бы "дропнул" и все "журналы", но их удаление, это монопольная блокировка на мастер-таблицу и перечитывание огромного справочника. Ни "параллель" не срабатывает, ни просто параллельный запуск скриптов на удаление из нескольких сессий. В итоге "даун-тайм" выходит слишком большой. (
...
Рейтинг: 0 / 0
Очистить справочник SYS.SNAP_XCMT$
    #39826312
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Очистить справочник SYS.SNAP_XCMT$
    #39826313
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MaXieпока не будет создано мат.представление.
ON PREBUILT TABLE не?
...
Рейтинг: 0 / 0
Очистить справочник SYS.SNAP_XCMT$
    #39826316
MaXie
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторПробовал:

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

авторON PREBUILT TABLE не?

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

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

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


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