2016-07-12 2 views
3

документация ясно о том, как очистить в Oracle AQ:Как очистить расширенного очереди в Oracle

dbms_aqadm.purge_queue_table() 

Однако то, что происходит с хранения, особенно высокие оценки воды таблицы очереди, индексы и сегментов LOB? Нужно ли также сжимать стол?

В процессе производства очереди почти всегда пусты (как и должно быть), но в нашей тестовой системе они заполняются до миллионов строк по разным причинам, поэтому их иногда нужно опорожнять.

Нужно ли смотреть на лежащие в основе таблицы и индексы или это делается автоматически?

Большое спасибо!

ответ

2

DBMS_AQADM.PURGE_QUEUE_TABLE Это эквивалентно для стола обрезки. Также обратите внимание на это сообщение об ошибке при попытке усечь таблицу Queue

ORA-24005: Inappropriate utilities used to perform DDL on AQ table %s.%s 
*Cause: An attempt was made to use the SQL command DROP TABLE or TRUNCATE 
      TABLE or ALTER TABLE on queue metadata or tables. 
*Action: Use the DBMS_AQADM.DROP_QUEUE_TABLE to DROP TABLE, 
      DBMS_AQADM.PURGE_QUEUE_TABLE to TRUNCATE TABLE. 
      ALTER TABLE redefinition based on only ALTER_TABLE_PROPERTIES and 
      ALTER_TABLE_PARTITIONING clauses are allowed. 

Том Кайта уже написанную информацию о часто усечение таблицы https://asktom.oracle.com/pls/apex/f?p=100:11:0::::P11_QUESTION_ID:47911859692542

+0

Сообщение об ошибке хорошая идея, спасибо! –

+0

Вы имели в виду 'PURGE_QUEUE_TABLE' вместо' DROP_QUEUE_TABLE', правильно? –

+0

@ wolφi O, да. Спасибо, я немедленно меняю ответ –