oracle常用性能

--根据sql查询具体sql的sql_id
select * from dba_hist_sqltext t where t.sql_text like ‘INSERT ALL INTO TT_DEDUCT_SCAT_DEDUCT_RESULT%‘;
--根据sql id查看执行计划aanqrwv9p5x5s
select * from table(dbms_xplan.display_cursor(‘9axn49wsxyn64‘));

-- 查看花费时间
SELECT T.TARGET,
T.SQL_ID,
T.TIME_REMAINING,
T.ELAPSED_SECONDS,
T.SOFAR,
T.TOTALWORK,
T.START_TIME,
T.LAST_UPDATE_TIME,
T.SID,
T.SERIAL#,
T.MESSAGE
FROM V$SESSION_LONGOPS T
WHERE T.SQL_ID IN (‘9axn49wsxyn64‘);

--查看SQL等待状态
select *
from V$SESSION_WAIT t
where t.SID IN
(SELECT v.SID FROM V$SESSION V WHERE V.SQL_ID IN (‘d0qs5muru61k8‘/*,‘dq47ryxhrccm0‘,‘d0qs5muru61k8‘*/));

-- 重建索引
alter index IDX_TT_BILLING_WAYBILL_1 REBUILD;

-- 重建分区索引
alter index IDX_TT_BILLING_WAYBILL_3 REBUILD partition BILLING_W_201012;

--表分析
analyze table TT_BILLING_WAYBILL compute statistics (sample 20%);

BEGIN
dbms_stats.gather_table_stats(ownname=>‘exp5‘,tabname=>‘TT_BILLING_WAYBILL‘,estimate_percent=>30,cascade=> TRUE);
END;

--索引分析
analyze index indexname compute statistics;

-- 分析表
analyze table ... validate structure;

-- 查看表空间
--col tablespace_name format a10;
SELECT F.TABLESPACE_NAME,
A.TOTAL,
U.USED,
F.FREE,
ROUND((U.USED / A.TOTAL) * 100) "% used",
ROUND((F.FREE / A.TOTAL) * 100) "% Free"
FROM (SELECT TABLESPACE_NAME, SUM(BYTES / (1024 * 1024)) TOTAL
FROM DBA_DATA_FILES
GROUP BY TABLESPACE_NAME) A,
(SELECT TABLESPACE_NAME, ROUND(SUM(BYTES / (1024 * 1024))) USED
FROM DBA_EXTENTS
GROUP BY TABLESPACE_NAME) U,
(SELECT TABLESPACE_NAME, ROUND(SUM(BYTES / (1024 * 1024))) FREE
FROM DBA_FREE_SPACE
GROUP BY TABLESPACE_NAME) F
WHERE A.TABLESPACE_NAME = F.TABLESPACE_NAME
AND A.TABLESPACE_NAME = U.TABLESPACE_NAME;

-- 查询锁定的表
SELECT /*+ rule */
S.USERNAME,
DECODE(L.TYPE, ‘TM‘, ‘TABLE LOCK‘, ‘TX‘, ‘ROW LOCK‘, NULL) LOCK_LEVEL,
O.OWNER,
O.OBJECT_NAME,
O.OBJECT_TYPE,
S.SID,
S.SERIAL#,
S.TERMINAL,
S.MACHINE,
S.PROGRAM,
S.OSUSER,
S.LOGON_TIME,
S.SID
FROM V$SESSION S, V$LOCK L, DBA_OBJECTS O
WHERE L.SID = S.SID
AND L.ID1 = O.OBJECT_ID(+)
AND S.USERNAME IS NOT NULL

--session正在执行的 sql
SELECT /*+ ORDERED */
SQL_TEXT
FROM V$SQLTEXT A
WHERE (A.HASH_VALUE, A.ADDRESS) IN
(SELECT DECODE(SQL_HASH_VALUE, 0, PREV_HASH_VALUE, SQL_HASH_VALUE),
DECODE(SQL_HASH_VALUE, 0, PREV_SQL_ADDR, SQL_ADDRESS)
FROM V$SESSION B
WHERE B.SID = ‘1549‘) /* 此处233 为SID*/
ORDER BY PIECE ASC;

--通过TOAD的WAITE事件查正在等待的什么

SELECT *

FROM DBA_EXTENTS E

WHERE E.FILE_ID = 1054

AND E.BLOCK_ID < 268553

AND E.BLOCK_ID + E.BLOCKS > 268553

--查看临时表空间使用
select b.SID,
b.SQL_ID,
b.MACHINE,
b.USERNAME,
sum(blocks) * 8 / 1024 / 1024 temp_size
from v$tempseg_usage a, v$session b
where a.SESSION_NUM = b.SERIAL#
group by b.SID,
b.SQL_ID,
b.MACHINE,
b.USERNAME,SESSION_NUM

--历史执行计划
select to_char(x.end_interval_time, ‘YYYYMMDD HH24:MI:SS‘),
Y.executions_total,

Y.*

from dba_hist_snapshot x, dba_hist_sqlstat y

where x.snap_id = y.snap_id

and y.sql_id in (‘53wb82q5m4ff9‘)

and x.instance_number = y.instance_number

and x.end_interval_time >

to_date(‘2017-03-01 00:30‘, ‘yyyy-mm-dd hh24:mi‘)

-- and y.executions_delta <> 0

and x.instance_number = y.instance_number

order by 2 desc,1 asc;

--查询事务回滚段的使用情况,数值有增加则在写数据否则在回滚

select sw.inst_id,
s.sid,
s.sql_hash_value,
s.osuser,
to_char(s.LOGON_TIME, ‘YYYY-MM-DD HH24:MI:SS‘) logontime,
sw.event,
s.username,
t.xidusn,
round(t.used_ublk * x.VALUE / 1024 / 1024, 2) "used_undo M"
from gv$transaction t, gv$session s, gv$session_wait sw, v$parameter x
where t.ADDR = s.TADDR
and t.INST_ID = s.INST_ID
and s.inst_id = sw.inst_id
and s.sid = sw.sid
and x.name = ‘db_block_size‘
order by "used_undo M" desc;

--查询SQLID的绑定变量值

select sql_id,
name,
datatype_string,
case datatype
when 180 then --TIMESTAMP
to_char(ANYDATA.accesstimestamp(t.value_anydata),
‘YYYY/MM/DD HH24:MI:SS‘)
else
t.value_string
end as bind_value,
last_captured
from v$sql_bind_capture t
where sql_id = ‘5c2gq85rvycay‘;

时间: 2024-10-04 15:37:12

oracle常用性能的相关文章

ORACLE常用性能监控SQL【一】

目录(?)[+] 系列 ORACLE常用性能监控SQL[一] ORACLE常用性能监控SQL[二] Oracle-动态性能视图解读 系列 死锁后的解决办法 生成Kill Session语句 查看导致死锁的 SQL 查看谁锁了谁 ORA-00054 资源正忙要求指定 NOWAIT 查询绑定变量使用的实际值 监控事例的等待 回滚段的争用情况 查看回滚段名称及大小 查看控制文件 查看日志文件 查看前台正在发出的SQL语句 数据表占用空间大小情况 查看表空间碎片大小 查看表空间占用磁盘情况 查看表的大小

ORACLE常用性能监控SQL(二)

查询Oracle正在执行的sql语句及执行该语句的用户 SELECT b.sid oracleID, b.username 登录Oracle用户名, b.serial#, spid 操作系统ID, paddr, sql_text 正在执行的SQL, b.machine 计算机名 FROM v$process a, v$session b, v$sqlarea c WHERE a.addr = b.paddr AND b.sql_hash_value = c.hash_value 1 2 3 4

oracle常用的数据字典

一.oracle数据字典主要由以下几种视图构成:1.user视图以user_为前缀,用来记录用户对象的信息 2.all视图以all_为前缀,用来记录用户对象的信息及被授权访问的对象信息 3.dba视图以dba_为前缀,用来记录数据库实例的所有对象的信息 4.v$视图以v$为前缀,用来记录与数据库活动相关的性能统计动态信息 5.gv$视图以gv$为前缀,用来记录分布式环境下所有实例的动态信息 二.oracle常用的数据字典1.基本数据字典字典名称            说明dba_tables  

oracle常用系统表

Oracle查询用户下的所有表 select * from all_tab_comments – 查询所有用户的表,视图等 select * from user_tab_comments – 查询本用户的表,视图等 select * from all_col_comments –查询所有用户的表的列名和注释. select * from user_col_comments – 查询本用户的表的列名和注释 select * from all_tab_columns –查询所有用户的表的列名等信息(

Oracle动态性能表-V$SESSION_WAIT,V$SESSION_EVENT

(1)-V$SESSION_WAIT 这是一个寻找性能瓶颈的关键视图.它提供了任何情况下session在数据库中当前正在等待什么(如果session当前什么也没在做,则显示它最后的等待事件).当系统存在性能问题时,本视图可以做为一个起点指明探寻问题的方向. V$SESSION_WAIT中,每一个连接到实例的session都对应一条记录. V$SESSION_WAIT中的常用列 l         SID: session标识 l         EVENT: session当前等待的事件,或者最

oracle 常用查询

oracle查询表空间的使用情况 SELECT a.tablespace_name "表空间名", total "表空间大小", free "表空间剩余大小", (total - free) "表空间使用大小", total / (1024 * 1024 * 1024) "表空间大小(G)", free / (1024 * 1024 * 1024) "表空间剩余大小(G)", (tota

(转)oracle常用的数据字典

一.oracle数据字典主要由以下几种视图构成: 1.user视图 以user_为前缀,用来记录用户对象的信息 2.all视图 以all_为前缀,用来记录用户对象的信息及被授权访问的对象信息 3.dba视图 以dba_为前缀,用来记录数据库实例的所有对象的信息 4.v$视图 以v$为前缀,用来记录与数据库活动相关的性能统计动态信息 5.gv$视图 以gv$为前缀,用来记录分布式环境下所有实例的动态信息 二.oracle常用的数据字典 1.基本数据字典 字典名称 说明 dba_tables 所有用

oracle常用数据字典

----常用数据字典 USER_ 记录用户对象的信息,如user_tables包含用户创建的所有表:                                 user_views,user_constraints等; ALL_ 记录用户对象的信息及被授权访问的对象信息: DBA_ 记录数据库实例的所有对象的信息,如DBA_USERS包含数据库实例中 所有用户的信息,DBA的信息包含user和all的信息: V$ 当前实例的动态视图,包含系统管理和优化使用的视图: GV_ 分布环境下所有实

oracle常用的复合数据类型 : BULK COLLECT(成批聚合类型)和数组集合type类型is table of 表%rowtype index by binary_integer

例1: 批量 查询部门号为 "10" 号的并把它们打印出来 . DECLARE TYPE emp_table_type IS TABLE OF my_emp%ROWTYPE INDEX BY BINARY_INTEGER; v_emp_table emp_table_type; BEGIN SELECT * BULK COLLECT INTO v_emp_table FROM my_emp WHERE deptno=&deptno; FOR i IN 1..v_emp_tabl