zoukankan      html  css  js  c++  java
  • 查询低效率的sql语句

    查找运行系统里bad sql是一个古老的话题, 我们要根据自己的实际情况来分析。绝不能教条的运用下面介绍的这些方法。使用这些SQL语句时,会对系统表产生分组操作,当然也增大了系统的负载。建议大家在系统启动了一段时间后,在半夜负载较轻的时间定时(例如:一个月)来查一查。一定要具体问题具体分析。
        下面是我收藏的一些查找bad sql的方法:


        select * from (select buffer_gets, sql_text
        from v$sqlarea
        where buffer_gets > 500000
        order by buffer_gets desc) where rownum<=30;


        -- 执行次数多的SQL


        select sql_text,executions from
        (select sql_text,executions from v$sqlarea order by executions desc)
        where rownum<81;


        -- 读硬盘多的SQL


        select sql_text,disk_reads from
        (select sql_text,disk_reads from v$sqlarea order by disk_reads desc)
        where rownum<21;


        -- 排序多的SQL


        select sql_text,sorts from
        (select sql_text,sorts from v$sqlarea order by sorts desc)
        where rownum<21;


        --分析的次数太多,执行的次数太少,要用绑变量的方法来写sql


        set pagesize 600;
        set linesize 120;
        select substr(sql_text,1,80) "sql", count(*), sum(executions) "totexecs"
        from v$sqlarea
        where executions < 5
        group by substr(sql_text,1,80)
        having count(*) > 30
        order by 2;


        -- 游标的观察


        set pages 300;
        select sum(a.value), b.name
        from v$sesstat a, v$statname b
        where a.statistic# = b.statistic#
        and b.name = 'opened cursors current'
        group by b.name;
        select count(0) from v$open_cursor;
        select user_name,sql_text,count(0) from v$open_cursor
        group by user_name,sql_text having count(0)>30;


        --查看当前用户&username执行的SQL


       select sql_text from v$sqltext_with_newlines where (hash_value,address) in
        (select sql_hash_value,sql_address from v$session where username='&username')
        order by address,piece;

  • 相关阅读:
    HttpInvoker GET/POST方式
    maven命令
    java内存简单描述
    零零碎碎之SPU与SKU
    ZooKeeper的ACL权限
    ZooKeeper常用命令行操作
    Zookeeper基本数据模型
    ZooKeeper的安装及部署
    ZooKeeper原理及介绍
    Shell脚本编程(一)
  • 原文地址:https://www.cnblogs.com/sopost/p/2190063.html
Copyright © 2011-2022 走看看