zoukankan      html  css  js  c++  java
  • oracle性能查询

    项目运维过程中有关项目性能相关查询

    1:查询某句sql的执行次数

    SELECT SQL_ID, SQL_TEXT,FIRST_LOAD_TIME,last_load_time, EXECUTIONS
    FROM V$SQLAREA
    WHERE SQL_TEXT LIKE '%m_account%'

     通过执行次数对比,可以看到项目优化前后的效果。,项目优化过程发现,对于manytomany的jpa表关联关系设置,
    没有必要的话设置成lazy加载,即时加载会执行表关联查询,发现项目有一个无用的查询语句平均每天执行2000W次,太可怕了。

    2:查询某句sql占用cpu的时间

    select * from (select sql_text,sql_id,cpu_time from v$sql order by cpu_time desc) where rownum<=10
    AND sql_text like '%from m_%'
    order by
    rownum asc ;

    定位程序中的sql,分析是否可以优化,减少cpu使用时间

    3:查询会造成死锁的表

    select sess.sid,
    sess.serial#,
    lo.oracle_username,
    lo.os_user_name,
    ao.object_name,
    lo.locked_mode,
    SESS.machine
    from v$locked_object lo,
    dba_objects ao,
    v$session sess
    where ao.object_id = lo.object_id and lo.session_id = sess.sid;
    select sess.sid,
    sess.serial#,
    lo.oracle_username,
    lo.os_user_name,
    ao.object_name,
    lo.locked_mode,
    SESS.machine
    from v$locked_object lo,
    dba_objects ao,
    v$session sess
    where ao.object_id = lo.object_id and lo.session_id = sess.sid;

    debug项目,可以看到哪个表操作会有死锁产生,这个死锁在事务提交可能会处理,如果程序有不合理的地方,严重会导致死锁无法释放

    系统崩溃,需要重启oracle. 在优化项目过程中,发现jpa关联表操作问题,新增一条表1记录,设置关联表2,那么表2的修改应该在关联表1之前

    完成,观察程序执行过程发现,如果表2在关联表1后有修改操作,会导致表1被锁。

    4:清空共享池

    alter system flush shared_pool 

    方便对比优化前后结果

    找到那个感觉 就算打开了那个脑洞

    本文来自博客园,作者:xiao~xiao,转载请注明原文链接:https://www.cnblogs.com/angin-iit/p/13038379.html

  • 相关阅读:
    网页设计~老生常谈~浏览器兼容2个主要问题的解决
    谈谈网页功能测试
    从PMP学习中浅谈公司行政工作
    肉肉谈对需求设计的想法到底是功能驱动界面?还是界面驱动功能?
    jndi和rmi学习
    mysql赋值变量:=的使用
    用Cookies和HashTable制作购物车
    nginx实现简单的反向代理
    .net Form认证扩展保存 Object 类型
    基于Docker搭建私有镜像仓库
  • 原文地址:https://www.cnblogs.com/angin-iit/p/13038379.html
Copyright © 2011-2022 走看看