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 语句。 语句一:根据...
在这篇文章中,我们将介绍 SQL Server 的内存占用结构,并讨论如何通过参数化查询来优化执行缓存。 SQL Server 的内存占用结构 SQL Server 的内存占用主要由三部分组成:数据缓存、执行缓存和 SQL Server 引擎...
- **cpu_time**:表示SQL语句执行时占用CPU的时间(单位为毫秒)。 - **hash_value**:SQL语句的哈希值,用于唯一标识一个SQL语句。 - **sql_text**:SQL语句的实际文本内容。 3. **分析与优化** - **磁盘读取...
本文将详细介绍如何查看Oracle数据库中执行最慢和查询次数最多的SQL语句,以帮助DBA(数据库管理员)识别潜在的性能瓶颈。 首先,我们来看如何查询执行最慢的SQL语句。在Oracle中,可以使用`v$sqlarea`视图来获取...
查询存储过程或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"
查询那些语句占用CPU
SQL 优化与 CPU 占用率分析 在数据库管理中,SQL 语句的执行效率对系统性能的影响是非常重要的。本文将对四个占用 CPU 严重的 SQL 语句进行分析,并对其优化进行探讨。 问题一:占用 CPU 严重的 SQL 语句 该 SQL ...
合理配置最大内存使用量、优化查询策略、合理使用索引等方法可以帮助我们有效控制SQL Server的内存占用,并提高整体系统的性能。在实际操作中,应根据具体的业务需求和服务器资源状况灵活调整这些策略,以达到最佳的...
在DB2数据库管理系统中,了解SQL执行计划对于优化查询性能、提高系统运行效率至关重要。本文将详细介绍如何在DB2中查看SQL执行计划,并通过实际案例深入解析相关命令及其参数的作用。 ### 一、DB2简介 DB2是IBM...
在Oracle中,SQL语句执行效率低下通常表现为资源过度消耗,这可能包括CPU时间、内存使用、磁盘I/O等。具体分析可从以下几个方面入手: 1. **响应时间不达标**:当查询响应时间超出预期时,应检查SQL语句是否涉及...
### Oracle 查看当前会话执行的SQL语句 在Oracle数据库管理中,有时我们需要了解某个特定会话(Session)正在执行哪些SQL语句。这在性能调优、问题诊断等场景下尤为重要。以下将详细介绍如何通过不同的方法来查看...
5. **存储过程**:在某些情况下,可以创建一个存储过程来执行传入的动态SQL,然后通过调用这个存储过程批量处理脚本。 6. **自动化工具**:市面上还有一些专门的数据库管理工具,如Redgate SQL Toolbelt,提供了...
并行查询需要多个微处理器(CPU),因此只有在数据库服务器有多个 CPU 的情况下数据库才会考虑执行并行查询。此外,在查询计划执行过程中,数据库还会判断当时是否有足够多的线程可以使用。 其次,不建议对所有查询...
当SQL Server的CPU占用率过高时,通常是因为执行了大量或长时间的查询。可以使用SQL Server Profiler进行诊断和优化: 1. 打开SQL Server Profiler并创建一个新的跟踪。 2. 选择标准模板,并在“事件选择”中只保留...
首先,需要使用 SQL Server Management Studio 的活动监视器,监控 CPU 使用率和查询语句的执行情况。其次,需要查看查询语句的执行计划,检查是否存在 CXPACKET 等待的情况。最后,需要检查应用程序的查询请求,...
因此,能够准确地识别并分析那些占用大量资源的SQL查询至关重要。 #### 关键知识点解析 通过分析提供的SQL查询脚本,我们可以发现两个主要的知识点:如何查找并统计SQL Server中资源消耗最大的查询;以及如何进行...
根据给定的文件信息,本文将详细介绍三种不同的SQL执行方式及其应用场景,帮助读者更好地理解NC后台如何高效地处理SQL查询。 #### 一、`Private`包下的SQL执行方式 在`Private`包下,可以使用`BaseDAO`类来执行SQL...
SQL 语句导致 Oninit 进程占用 CPU 过高问题定位方法 在本篇文章中,我们将探讨如何定位导致 Oninit 进程占用 CPU 过高的问题,并找到引起该问题的根源 SQL 语句。以下是问题描述、分析和解决方法。 问题描述 在 ...