Voglio controllare l'ultima volta che le statistiche sono state eseguite sul mio server Oracle 10g. Lo farei normalmente tramite OEM, ma per motivi indipendenti l'OEM non funziona. C'è un modo per controllarlo usando solo sqlplus? Sarebbe molto utile se l'output fosse ragionevolmente formattato.Come è possibile controllare l'ultima volta che le statistiche sono state eseguite su Oracle senza utilizzare OEM
20
A
risposta
25
Tutti i seguenti tabelle del dizionario di dati hanno una colonna LAST_ANALYZED (sostituire * con USER/ALL/DBA a seconda dei casi:
*_TABLES
*_TAB_PARTITIONS
*_TAB_SUBPARTITIONS
*_INDEXES
*_IND_PARTITIONS
*_IND_SUBPARTITIONS
(C'è molto di più nei campi istogrammi, ma non mi va che di profondità.)
al contrario, ALL_TAB_MODIFICATIONS
mostra righe inserite/aggiornati/cancellati (o il timestamp sul quale un tavolo/partizione/sottopartizione stato troncato) poiché aveva le statistiche ottimizzatore raccolte.
2
SELECT LAST_START_DATE
FROM DBA_SCHEDULER_JOBS
WHERE job_name='GATHER_STATS_JOB';
Potrebbe essere necessario modificare il formato della data in base alle impostazioni SQLPLUS/NLS.
In mie statistiche l'installazione non è in esecuzione solo per un utente quindi ha funzionato molto bene. SQL I utilizzato (connesso come tale utente) era: SELEZIONARE TO_CHAR (last_analyzed,'yyyy/mm/gg hh: mi: ss am ') come last_analyzed FROM user_tables dove table_name = –
Jacob