Oracle top sql

  1. --逻辑读   
  2. select buffer_gets, sql_text   
  3.   from (select sql_text,   
  4.                buffer_gets,   
  5.                dense_rank() over   
  6.                   
  7.                (order by buffer_gets desc) buffer_gets_rank   
  8.           from v$sql)   
  9.  where buffer_gets_rank <= 100;   
  10. --物理读   
  11. select disk_reads, sql_text   
  12.   from (select sql_text,   
  13.                disk_reads,   
  14.                dense_rank() over   
  15.                   
  16.                (order by disk_reads desc) disk_reads_rank   
  17.           from v$sql)   
  18.  where disk_reads_rank <= 100;   
  19. --使用频率   
  20. select sql_text, executions   
  21.   from (select sql_text,   
  22.                executions,   
  23.                rank() over(order  
  24.                   
  25.                by executions desc) exec_rank   
  26.           from v$sql)   
  27.  where exec_rank <= 10;   
  28.   
  29. --资源占用   
  30. select b.username username,   
  31.        a.disk_reads reads,   
  32.        a.executions   
  33.           
  34.        exec,   
  35.        a.disk_reads / decode(a.executions, 0, 1, a.executions) rds_exec_ratio,   
  36.        a.sql_text statement   
  37.   from v$sqlarea a, dba_users b   
  38.  where a.parsing_user_id = b.user_id   
  39.    and a.disk_reads > 100000   
  40.  order by a.disk_reads desc;   
  41.   
  42. --效率   
  43. SELECT EXECUTIONS,   
  44.        DISK_READS,   
  45.        BUFFER_GETS,   
  46.        ROUND((BUFFER_GETS - DISK_READS) / BUFFER_GETS, 2) Hit_radio,   
  47.        ROUND(DISK_READS / EXECUTIONS, 2) Reads_per_run,   
  48.        SQL_TEXT   
  49.   FROM V$SQLAREA   
  50.  WHERE EXECUTIONS > 0   
  51.    AND BUFFER_GETS > 0   
  52.    AND (BUFFER_GETS - DISK_READS) / BUFFER_GETS < 0.8   
  53.  ORDER BY 4 DESC;   
  54.   
  55. --内存占用   
  56. select sql_text,   
  57.        operation_type,   
  58.        policy,   
  59.        (last_memory_used / 1024 / 1024),   
  60.        last_execution,   
  61.        last_tempseg_size   
  62.   from v$sql i, v$sql_workarea a   
  63.  where i.hash_value = a.hash_value   
  64.  order by 4 desc;   
  65.     
  66.  --跑了n久的~~   
  67.    select username,sid,opname,   
  68.   round(sofar*100 / totalwork,0) || '%' as progress,   
  69.   time_remaining,sql_text   
  70.   from v$session_longops , v$sql   
  71.   where time_remaining <> 0   
  72.   and sql_address = address   
  73.   and sql_hash_value = hash_value ;    
  74.   
  75. --非空闲等待   
  76.   
  77. select * /*sid,   
  78.        p1,   
  79.        p1raw,   
  80.        p2,   
  81.        p2raw,   
  82.        p3,   
  83.        p3raw,   
  84.        wait_time,   
  85.        seconds_in_wait,   
  86.        state,   
  87.        event*/   
  88.   from v$session_wait   
  89.  where event not in  
  90.        ('AQ Proxy Cleanup Wait', 'ASM background timer', 'DIAG idle wait',   
  91.         'EMON idle wait', 'KSV master wait', 'LNS ASYNC archive log',   
  92.         'LNS ASYNC dest activation', 'LNS ASYNC end of log',   
  93.         'LogMiner: client waiting for transaction',   
  94.         'LogMiner: slave waiting for activate message',   
  95.         'LogMiner: wakeup event for builder',   
  96.         'LogMiner: wakeup event for preparer',   
  97.         'LogMiner: wakeup event for reader', 'Null event',   
  98.         'PX Deq Credit: need buffer', 'PX Deq Credit: send blkd',   
  99.         'PX Deq: Execute Reply', 'PX Deq: Execution Msg',   
  100.         'PX Deq: Par Recov Execute', 'PX Deq: Signal ACK',   
  101.         'PX Deq: Table Q Normal', 'PX Deq: Table Q Sample', 'PX Deque wait',   
  102.         'PX Idle Wait', 'Queue Monitor Shutdown Wait',   
  103.         'Queue Monitor Slave Wait', 'Queue Monitor Wait',   
  104.         'SQL*Net message from client', 'SQL*Net message to client',   
  105.         'SQL*Net more data from client',   
  106.         'STREAMS apply coord waiting for slave message',   
  107.         'STREAMS apply slave idle wait',   
  108.         'STREAMS apply slave waiting for coord message',   
  109.         'STREAMS capture process filter callback wait for ruleset',   
  110.         'STREAMS fetch slave waiting for txns',   
  111.         'STREAMS waiting for subscribers to catch up',   
  112.         'Streams AQ: RAC qmn coordinator idle wait',   
  113.         'Streams AQ: deallocate messages from Streams Pool',   
  114.         'Streams AQ: delete acknowledged messages',   
  115.         'Streams AQ: qmn coordinator idle wait',   
  116.         'Streams AQ: qmn slave idle wait',   
  117.         'Streams AQ: waiting for messages in the queue',   
  118.         'Streams AQ: waiting for time management or cleanup tasks',   
  119.         'Streams fetch slave: waiting for txns', 'class slave wait',   
  120.         'client message', 'dispatcher timer', 'gcs for action',   
  121.         'gcs remote message', 'ges remote message', 'i/o slave wait',   
  122.         'jobq slave wait', 'knlqdeq', 'lock manager wait for remote message',   
  123.         'master wait', 'null event', 'parallel query dequeue', 'pipe get',   
  124.         'pmon timer', 'queue messages', 'rdbms ipc message', 'slave wait',   
  125.         'smon timer', 'virtual circuit status', 'wait for activate message',   
  126.         'wait for unread message on broadcast channel',   
  127.         'wakeup event for builder', 'wakeup event for preparer',   
  128.         'wakeup event for reader', 'wakeup time manager');   
  129. -- 根据等待事件找topsql   
  130. select sql_text   
  131.   from v$sqltext_with_newlines st, v$session se   
  132.  where st.address = se.sql_address   
  133.    and st.hash_value = se.sql_hash_value   
  134.    and se.sid =1646   
  135.  order by piece;    
  136. --快照id   
  137. select * from dba_hist_snapshot a order by a.snap_id desc;   
  138.   
  139. --db全球唯一标示   
  140. select * from v$database;   
  141.   
  142. --取addm报告   
  143. SELECT dbms_advisor.get_task_report('turning02', 'TEXT', 'ALL')   
  144.   FROM DUAL;   
  145.   
  146. --以典型方式生成当前系统快照   
  147. begin  
  148.   dbms_workload_repository.create_snapshot('TYPICAL');   
  149. end;   
  150. /   
  151.   
  152. --生成addm报告   
  153. DECLARE task_name VARCHAR2(30) := 'turning02';   
  154. task_desc VARCHAR2(30) := 'turning02';   
  155. task_id NUMBER;   
  156. BEGIN  
  157.   dbms_advisor.create_task('ADDM', task_id, task_name, task_desc, null);   
  158.   dbms_advisor.set_task_parameter(task_name, 'START_SNAPSHOT', 快照id-开始);   
  159.   dbms_advisor.set_task_parameter(task_name, 'END_SNAPSHOT', 快照id-结束);   
  160.   dbms_advisor.set_task_parameter(task_name, 'INSTANCE', 1);   
  161.   dbms_advisor.set_task_parameter(task_name, 'DB_ID', ******);   
  162.   dbms_advisor.execute_task(task_name);   
  163. END;   
  164. /   
  165.   
  166. --STA示例,其中要注意sql语句中单引号要替换为两个   
  167. DECLARE my_task_name VARCHAR2(30);   
  168. my_sqltext CLOB;   
  169. BEGIN  
  170.   my_sqltext   := '你的sql语句';   
  171.   my_task_name := DBMS_SQLTUNE.CREATE_TUNING_TASK(sql_text    => my_sqltext,   
  172.                                                   user_name   => 'STAT_GW',   
  173.                                                   scope       => 'COMPREHENSIVE',   
  174.                                                   time_limit  => 60,   
  175.                                                   task_name   => 'tuning_sql_test',   
  176.                                                   description => 'Task to tune a query ');   
  177.   DBMS_SQLTUNE.EXECUTE_TUNING_TASK(task_name => 'tuning_sql_test');   
  178. END;   
  179. /  
  1. da shang
    donate-alipay
               donate-weixin weixinpay

发表评论↓↓