• 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

  • 相关阅读:
    python模块之datetime方法详细介绍
    练习十七:python辨别数据类型
    练习十六:Python日期格式应用(datetime)
    Tkinter的l组件常用属性
    Log4net使用方法
    Thinkphp中在本地测试很好,在服务器上出错,有可能是因为debug缓存的问题
    Git 常见问题
    Linq中的in和not in的使用方法
    网络协议
    WCF传输协议
  • 原文地址:https://www.cnblogs.com/angin-iit/p/13038379.html
Copyright © 2020-2023  润新知