oracle数据库表分析sql,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的执行计划。

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值