zoukankan      html  css  js  c++  java
  • Oracle 数据库优化-分析现有的sql

    在做数据库sql优化时,首先要对现有的数据库sql进行优化,主要包括以下几种:

    1、数据库正在执行的SQL是?

    2、已经执行过得SQL是?

    3、最耗时的的前几条SQL是?

    4、最耗IO的SQL是?

    5、某条SQL执行的计划是?某条SQL上的优化策略是否起作用?

    以下,将对上面的几种情况分别陈述。

    一、查询正在执行的sql。

    select a.username, a.sid,b.SQL_TEXT, b.SQL_FULLTEXT
    from v$session a, v$sqlarea b
    where a.sql_address = b.address AND B.PARSING_SCHEMA_NAME='GTSPM' #PARSING_SCHEMA_NAME  某个用户名

    二、查询已经执行过得sql

    select b.SQL_TEXT,b.FIRST_LOAD_TIME,b.SQL_FULLTEXT
    from v$sqlarea b WHERE B.PARSING_SCHEMA_NAME='GTSPM' order by first_load_time desc

    三、查询性能最差的前N条SQL

    SELECT * FROM (select PARSING_USER_ID,EXECUTIONS,SORTS,
    COMMAND_TYPE,DISK_READS,sql_text FROM v$sqlarea WHERE PARSING_SCHEMA_NAME='GTSPM'
    order BY disk_reads DESC )where ROWNUM<10 ;

    四、最耗IO的SQL

    SELECT se.sid,se.serial#,pr.SPID,se.username,se.status,
    se.terminal,se.program,se.MODULE,se.sql_address,st.event,st.
    p1text,si.physical_reads,
    si.block_changes FROM v$session se,v$session_wait st,
    v$sess_io si,v$process pr WHERE st.sid=se.sid AND st.
    sid=si.sid AND se.PADDR=pr.ADDR AND se.sid>6 AND st.
    wait_time=0 AND st.event NOT LIKE '%SQL%' ORDER BY physical_reads DESC

    五、查询sql的执行计划。

      查看索引是否生效、是否进行全表扫描、索引使用是否合理。

  • 相关阅读:
    android —— textview解析html富文本
    android toolbar及可折叠标题栏
    dp——cf1327F
    cf1327D,E——组合数学
    技能表自查
    python 之禅 import this
    转--Python标准库之一句话概括
    python 爆破
    python -- 算法
    python 代码模板
  • 原文地址:https://www.cnblogs.com/likehua/p/4164317.html
Copyright © 2011-2022 走看看