select b.username username,a.disk_reads reads,
a.executions
exec,a.disk_reads/decode(a.executions,0,1,a.executions) rds_exec_ratio,
a.sql_text
Statement,
a.CPU_TIME,a.CPU_TIME/decode(a.executions,0,1,a.executions)
from
v$sqlarea a,dba_users b
where a.parsing_user_id=b.user_id
order by
a.CPU_TIME desc;
下面是各个字段的意思:
v$sqlarea:Oracle动态性能表
disk_reads 所有子光标读取硬盘数据总和
executions 所有子光标的执行数目
sqltext
当前光标的对应的SQL语句的头1000个字符
cpu_time 该光标用于解析、执行和取数据的cpu时间,单位毫秒
dba_users:用户信息表
username 用户名
user_id 用户id号,是一个数字
这样的话,用此sql可以查看哪句sql执行太慢,可以考虑进行性能优化。下面介绍下查询是否锁表的方法:
1-------查询当前会话
select case when r.session_id is not NULL
and r.status = 'SUSPENDED'then 'Suspended'
when
max(decode(s.serial#,l.serial#,1,0)) = 1 then 'Long Operations' else
'Regular' end, s.sid,s.status,
s.username, RTRIM(s.osuser), b.spid,
s.machine, s.program, s.resource_consumer_group, r.timeout
from v$session s,
v$session_longops l, v$process b, dba_resumable r
where (s.sid = l.sid(+))
and (s.sid = r.session_id(+)) and s.paddr=b.addr
and s.status='ACTIVE'
group by r.session_id, r.error_number, r.status, s.sid,
s.status,
s.username, s.osuser, b.spid, s.machine,
s.program,s.resource_consumer_group, r.timeout;
2-----获取对话地址及hash值
select
decode(sql_address,'00',prev_sql_addr,sql_address)
sql_address,decode(sql_hash_value,0,
prev_hash_value,sql_hash_value)
sql_hash_value
from v$session where sid =26;
3-----根据对话地址及hash值查询执行SQL
select distinct piece,
sql_text, command_type from v$sqltext_with_newlines
where
rawtohex(address)='070000012D441468' and hashvalue='3018797201';
4----查询对话SERIAL号
SELECT serial#, username, schemaname,
osuser, terminal, machine, program, status,type,saddr,
logon_time,sysdate - last_call_et / 86400, resource_consumer_group
FROM
v$session WHERE sid =26;
5----终止对话
ALTER SYSTEM KILL
SESSION '26,35851'; (sid,serial#)
分享到:
相关推荐
### SQL Server 排查 CPU 占用高情况详解 #### 背景介绍 SQL Server 是一款广泛使用的数据库管理系统,在企业级应用中占有重要地位。然而,在实际的应用场景中,可能会遇到诸如 CPU 使用率异常增高、系统响应变慢等...
查询SQL中哪些语句执行最占用CPU.
根据语句查询执行消耗CPU大的SQL语句 在 SQL Server 中,查询执行消耗 CPU 大的语句对于系统性能的优化至关重要。在这个文档中,我们将学习如何使用三个语句来查询执行消耗 CPU 大的 SQL 语句。 语句一:根据...
总的来说,定位MSSQL中CPU占用高的SQL语句需要结合使用监控工具、查询性能分析和优化策略。通过理解查询执行计划,优化索引和查询结构,以及合理管理数据库资源,可以有效地降低CPU占用,提高数据库性能。
在这篇文章中,我们将介绍 SQL Server 的内存占用结构,并讨论如何通过参数化查询来优化执行缓存。 SQL Server 的内存占用结构 SQL Server 的内存占用主要由三部分组成:数据缓存、执行缓存和 SQL Server 引擎...
- **cpu_time**:表示SQL语句执行时占用CPU的时间(单位为毫秒)。 - **hash_value**:SQL语句的哈希值,用于唯一标识一个SQL语句。 - **sql_text**:SQL语句的实际文本内容。 3. **分析与优化** - **磁盘读取...
查询存储过程或sql查询占用的cpu SELECT TOP 100 query stats query hash AS "Query Hash" SUM query stats total worker time SUM query stats execution count AS "Avg CPU Time"
本文将详细介绍如何查看Oracle数据库中执行最慢和查询次数最多的SQL语句,以帮助DBA(数据库管理员)识别潜在的性能瓶颈。 首先,我们来看如何查询执行最慢的SQL语句。在Oracle中,可以使用`v$sqlarea`视图来获取...
查询那些语句占用CPU
SQL 优化与 CPU 占用率分析 在数据库管理中,SQL 语句的执行效率对系统性能的影响是非常重要的。本文将对四个占用 CPU 严重的 SQL 语句进行分析,并对其优化进行探讨。 问题一:占用 CPU 严重的 SQL 语句 该 SQL ...
在DB2数据库管理系统中,了解SQL执行计划对于优化查询性能、提高系统运行效率至关重要。本文将详细介绍如何在DB2中查看SQL执行计划,并通过实际案例深入解析相关命令及其参数的作用。 ### 一、DB2简介 DB2是IBM...
合理配置最大内存使用量、优化查询策略、合理使用索引等方法可以帮助我们有效控制SQL Server的内存占用,并提高整体系统的性能。在实际操作中,应根据具体的业务需求和服务器资源状况灵活调整这些策略,以达到最佳的...
根据提供的文件信息,本文将详细解释如何通过SQL查询来获取数据库中各数据表所占用的空间大小,这在数据库管理及优化工作中尤为重要。 ### SQL查询语句解析 #### 标题:“SQL查表大小语句” 该标题直接指出本文...
在Oracle中,SQL语句执行效率低下通常表现为资源过度消耗,这可能包括CPU时间、内存使用、磁盘I/O等。具体分析可从以下几个方面入手: 1. **响应时间不达标**:当查询响应时间超出预期时,应检查SQL语句是否涉及...
### 解决过程CPU占用率过高案例分析 #### 一、问题背景及初步诊断 在IT运维领域,CPU占用率过高是常见的性能瓶颈之一,尤其是在数据库服务器中尤为突出。本案例中,一位数据库管理员(DBA)面对一个服务器持续100% ...
### Oracle 查看当前会话执行的SQL语句 在Oracle数据库管理中,有时我们需要了解某个特定会话(Session)正在执行哪些SQL语句。这在性能调优、问题诊断等场景下尤为重要。以下将详细介绍如何通过不同的方法来查看...
查詢高消耗CPU的pid的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...
并行查询需要多个微处理器(CPU),因此只有在数据库服务器有多个 CPU 的情况下数据库才会考虑执行并行查询。此外,在查询计划执行过程中,数据库还会判断当时是否有足够多的线程可以使用。 其次,不建议对所有查询...
首先,需要使用 SQL Server Management Studio 的活动监视器,监控 CPU 使用率和查询语句的执行情况。其次,需要查看查询语句的执行计划,检查是否存在 CXPACKET 等待的情况。最后,需要检查应用程序的查询请求,...