# AWR (AUTOMATIC WORKLOAD REPOSITORY) - Tips&Tricks

Lister la configuration des snaphosts :

```SQL
SQL> select
       extract( day from snap_interval) *24*60+
       extract( hour from snap_interval) *60+
       extract( minute from snap_interval ) "Snapshot Interval",
       extract( day from retention) *24*60+
       extract( hour from retention) *60+
       extract( minute from retention ) "Retention Interval"
     from dba_hist_wr_control;
```

Lister les snaphosts historisés :

```SQL
SQL> set lines 220
SQL> set pages 999
SQL> SELECT snap_id, begin_interval_time, end_interval_time FROM dba_hist_snapshot ORDER BY 1;
```

Générer le rapport (préférer awrrpti à awrrpt qui permet d'interroger une instance particulière) :

```SQL
SQL> @$ORACLE_HOME/rdbms/admin/awrrpti.sql
```

(répondre aux différentes questions)

Les recommandations ADDM à la fin du rapport sont sans doute la partie la plus intéressante, le reste est plutôt abscons...

Modifier l'écart par défaut (toutes les heures sur 7 jours glissants) entre les snapshots :

```SQL
SQL> execute dbms_workload_repository.modify_snapshot_settings (retention=>40320, interval=>60);
```

Vérifier la configuration :

```SQL
SQL> select  extract( day from snap_interval) *24*60+
  extract( hour from snap_interval) *60+
  extract( minute from snap_interval ) "Snapshot Interval",
  extract( day from retention) *24*60+
  extract( hour from retention) *60+
  extract( minute from retention ) "Retention Interval"
from
   dba_hist_wr_control;
```

Créer manuellement un snapshot :

```SQL
EXEC DBMS_WORKLOAD_REPOSITORY.create_snapshot;
```

Supprimer des snapshosts :

```SQL
BEGIN
  DBMS_WORKLOAD_REPOSITORY.drop_snapshot_range (
    low_snap_id  => 22, 
    high_snap_id => 32);
END;
/
```

Ressources

[https://oracle-base.com/articles/10g/automatic-workload-repository-10g](https://oracle-base.com/articles/10g/automatic-workload-repository-10g)