Query per vedere informazioni delle sessioni ATTIVE che consumano più risorse

Con l’articolo Query per vedere i dettagli delle sessioni ATTIVE
che consumano più risorse macchina,
forniamo una query per analizzare le sessioni ATTIVE
che utilizzano maggiormente le risorse a disposizione del database.

Inoltre selezioniamo i campi SID,
SQL_ID,
l’utente con cui viene aperta la sessione,
l’utente del sistema operativo
e l’evento associato alla sessione.

Infine vediamo l’utilizzo di risorse
oltre al numero di esecuzione,
ossia quante volte è stata eseguita e la durata di attesa.

I campi selezionati sono:


INST_ID – Numero identificativo dell’istanza del RAC.
SID – Numero identificativo della sessione.
USERNAME – Nome utente con cui è stata eseguita la sessione.
SQL_ID – Numero identificativo dello statement
PROGRAM – Software da cui è partita la sessione
MACHINE – Nome macchina da cui è partita la sessione
OSUSER – Nome utente del sistema operativo da cui è partita la sessione
EXECUTIONS – Numero totale di esecuzione dello statement
BUFFER_GETS – Memoria utilizzata effettuate da ogni singola esecuzione
DISK_READS – Letture disco effettuate da ogni singola esecuzione
ELAPSED_TIME – Tempo di esecuzione di ogni singola esecuzione

Le informazioni sono recuperate dalle tabelle
GV$SESSION e
GV$SQL,
le quali sono messe in relazione dalle JOIN
a.INST_ID=b.INST_ID,
a.SQL_ID=b.SQL_ID,
a.SQL_CHILD_NUMBER=b.CHILD_NUMBER.

Infine filtriamo i record per sessioni attive e
per un valore di BUFFER_GETS per esecuzione
superiore a 90000 e
per un valore di DISK_READS per esecuzione
superiore a 5000.

col inst_id for 9999 col sid for 99999 col LAST_LOAD_TIME for a22 col buff_gets for 99999999999 col executions for 99999999999 col sql_text for a100 wrap set long 10000 col osuser for a10 col machine for a12 col buff_get for 99999999999 col program for a34 col Secs for 999,99 col username for a12 col disk for 999999 col cld for 99 col exec for 999999 set linesize 400 col Is for 9 select a.inst_id as I , a.sid, a.username , a.sql_id, a.program ,machine , osuser,executions as exec , BUFFER_GETS/(executions+1) as buff_get, disk_reads/(executions+1) as disk, ((ELAPSED_TIME)*power(10,-6))/(Executions+1) as Secs, buffer_gets/(fetches+0.1) as "Buf/Fetch" from gv$session a , gv$sql b where a.inst_id=b.inst_id and a.sql_id=b.sql_id and a.sql_child_number=b.child_number and status='ACTIVE' and service_name not like 'SYS%' and username not like 'SYS%' and ( BUFFER_GETS/(executions+1) > 90000 or disk_reads/(executions+1)> 5000 ) order by a.sql_id;

Query sessioni ATTIVE
Customer care, care for employees, human resources, life insurance, employment agency and marketing segmentation concepts. Wide banner composition with bokeh background.

Stay tuned! Non solo Query per vedere le sessioni ATTIVE

Per visionare le mie guide sui Comandi CRS clicca qui!
A questo LINK, invece, troverai le query SQL

Resta aggiornato sulle nostre attività entrando a far parte della nostra community:
Facebook
Youtube
Linkedin

Per chi ancora non lo avesse fatto, consigliamo di salvare tra i propri bookmark questo sito, così da avere sempre a portata di mano le nsotre soluzioni ai problemi più comuni su database, in particolar modo, database oracle.

Query per vedere i consumi di risorse di tutte le sessioni ATTIVE

Con l’articolo Query per vedere i consumi di risorse,
più la durata di ogni singola esecuzione di tutte le sessioni ATTIVE,
forniamo una query per analizzare le sessioni attive.

Query vedere consumi risorse
Shot of Dark Data Center With Multiple Rows of Fully Operational Server Racks. Modern Telecommunications, Cloud Computing, Artificial Intelligence, Database, Supercomputer.


Inoltre selezioniamo:
SID,
SQL_ID,
l’utente con cui viene aperta la sessione,
l’utente del sistema operativo e
l’evento associato alla sessione.


Infine vediamo l’utilizzo di risorse oltre al numero di esecuzione,
ossia quante volte è stata eseguita e la durata di attesa.

I campi selezionati sono:

INST_ID – Numero identificativo dell’istanza del RAC.
SID – Numero identificativo della sessione.
USERNAME – Nome utente con cui è stata eseguita la sessione.
SQL_ID – Numero identificativo dello statement.
EVENT – Evento d’attesa associato alla sessione.
EXECUTIONS – Numero totale di esecuzioni dello statement.
BUFFER_GETS – Memoria di BUFFER CHACE utilizzata da ogni singola esecuzione.
DISK_READS – Letture disco eseguite da ogni singola esecuzione.
SECOND_IN_WAIT – Tempo di attesa della sessione in secondi.

Recuperiamo le informazioni dalle tabelle
GV$SESSION e
GV$SQLAREA,
le quali sono messe in relazione dalle JOIN
a.INST_ID=b.INST_ID e
a.SQL_ID=b.SQL_ID.

Infine mostriamo le sessioni attive
di tutti gli utenti diversi da SYS e SYSTEM.

col inst_id for 9999
col sid for 99999
col LAST_LOAD_TIME for a22
col buff_gets for 99999999999
col executions for 99999999999
col sql_text for a100 wrap
set long 10000
col osuser for a10
col machine for a12
col buff_get for 99999999999
col disk for 99999999
col Secs for 999,99
col username for a12
set linesize 400
col event for a28
select a.inst_id , a.sid, a.username , a.sql_id, a.event , osuser,executions ,  BUFFER_GETS/(executions+1) as buff_get, DISK_READS/(executions+1) as disk, seconds_in_wait
 from gv$session a , gv$sqlarea b
where a.inst_id=b.inst_id and
      a.sql_id=b.sql_id and 
      status='ACTIVE' and
      service_name not like 'SYS%' and
      username not like 'SYS%' 
order by 5 ;

Stay tuned! Non solo Query per vedere i consumi delle risorse

Per visionare le mie guide sui Comandi CRS clicca qui!
A questo LINK, invece, troverai le query SQL

Resta aggiornato sulle nostre attività entrando a far parte della nostra community:
Facebook
Youtube
Linkedin

Per chi ancora non lo avesse fatto, consigliamo di salvare tra i propri bookmark questo sito, così da avere sempre a portata di mano le nsotre soluzioni ai problemi più comuni su database, in particolar modo, database oracle.

Query per vedere i consumi di risorse delle sessioni attive

Con l’articolo Query consumo risorse delle sessioni attive, abbiamo la possibilità di individuare velocemente le sessioni attive con l’evento associato.

Inoltre è possibile individuare:
il SID,
l’SQL_ID,
l’utente di provenienza e
i consumi di risorse utilizzati.

Infine per ogni query è selezionato il numero e i tempi di esecuzione.

I campi selezionati sono:

INST_ID – Numero identificativo dell’istanza di un RAC
SID – Numero identificativo della sessione
USERNAME – Utente proprietario della sessione
SQL_ID – Numero identificativo dello statement SQL
EVENT – Risorsa o ovento per il quale la sessione è in attesa
OSUSER – Utente del sistema operativo da cui è partita la sessione
EXECUTIONS – Numero totale di esecuzioni della sessione
BUFFER_GETS – Valore di memoria di buffer cache
utilizzata da una sola esecuzione
DISK_READS – Valore di letture disco utilizzato da una sola esecuzione
ELAPSED_TIME – Tempo trascorso da ogni singola esecuzione.

Le informazioni sono recuperate dalle tabelle:
gv$session e
gv$sqlarea
le quali sono messe in relazione dalle JOIN
a.inst_id=b.inst_id e
a.sql_id=b.sql_id.

Infine le sessioni sono filtrate per
status=’ACTIVE’.

Query per vedere i consumi di risorse delle sessioni attive:

col inst_id for 9999
col sid for 99999
col LAST_LOAD_TIME for a22
col buff_gets for 99999999999
col executions for 99999999999
col sql_text for a100 wrap
set long 10000
col osuser for a10
col machine for a12
col buff_get for 99999999999
col disk for 99999999999
col Secs for 999,99
col username for a16
set linesize 400
col event for a40
select a.inst_id , a.sid, a.username , a.sql_id, a.event , osuser,executions ,  BUFFER_GETS/(executions+1) as buff_get, DISK_READS/(executions+1) as disk, ((ELAPSED_TIME)*power(10,-6))/(Executions+1) as Secs
  from gv$session a , gv$sqlarea b
 where a.inst_id=b.inst_id and 
       a.sql_id=b.sql_id and 
       status='ACTIVE' and 
       username is not null
order by 5 ;

Query consumo risorse delle sessioni attive
Digital Cyberspace. Network and global database. 3D illustration of clusters of information with a binary code element

Stay tuned! Non solo Query consumo risorse delle sessioni attive

Per visionare le mie guide sui Comandi CRS clicca qui!
A questo LINK, invece, troverai le query SQL

Resta aggiornato sulle nostre attività entrando a far parte della nostra community:
Facebook
Youtube
Linkedin

Per chi ancora non lo avesse fatto, consigliamo di salvare tra i propri bookmark questo sito, così da avere sempre a portata di mano le nsotre soluzioni ai problemi più comuni su database, in particolar modo, database oracle.

Query per vedere l’utilizzo di risorse delle SESSIONI ATTIVE

Con l’articolo Query per vedere l’utilizzo di risorse delle sessioni attive,
vediamo informazioni utili per individuare le sessioni
che stanno utilizzando
un eccessivo consumo di risorse.

Dalla query selezioniamo l’istanza di provenienza,
l’utente proprietario,
l’utente del sistema operativo,
la macchina e
il programma di provenienza.

Inoltre visualizziamo le informazioni relative ai consumi di risorse
della sessione attiva.

I campi selezionati sono:

INST_ID – Numero identificativo dell’istanza del RAC
SID – Numero identificativo della sessione
USERNAME – Nome utente con cui è stata eseguita la sessione
SQL_ID – Numero identificativo dello statement
PROGRAM – Software da cui proviene la sessione
MACHINE – Nome macchina da cui proviene la sessione
OSUSER – Nome dell’utente del sistema operativo
EXECUTIONS – Numero totale delle esecuzioni dello statement
BUFFER_GETS – Memoria di BUFFER CHACE utilizzata da ogni singola
DISK_READS – Letture disco eseguite da ogni singola esecuzione
ELAPSED_TIME – Tempo di esecuzione per ogni singola esecuzione

Inoltre recuperiamo le informazioni dalle tabelle
GV$SESSION e
GV$SQL.

Infine mettiamo il risultato in relazione dalle JOIN
a.INST_ID=b.INST_ID,
a.SQL_CHILD_NUMBER=b.CHILD_NUMBER
a.SQL_ID=b.SQL_ID

In aggiunta, i record sono filtrati per:
USERNAME diverso da SYS e
SESSIONI ATTIVE.

Query per vedere l’utilizzo di risorse delle SESSIONI ATTIVE:

col I for 9
col sid for 9999
col LAST_LOAD_TIME for a22
col buff_gets for 99999999999
col executions for 99999999999
col sql_text for a100 wrap
set long 10000
col osuser for a8
col machine for a10
col buff_get for 9999999999
col Secs for 999,99
col username for a16
col program for a34
col sql_child for 9999
col disk for 9999999
col cpu for 99999999
col cld for 999
col cpu for 99999999
set linesize 400
select a.inst_id as I, a.sid, a.username , a.sql_id, a.program ,machine , osuser, executions, BUFFER_GETS/(executions+1) as buff_get,DISK_READS/(executions+1) as disk , ((ELAPSED_TIME)*power(10,-6))/(Executions+1) as Secs
  from gv$session a , gv$sql b
 where a.inst_id=b.inst_id and 
       a.sql_child_number=b.child_number and
       a.sql_id=b.sql_id and status='ACTIVE' and
       service_name not like 'SYS%' and
       username not like 'SYS%' 
order by 3,4 ;

Query utilizzo risorse SESSIONI ATTIVE
Profile side view portrait of his he nice attractive skilled focused serious, guy writing script ai tech support devops creating digital solution front-end in dark room workplace station indoors

Stay tuned! Non solo Query per vedere utilizzo risorse SESSIONI ATTIVE

Per visionare le mie guide sui Comandi CRS clicca qui!
A questo LINK, invece, troverai le query SQL

Resta aggiornato sulle nostre attività entrando a far parte della nostra community:
Facebook
Youtube
Linkedin

Per chi ancora non lo avesse fatto, consigliamo di salvare tra i propri bookmark questo sito, così da avere sempre a portata di mano le nsotre soluzioni ai problemi più comuni su database, in particolar modo, database oracle.

Query per vedere i dettagli di un statement da SID

Con l’articolo Query per vedere i dettagli di un statement da SID,
forniamo una statement che permette di individuare il testo in esecuzione di una sessione attiva attraverso il SID.

Inoltre, per essere sicuri di aver individuato la corretta sessione, oltre al SID è selezionato il SERIAL della sessione.

Prima di procedere con i dettagli su questa query ci teniamo a darti il benvenuto sul primo portale italiano sul database Oracle.

In questo sito troverai tutorial, guide e query per moltissime attività quotidiane, tipiche del database administrator!

Buona lettura!

Dettagli statement da SID:

set serveroutput on
DECLARE
 sid NUMBER;
 serial NUMBER;
 ddl CLOB;
BEGIN
 select b.sid, b.serial#, a.sql_text
INTO sid,serial,ddl
 from v$sql a, v$session b
where b.sid in (&seq_sid) and 
     (b.sql_address = a.address or 
      b.SQL_HASH_VALUE = a.hash_value);
dbms_output.put_line(ddl);
END;
/

Ti facciamo nostare che su ogni nostra query o codice, che troverai sul sito (turorial, guide e query) avrai a disposizione il pulsante “copy” sulla destra, usalo e tutto sarà più semplice!

Query dettagli statement da SID
Hard disk and database icon isolated on white background

Non solo Query dettagli statement da SID

Per visionare le mie guide sui Comandi CRS clicca qui!
A questo LINK, invece, troverai le query SQL

Resta aggiornato sulle nostre attività entrando a far parte della nostra community:
Facebook
Youtube
Linkedin

Per chi ancora non lo avesse fatto, consigliamo di salvare tra i propri bookmark questo sito, così da avere sempre a portata di mano le nsotre soluzioni ai problemi più comuni su database, in particolar modo, database oracle.

Query per estrarre statement da un SQL_ID successivo EXPLAIN PLAIN dello statement

Con l’articolo Query per estrarre lunghi statement da un SQL_ID successivo EXPLAIN PLAIN dello statement forniamo una piccola procedura PL_SQL che permette di estrapolare lo statement in esecuzione di un SQL_ID.

Inoltre è presente lo script fornito da Oracle che permette di visualizzare lo statement Expleined in precedenza.

Quindi, una volta recuperato lo statement, lo ordinate, inserite l’owner proprietario davanti ai nomi delle tabelle e rieseguite lo statement con datavanati EXPLAIN PLAN.

Esempio:

EXPLAIN PLAN SELECT …. FROM …. WHERE …..;

Una volta che viene restituito il messaggio Explained, potete eseguire lo script utlxplp.sql.

set serveroutput on
DECLARE
 ddl CLOB;
BEGIN
 select a.sql_fulltext
INTO ddl 
from v$sql a
 where a.sql_id = '&sql_id' and
 rownum <2;
dbms_output.put_line(ddl);
END;
/

--Piano d'esecuzione dello statement relativo all'sql_id:

@$ORACLE_HOME/rdbms/admin/utlxplp.sql
Query estrarre statement da SQL_ID
Data management system, cloud technology, Internet and business concept.

Oltre a Query estrarre statement da SQL_ID c'è dell'altro!

Per visionare le mie guide sui Comandi CRS clicca qui!
A questo LINK, invece, troverai le query SQL

Resta aggiornato sulle nostre attività entrando a far parte della nostra community (mi raccomando, metti il like alle nostre pagine, entriamo in contatto e resta aggiornato su ogni nostra nuova guida!):
Facebook
Youtube
Linkedin

Per chi ancora non lo avesse fatto, consigliamo di salvare tra i propri bookmark questo sito, così da avere sempre a portata di mano le nsotre soluzioni ai problemi più comuni su database, in particolar modo, database oracle.

Query per vedere se è cambiato il piano d’accesso ai dati – PLAN_HASH_VALUE

Con l’articolo Query per vedere se è cambiato il piano d’accesso ai dati – PLAN_HASH_VALUE,
abbiamo la possibilità di individuare il SQL_ID,
il PLAN_HASH_VALUE e
l’utilizzo di risorse macchina con i tempi e
il numero d’esecuzione di un determinato SQL_ID.

Inoltre, se vediamo che il PLAN_HASH_VALUE è cambiato e
i valori sui consumi di risorse sono notevolmente aumentati,
è possibile fissare il precedente piano d’accesso ai dati.

I campi selezionati sono:
SQL_ID – Numero identificativo dello statement SQL
PLAN_HASH_VALUE – Piano d’accesso ai dati assegnato dall’ottimizzatore di Oracle
EXECUTIONS – Numero totale di esecuzioni di uno SQL_ID
BUFFER_GETS – Numero totale di memoria utilizzata da un SQL_ID
ELAPSED_TIME – Tempo utilizzato dallo statementi in microsecondi
CPU_TIME – Tempo utilizzato dalla CPU in microsecondi
DISK_READS – Numero totale di letture disco effettuate da un SQL_ID

Inoltre le informazioni sono recuperate dalla tabella V$SQLAREA.

Infine le informazioni vengono filtrate dal SQL_ID.

Analisi consumi di un SQL_ID:

set lines 300 
col sql_id for a15
select sql_id, PLAN_HASH_VALUE, EXECUTIONS, BUFFER_GETS, ELAPSED_TIME, CPU_TIME, DISK_READS 
  from v$sqlarea 
 where sql_id='&sql_id';
PLAN_HASH_VALUE
Database Table with modern background

Stay tuned! Non solo PLAN_HASH_VALUE, molto di più….

Per visionare le mie guide sui Comandi CRS clicca qui!
A questo LINK, invece, troverai le query SQL

Resta aggiornato sulle nostre attività entrando a far parte della nostra community:
Facebook
Youtube
Linkedin

Per chi ancora non lo avesse fatto, consigliamo di salvare tra i propri bookmark questo sito, così da avere sempre a portata di mano le nsotre soluzioni ai problemi più comuni su database, in particolar modo, database oracle.

Query per estrarre lo statement da SQL_ID

Con la seguente query è possibile estrarre lo statement in esecuzione da SQL_ID in un datbase oracle

Bene, prima di partire con l’articolo “Query statement da SQL_ID” vorrei introdurre questo sito a te che lo vedi per la prima volta!
Scriptdba è il primo sito verticale su database Oracle completamente in italiano. In realtà durante il 2020 usciremo con la versione in inglese, ma l’italiano ci sarà sempre e comunque.
Hai capito bene, un sito in doppia lingua. Perchè? Perchè a noi piace fare le cose semplici, semplici per voi lettori ovviamente! (un po meno per noi).

Su scriptdba.com troverai guide, tutorial e troubleshooting sul database più enterprise che ci sia!

Il campo selezionato è SQL_TEXT della tabella V$SQLAREA.

Testo statement da sql_id:

set lines 300 
pages 999 
select sql_text from v$sqlarea where sql_id = '&sql_id';
Query statement da SQL_ID
Programmer-woman designs a new database tables

Stay tuned! Non solo Query statement da SQL_ID

Per visionare le mie guide sui Comandi CRS clicca qui!
A questo LINK, invece, troverai le query SQL

Resta aggiornato sulle nostre attività entrando a far parte della nostra community:
Facebook
Youtube
Linkedin

Per chi ancora non lo avesse fatto, consigliamo di salvare tra i propri bookmark questo sito, così da avere sempre a portata di mano le nsotre soluzioni ai problemi più comuni su database, in particolar modo, database oracle.

Wordpress Social Share Plugin powered by Ultimatelysocial