#oracle #plsql #oracle11g #tablespace
#Oracle #plsql #oracle11g #табличное пространство
Вопрос:
SELECT tablespace_name, sum(bytes)/1024/1024 "MB Free"
FROM dba_free_space
WHERE tablespace_name = 'USERS'
GROUP BY tablespace_name;
Привет всем, приведенный выше запрос — это то, что я использую для отображения свободного места в табличном пространстве пользователя, но как мне написать отдельный скрипт PL / SQL, чтобы сохранить его в отдельной таблице с именем табличного пространства и отметкой времени.
Пожалуйста, помогите мне, так как мне нужен этот запуск в планировщике заданий на каждый час.
Заранее спасибо
Ответ №1:
Предполагая, что вы уже создали таблицу, в которой хотите сохранить данные, просто
CREATE OR REPLACE PROCEDURE snap_free_space
AS
BEGIN
INSERT INTO new_table( tablespace_name, free_bytes, collection_time )
SELECT tablespace_name, sum(bytes), sysdate
FROM dba_free_space
GROUP BY tablespace_name;
END;
Комментарии:
1. большое вам спасибо, у вас есть идеи, как мне запускать его в планировщике заданий каждый час?
2. DBMS_JOB — это инструмент планирования внутренней базы данных.
3. DBMS_SCHEDULER был представлен с 10g. download.oracle.com/docs/cd/E11882_01/appdev.112/e25788 /… «Пакет DBMS_JOB был заменен пакетом DBMS_SCHEDULER». download.oracle.com/docs/cd/E11882_01/appdev.112/e25788 /…