`

分析数据库性能的SQL

SQL 
阅读更多
--用于查看哪些实例的哪些操作使用了大量的临时段

SELECT to_number(decode(SID, 65535, NULL, SID)) sid,
operation_type OPERATION,trunc(EXPECTED_SIZE/1024) ESIZE,
trunc(ACTUAL_MEM_USED/1024) MEM, trunc(MAX_MEM_USED/1024) "MAX MEM",
NUMBER_PASSES PASS, trunc(TEMPSEG_SIZE/1024) TSIZE
FROM V$SQL_WORKAREA_ACTIVE
ORDER BY 1,2;

---查询有热块查询的SQL语句

select hash_value
from v$sqltext a,
(select distinct a.owner,a.segment_name,a.segment_type from
dba_extents a,
(select dbarfil,dbablk
from (select dbarfil,dbablk
from x$bh order by tch desc) where rownum < 11) b
where a.RELATIVE_FNO = b.dbarfil
and a.BLOCK_ID <= b.dbablk and a.block_id + a.blocks > b.dbablk) b
where a.sql_text like '%'b.segment_name'%' and b.segment_type = 'TABLE'
order bya.hash_value,a.address,a.piece;

--全表扫描

select opname,target,b.num_rows,b.tablespace_name,count(target) from v$session_longops a,all_all_tables b
where a.TARGET=b.owner'.'b.table_name
having count(target)>10 group by opname,target,b.num_rows,b.tablespace_name

--查看磁盘排序和缓存排序次数

selectto_char(sn.snap_time,'yyyy-mm-dd hh24') time_,
avg(newmen.value - oldmen.value) sorts_memeory,
avg(newdsk.value - olddsk.value) disk_sort
fromstats$sysstat oldmen,
stats$sysstat newmen,
stats$sysstat newdsk,
stats$sysstat olddsk,
stats$snapshot sn
where newdsk.snap_id=sn.snap_id
and olddsk.snap_id=sn.snap_id-1
and newmen.snap_id=sn.snap_id
and newdsk.snap_id=sn.snap_id -1
and oldmen.name='sorts (memory)'
and newmen.name='sorts (memory)'
and olddsk.name='sorts (disk)'
and newdsk.name='sorts (disk)'
group byto_char(sn.snap_time,'yyyy-mm-dd hh24')

--执行最慢的前10个SQL???

select * from (
select
to_char(snap_time,'dd Mon HH24:mi:ss') mydate,
executions exec,
loadsloads,
parse_callsparse,
disk_reads reads,
buffer_getsgets,
rows_processed rows_proc,
sortssorts,
sql_text,
hash_value
from
perfstat.stats$sql_summary sql,
perfstat.stats$snapshot sn
where
sql.snap_id >
(select min(snap_id) min_snap
from stats$snapshot where snap_time > sysdate-$days_back)
and
sql.snap_id = sn.snap_id
order by $sortskey desc)tt where rownum<11;

--SQL缓存池的命中率查询(pinhitratio,gethitratio应该大于90%以上)

select namespace,gethitratio,pinhitratio,reloads,invalidations
from v$librarycache
where namespace in ('SQL AREA','TABLE/PROCEDURE','BODY','TRIGGER')

--数据库的常规参数我就不说了,除了V$parameter中的常规参数外,Oracle还有大量的隐含参数,下面的语句就可以查询到数据库的所有隐含参数以及其值与参数的描述。


SELECT NAME
,VALUE
,decode(isdefault, 'TRUE','Y','N') as "Default"
,decode(ISEM,'TRUE','Y','N') as SesMod
,decode(ISYM,'IMMEDIATE', 'I',
'DEFERRED', 'D',
'FALSE', 'N') as SysMod
,decode(IMOD,'MODIFIED','U',
'SYS_MODIFIED','S','N') as Modified
,decode(IADJ,'TRUE','Y','N') as Adjusted
,description
FROM ( --GV$SYSTEM_PARAMETER
SELECT x.inst_id as instance
,x.indx+1
,ksppinm as NAME
,ksppity
,ksppstvl as VALUE
,ksppstdf as isdefault
,decode(bitand(ksppiflg/256,1),1,'TRUE','FALSE') as ISEM
,decode(bitand(ksppiflg/65536,3),
1,'IMMEDIATE',2,'DEFERRED','FALSE') as ISYM
,decode(bitand(ksppstvf,7),1,'MODIFIED','FALSE') as IMOD
,decode(bitand(ksppstvf,2),2,'TRUE','FALSE') as IADJ
,ksppdesc as DESCRIPTION
FROM x$ksppi x
,x$ksppsv y
WHERE x.indx = y.indx
AND substr(ksppinm,1,1) = '_'
AND x.inst_id = USERENV('Instance')
)
ORDER BY NAME

--想知道现在哪个用户正在利用临时段吗?这个语句将告诉你哪个用户正在利用临时段。

SELECT b.tablespace, b.segfile#, b.segblk#, b.blocks, a.sid, a.serial#,
a.username, a.osuser, a.status,c.sql_text
FROM v$session a,v$sort_usage b, v$sql c
WHERE a.saddr = b.session_addr
AND a.sql_address = c.address(+)
ORDER BY b.tablespace, b.segfile#, b.segblk#, b.blocks;

--查看磁盘碎片

select tablespace_name,sqrt(max(blocks)/sum(blocks))*
(100/sqrt(sqrt(count(blocks)))) FSFI
from dba_free_space
group by tablespace_name order by 1

1.查看表空间的名称及大小

select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_size
from dba_tablespaces t, dba_data_files d
where t.tablespace_name = d.tablespace_name
group by t.tablespace_name;

2.查看表空间物理文件的名称及大小

select tablespace_name, file_id, file_name,
round(bytes/(1024*1024),0) total_space
from dba_data_files
order by tablespace_name;

3.查看回滚段名称及大小

select segment_name, tablespace_name, r.status,
(initial_extent/1024) InitialExtent,(next_extent/1024) NextExtent,
max_extents, v.curext CurExtent
From dba_rollback_segs r, v$rollstat v
Where r.segment_id = v.usn(+)
order by segment_name

15。耗资源的进程(top session)

select s.schemaname schema_name,decode(sign(48 - command), 1,
to_char(command), 'Action Code #' to_char(command) ) action,status
session_status, s.osuser os_user_name, s.sid, p.spid , s.serial# serial_num,
nvl(s.username, '[Oracle process]') user_name, s.terminal terminal,
s.program program, st.value criteria_valuefrom v$sesstat st, v$session s, v$process p
where st.sid = s.sid and st.statistic# = to_number('38') and ('ALL' = 'ALL'
or s.status = 'ALL') and p.addr = s.paddr order by st.value desc,p.spid asc, s.username asc, s.osuser asc

16。

查看锁(lock)情况

select /*+ RULE */ ls.osuser os_user_name, ls.username user_name,
decode(ls.type, 'RW', 'Row wait enqueue lock', 'TM', 'DML enqueue lock', 'TX',
'Transaction enqueue lock', 'UL', 'User supplied lock') lock_type,
o.object_name object, decode(ls.lmode, 1, null, 2, 'Row Share', 3,
'Row Exclusive', 4, 'Share', 5, 'Share Row Exclusive', 6, 'Exclusive', null)
lock_mode,o.owner, ls.sid, ls.serial# serial_num, ls.id1, ls.id2
from sys.dba_objects o, ( select s.osuser, s.username, l.type,
l.lmode, s.sid, s.serial#, l.id1, l.id2 from v$session s,
v$lock l where s.sid = l.sid ) lswhere o.object_id = ls.id1 ando.owner
<> 'SYS' order by o.owner, o.object_name

--查看低效率的SQL语句

SELECT EXECUTIONS , DISK_READS, BUFFER_GETS,
ROUND((BUFFER_GETS-DISK_READS)/BUFFER_GETS,2) Hit_radio,
ROUND(DISK_READS/EXECUTIONS,2) Reads_per_run,
SQL_TEXT
FROM V$SQLAREA
WHEREEXECUTIONS>0
AND BUFFER_GETS > 0
AND (BUFFER_GETS-DISK_READS)/BUFFER_GETS < 0.8
ORDER BY 4 DESC
分享到:
评论

相关推荐

    Oracle数据库性能分析

    为了有效地进行Oracle数据库性能分析,识别导致性能问题的SQL语句是非常关键的。以下是一些常用的工具和技术: - **AWR(Automatic Workload Repository)**: AWR提供了关于系统活动的重要信息,可以帮助识别高CPU或I...

    SQLServer数据库性能优化

    【SQLServer数据库性能优化】 数据库性能优化是提升系统效率的关键环节,尤其是在SQL Server这样的大型企业级数据库管理系统中。本文主要探讨了如何从数据库设计和硬件系统两个层面来优化SQL Server的性能。 首先...

    数据库试卷 sqlSQL Server数据库试卷

    SQL Server是微软公司开发的一款关系型数据库管理系统,广泛应用于企业级数据存储、管理和分析。 【描述】"数据库试卷SQL Server数据库试卷SQL Server数据库试卷SQL Server数据库试卷"强调了试卷的重复性和重要性,...

    数据库性能指标,其中包括sql数据库和oracle数据库的性能指标介绍

    SQL(Structured Query Language)数据库和Oracle数据库作为两种广泛应用的关系型数据库管理系统,它们的性能指标分析对于优化数据库性能至关重要。 一、SQL数据库性能指标 1. **查询时间**:这是最基本的性能指标...

    基于SQL数据库的性能优化问题分析.rar

    总结来说,"基于SQL数据库的性能优化问题分析"涵盖了从SQL查询优化、索引设计到数据库架构和配置调整等多个层面,旨在帮助开发者和DBA更好地理解数据库性能优化的方法和实践,提升系统的整体性能和稳定性。...

    SQL服务器,性能分析语句

    常用的数据库性能分析语句,服务器卡的时候,常用的可以查看后台连接、使用能耗比较高的语句代码

    数据库设计对SQL Server数据库性能优化分析 (1).pdf

    在分析数据库设计对SQL Server性能优化的影响时,论文主要从数据库逻辑设计、物理设计以及事务日志文件的设计等方面展开。逻辑设计关注数据库中数据的组织方式,物理设计则关注数据在存储介质上的实际存放,事务...

    DB2数据库性能调整和优化 牛新庄 PDF

    DB2数据库性能调整和优化(第2版)侧重于介绍DB2数据库的性能调优。性能调优是一个系统工程:全面监控分析操作系统、I/O性能、内存、应用及数据库才能快速找到问题根源;深刻理解DB2的锁及并发机制、索引原理、数据库...

    基于关系型数据库的SQL检索优化研究.pdf

    本文将详细探讨SQL检索优化的方法,并分析这些优化技术对关系型数据库性能提升的重要性和实际应用。 首先,SQL检索优化的必要性体现在其直接影响数据库信息查询效率的高低。在关系型数据库中,SQL语句的执行涉及到...

    常用Oracle监控数据库性能的SQL

    本文将深入探讨Oracle监控数据库性能的一些常用SQL语句,以及它们如何帮助我们理解数据库的工作状态。 首先,`V$视图`是Oracle提供的一种内置的性能数据源,通过查询这些视图,我们可以获取到丰富的性能信息。例如...

    数据库性能监控数据库性能监控.ppt

    * 使用合适的分析和解释方法来分析数据库性能监控结果 数据库性能监控是对数据库性能进行实时监控和优化的重要步骤,Oracle 数据库性能监控是对 Oracle 数据库的性能进行监控和优化的重要步骤。通过使用 Oracle ...

    数据库性能分析SQLMon.4.3.alpha.6.bin.zip

    数据库性能分析是IT领域中的重要环节,特别是在关系型数据库管理系统如SQL Server的环境中。SQLMon是一个专门针对SQL Server性能监控的工具,版本为4.3.alpha.6,它旨在帮助数据库管理员(DBA)和开发人员实时跟踪和...

    SqlDbx数据库访问工具

    在性能优化方面,SqlDbx允许用户执行查询分析,帮助找出低效的SQL语句,从而提升数据库性能。它还可以监控数据库的活动,如查询执行时间、内存使用情况等,为数据库性能调优提供依据。 安全性是数据库管理的重要...

    SQLDBX 连接多种类型的数据库

    - **性能分析**:内置执行计划分析,帮助优化查询性能。 2. **安装与配置**: - SQLDBX通常提供可执行文件(如SqlDbx.exe)进行安装,下载后双击即可开始安装。也有便携版(如SqlDbx_zhs.exe),无需安装,解压后...

    SQL数据库性能调优

    SQL数据库性能调优是数据库管理和开发中的重要环节,旨在提高数据查询速度、降低资源消耗,提升系统的整体响应时间和处理能力。以下将详细阐述这一领域的关键知识点: 1. **设定性能目标**:在进行性能调优前,首先...

    中控考勤软件sqlserver数据库建立办法

    在对象资源管理器中,选中新建的数据库,再新建查询,然后把之前复制的 SQL Server 数据库脚本粘贴到查询分析器中。 步骤 5:执行脚本 确认脚本文件复制粘贴成功之后,执行(或按 F5)即可。如果执行成功后,...

    基于ORACLE数据库的SQL性能优化.pdf

    Oracle数据库是当前广泛使用的商业数据库系统之一,其性能优化是确保数据处理效率和系统整体性能的关键环节。...这些内容对于数据库管理员和系统开发者提高数据库性能,优化SQL查询具有重要的参考价值。

    桌面数据库工具 sql2000

    SQL Server 2000 的核心组件包括数据库引擎、查询分析器、企业管理器等多个实用工具,这些工具为用户提供了全面的数据库管理体验。 **查询分析器**: 查询分析器是SQL Server 2000中的一个关键组件,用于编写、执行...

    SQL Server数据库的性能分析和优化策略研究

    高性能的硬件是物理数据库性能的基础,尤其是大容量内存和高效的磁盘I/O子系统。从软件的角度来看,SQL Server数据库的实施过程中,需要遵循以下准则: 1. **减少存储空间**:通过合理的表结构设计和数据压缩技术来...

    数据库性能优化方案

    - **数据库调优顾问(DBMS_ADVISOR)**:利用内置工具分析数据库性能,提供优化建议。 - **绑定变量**:使用绑定变量避免解析SQL语句的开销,提高执行效率。 - **实时监控与AWR报告**:通过Automatic Workload ...

Global site tag (gtag.js) - Google Analytics