Il database Oracle è molto lento – Dove iniziare e come trovare la causa?

Il nostro database Oracle (11g) è molto lento, improvvisamente. Devo where avviare il process di debug per trovare quello che in realtà è il problema?

Ho provato a generare le statistiche del tavolo e ho cercato di bloccare .. ma non riesco a trovare informazioni che mi indirizzano direttamente alla causa, o forse sto cercando il posto sbagliato ..

Vi prego di dirmi where cominciare ..

Beh, definirò quello che è lento 🙂

Gli inserti prendono molto tempo … anche un inserto record di 100.000 impiegano circa un'ora

5 Solutions collect form web for “Il database Oracle è molto lento – Dove iniziare e come trovare la causa?”

Vorrei prima guardare al server di database per vedere cosa succede se ci sono bottiglie di bottiglia – ad esempio disco, networking, CPU, memory. Se c'è un problema hardware di base, questo potrebbe portrlo a esso. Ma se c'è un problema di applicazione, questo è probabile che ti mostrerà l'effetto, ma non la causa.

Il modo più approfondito per affrontare un problema di performance di Oracle è quello di eseguire una traccia SQL estesa di una o più sessioni lente, di profilarle e di vedere where effettivamente spendono il loro tempo. Un'ottima fonte di informazioni su questo è il libro di Cary Millsap, che è ansible vedere il primo capitolo di qui .

Ma un modo less esauriente di guardare le stesse informazioni è semplicemente chiedere al dictionary dei dati per vedere quali events le sessioni lente stanno aspettando. Nei casi in cui qualcosa è male, questo sarà spesso altrettanto efficace come una traccia completa. Vorrei iniziare a eseguire questa query diverse volte e vedere where ti port:

select seq#, event, wait_time, seconds_in_wait, state from v$session where type='USER' ; 

Un altro approccio per raccogliere informazioni simili è lo script Snapper di Tanel Poder

In linea generale, a partire dal livello superiore, si discuotono successivamente il tempo in cui viene speso. Ad un certo tempo dovresti raggiungere un livello in cui vedrai troppo tempo trascorso where non dovrebbe.

Per ulteriori dettagli raccommand la carta di Cary Millsap pensando chiaramente circa la prestazione .

Se le cose stanno lavorando bene per un po 'di tempo, e niente di grave è cambiato (vale a dire aumentato l'utilizzo, gli indici modificati, la notifica pesante, l'elaborazione analitica ecc.)

Avrei iniziato controllando la salute e le performance dei vostri dischi fisici / fisici.

Francamente, questa è una domanda abbastanza vasta e ci sono un sacco di sconosciuti … ma poiché la tua domanda specifica è where comincio. Ecco where cominciare.

Hai licenza Oracle Diagnostic Pack? Se sì, è ansible accedere a un paio di strumenti utili: ADDM (Automatic Diagnostic Monitor) e AWR (Automatic Workload repository). I rapporti AWR possono essere difficili da capire in un primo momento, ma possono fornire informazioni preziose su ciò che sta realmente accadendo nel database.

Se non si dispone del pacchetto di diagnostica, è ancora ansible accedere alle viste della cronologia di session triggers.

Sei sull'11g, questo significa che puoi iniziare il "DB Control", è una versione limitata di Enterprise Manager (o forse hai pienamente licenziato Enterprise manager). Il controllo DB fornisce un'interface web, consente di visualizzare le informazioni relative alle performance tra le altre cose, raccoglie molte informazioni utili. Ancora una volta, c'è molto da imparare, ma se ci sono problemi di performance, uno sguardo rapido sulla scheda "Performance" può già fornire molte informazioni.

Saluti

Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.