<%@ LANGUAGE="VBScript" %> Expensive SQLs

Expensive SQLs

<% db_name=UCase(CStr(Request("db_name"))) If db_name="" Then db_name="PHDB" End If Set Connection = Server.CreateObject("ADODB.Connection") Connection.Mode = adModeRead Select Case db_name Case "PHDB" Connection.Open phdb_rd Case Else Connection.Open phdb_rd End Select SQLStmt = " select u.name uname,q.sql_text,q.disk_reads,q.executions,q.buffer_gets,q.sorts,to_char(to_date(q.first_load_time,'YYYY-MM-DD/HH24:MI:SS'),'MM/DD HH24:MI') ldate,q.Address " SQLStmt = SQLStmt & " from v$sqlarea q,sys.user$ u " SQLStmt = SQLStmt & " where q.parsing_user_id=u.user# " SQLStmt = SQLStmt & " and q.disk_reads>10 and q.executions>0 " SQLStmt = SQLStmt & " and q.sql_text not like '%/* OracleOEM */%' " ' SQLStmt = SQLStmt & " and (q.disk_reads/(q.executions+0.000001)>1 or q.buffer_gets/(q.executions+0.000001)>1) " SQLStmt = SQLStmt & " and u.name<>'SYS' " SQLStmt = SQLStmt & " order by q.disk_reads/(q.executions+0.000001) desc " ' response.write(SQLStmt) Set RS = Connection.Execute(SQLStmt) %>
<% nsql=0 Do While Not RS.EOF ' If response.isclientconnected=false Then ' Exit Do ' End If nsql=nsql+1 uname=Trim(CStr(RS("uname"))) sql_text=Trim(CStr(RS("sql_text"))) disk_reads=CStr(CDbl(RS("disk_reads"))) buffer_gets=CDbl(RS("buffer_gets")) executions=CDbl(RS("executions")) first_load_time=CStr(RS("ldate")) sorts=CStr(RS("sorts")) %> <% RS.Movenext Loop %>
Name Disk Rds Buff Gts Execs Sorts Load SQL
<%=nsql%> <%=uname%> <%=disk_reads%>(<%=round(disk_reads/executions,1)%>) <%=buffer_gets%>(<%=round(buffer_gets/executions,1)%>) <%=executions%> <%=sorts%> <%=first_load_time%> <%=sql_text%>
<% Connection.Close Set Connection=nothing Set RS=nothing %>