====== Die aktuellen SQL Statements in der DB auswerten ====== Der einfachste Ansatz zum finden von "problematischen" SQL Statements ist die Auswertung der in der SGA gecachten Statements nach den evlt. Problemfällen.\\ Dabei werden die Statements gesucht, die oft aufgerufen werden UND viele Resourcen (CPU und Lesevorgänge) verbrauchen.\\ === Aktuell von Benutzern ausgeführte Statements finden, die den TEMP Tablespace verwenden === SELECT DISTINCT s.inst_id , s.username , u."USER" , u.tablespace , u.contents , u.extents , u.blocks , u.segtype , s.client_info , sq.sql_text , sq.DISK_READS , sq.BUFFER_GETS , sq.FETCHES , sq.EXECUTIONS FROM sys.gv$session s , sys.gv$sort_usage u , sys.gv$sql sq WHERE s.saddr = u.session_addr AND s.inst_id = u.inst_id AND sq.ADDRESS = s.SQL_ADDRESS AND sq.HASH_VALUE = s.SQL_HASH_VALUE AND sq.inst_id = s.inst_id AND u.SQLADDR = sq.ADDRESS AND u.SQLHASH = sq.HASH_VALUE AND u.inst_id = sq.inst_id ORDER BY u.blocks DESC === Aktuell von einem Benutzer ausgeführtes Statement finden === Mit etwas Glück können Sie mit dieser Abfrage finden, die ein Anwender zuletzt ausgeführt hat. Parameter:\\ INST_ID : aktuelle Instance auf der der Anwender angemeldet ist (immer 1 wenn es nur eine Instance gibt)\\ SID : Sid des Anwenders select inst_id,sid from gv$session where username=' SELECT s.sid ,s.CLIENT_INFO ,s.MACHINE ,s.PROGRAM ,s.type ,s.logon_time ,s.osuser ,sq.sorts ,sq.DISK_READS ,sq.BUFFER_GETS ,sq.ROWS_PROCESSED ,sq.SQLTYPE ,sq.SQL_TEXT FROM gv$session s , gv$sql sq WHERE s.SQL_HASH_VALUE = sq.HASH_VALUE AND s.inst_id=:id AND s.sid = :sid AND sq.inst_id= s.inst_id {{tag>sql script performance}}