 pocztek analizy przez Segment Advisor tabeli HR.EMPLOYEES
 wersja 1.0 RJB 1/06/2004

 zmienna SQL*Plus odczytuje numer zadania ze zmiennej task_id narzdzia Segment Advisor
 poniej kod PL/SQL
declare
    name varchar2(100);
    descr varchar2(500);
    obj_id number;
begin
    name := '';  unikatowa nazwa wygenerowana przez create_task
    descr := 'Analiza HR.EMPLOYEE';
    dbms_advisor.create_task
         ('Segment Advisor', :task_id, name, descr, NULL);
    dbms_advisor.create_object
         (name, 'TABLE', 'HR', 'EMPLOYEES', NULL, NULL, obj_id);
    dbms_advisor.set_task_parameter(name, 'RECOMMEND_ALL', 'TRUE');
    dbms_advisor.execute_task(name);
end;

 pocztek analizy przez Undo Advisor
 wersja 1.0 RJB 1/09/2004

 zmienna SQL*Plus odczytuje numer zadania ze zmiennej task_id narzdzia Segment Advisor

declare
    task_id number;
    name varchar2(100);
    descr varchar2(500);
    obj_id number;
begin
    name := '';  unikatowa nazwa wygenerowana przez create_task
    descr := 'Sprawdzenie przestrzeni tabel wycofania';
    dbms_advisor.create_task
         ('Undo Advisor', :task_id, name, descr);
    dbms_advisor.create_object
         (name, 'UNDO_TBS', NULL, NULL, NULL, 'null', obj_id);
    dbms_advisor.set_task_parameter(name, 'TARGET_OBJECTS', obj_id);
    dbms_advisor.set_task_parameter(name, 'START_SNAPSHOT', 6);
    dbms_advisor.set_task_parameter(name, 'END_SNAPSHOT', 8);
    dbms_advisor.set_task_parameter(name, 'INSTANCE', 1);
    dbms_advisor.execute_task(name);
end;



 Anonimowa procedura PL/SQL zmieniajca prg Tablespace Space Usage

declare
    /* WYJCIE */
    warning_operator number;
    warning_value varchar2(100);
    critical_operator number;
    critical_value varchar2(100);
    observation_period number;
    consecutive_occurrences number;
    /* WEJCIE */
    metrics_id number;
    instance_name varchar2(50);
    object_type number;
    object_name varchar2(50);

    new_warning_value varchar2(100) := '60';
begin
    metrics_id := 9000; /* z widoku V$METRICNAME */
    object_type := DBMS_SERVER_ALERT.OBJECT_TYPE_TABLESPACE;
    instance_name := 'b2r7seed'; /* z widoku DBA_THRESHOLDS */
    object_name := NULL;

 odczytanie biecych wartoci za pomoc get_threshold
    dbms_server_alert.get_threshold(
        metrics_id, warning_operator, warning_value,
        critical_operator, critical_value,
        observation_period, consecutive_occurrences,
        instance_name, object_type, object_name);
 zmiana wartoci progu ostrzegawczego z 85 na 60
    dbms_server_alert.set_threshold(
        metrics_id, warning_operator, new_warning_value,
        critical_operator, critical_value,
        observation_period, consecutive_occurrences,
        instance_name, object_type, object_name);
end;


 Ilo wolnej przestrzeni w plikach danych innych ni tymczasowe, w podziale na przestrzenie tabel.

 Brak argumentw pocztkowych.
 1024*1024*1000 = 1048576000 = 1 GB, aby uzgodni si z OEM


column free_space_gb format 9999999.999
column allocated_gb format 9999999.999
column used_gb format 9999999.999
column tablespace format a12
column filename format a20

select   ts.name tablespace, trim(substr(df.name,1,100)) filename,
         df.bytes/1048576000 allocated_gb,
         ((df.bytes/1048576000) - nvl(sum(dfs.bytes)/1048576000,0)) used_gb,
         nvl(sum(dfs.bytes)/1048576000,0) free_space_gb
    from v$datafile df left outer join dba_free_space dfs
      on df.file# = dfs.file_id join v$tablespace ts
      on df.ts# = ts.ts#
group by ts.name, dfs.file_id, df.name, df.file#, df.bytes
order by filename;

