`
AutomaticThoughts
  • 浏览: 165503 次
社区版块
存档分类
最新评论

sql执行cpu占用情况查询,查表是否已锁

    博客分类:
  • DB
 
阅读更多

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#)

分享到:
评论

相关推荐

    SQLSERVER排查CPU占用高的情况

    ### SQL Server 排查 CPU 占用高情况详解 #### 背景介绍 SQL Server 是一款广泛使用的数据库管理系统,在企业级应用中占有重要地位。然而,在实际的应用场景中,可能会遇到诸如 CPU 使用率异常增高、系统响应变慢等...

    查询SQL中哪些语句执行最占用CPU

    查询SQL中哪些语句执行最占用CPU.

    根据以下语句查询执行消耗CPU大的sql语句.docx

    根据语句查询执行消耗CPU大的SQL语句 在 SQL Server 中,查询执行消耗 CPU 大的语句对于系统性能的优化至关重要。在这个文档中,我们将学习如何使用三个语句来查询执行消耗 CPU 大的 SQL 语句。 语句一:根据...

    快速定位MSSQL占用CPU高的sql方法

    总的来说,定位MSSQL中CPU占用高的SQL语句需要结合使用监控工具、查询性能分析和优化策略。通过理解查询执行计划,优化索引和查询结构,以及合理管理数据库资源,可以有效地降低CPU占用,提高数据库性能。

    优化SQL Server的内存占用之执行缓存

    在这篇文章中,我们将介绍 SQL Server 的内存占用结构,并讨论如何通过参数化查询来优化执行缓存。 SQL Server 的内存占用结构 SQL Server 的内存占用主要由三部分组成:数据缓存、执行缓存和 SQL Server 引擎...

    oracle消耗资源的sql查询语句记录

    - **cpu_time**:表示SQL语句执行时占用CPU的时间(单位为毫秒)。 - **hash_value**:SQL语句的哈希值,用于唯一标识一个SQL语句。 - **sql_text**:SQL语句的实际文本内容。 3. **分析与优化** - **磁盘读取...

    查询存储过程cpu占用

    查询存储过程或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语句

    本文将详细介绍如何查看Oracle数据库中执行最慢和查询次数最多的SQL语句,以帮助DBA(数据库管理员)识别潜在的性能瓶颈。 首先,我们来看如何查询执行最慢的SQL语句。在Oracle中,可以使用`v$sqlarea`视图来获取...

    查询那些语句占用CPU

    查询那些语句占用CPU

    sql学习 占用CPU严重的SQL语句.doc

    SQL 优化与 CPU 占用率分析 在数据库管理中,SQL 语句的执行效率对系统性能的影响是非常重要的。本文将对四个占用 CPU 严重的 SQL 语句进行分析,并对其优化进行探讨。 问题一:占用 CPU 严重的 SQL 语句 该 SQL ...

    db2查看sql执行计划

    在DB2数据库管理系统中,了解SQL执行计划对于优化查询性能、提高系统运行效率至关重要。本文将详细介绍如何在DB2中查看SQL执行计划,并通过实际案例深入解析相关命令及其参数的作用。 ### 一、DB2简介 DB2是IBM...

    SQL Server数据库占用过多内存的解决方法

    合理配置最大内存使用量、优化查询策略、合理使用索引等方法可以帮助我们有效控制SQL Server的内存占用,并提高整体系统的性能。在实际操作中,应根据具体的业务需求和服务器资源状况灵活调整这些策略,以达到最佳的...

    SQL查表大小语句

    根据提供的文件信息,本文将详细解释如何通过SQL查询来获取数据库中各数据表所占用的空间大小,这在数据库管理及优化工作中尤为重要。 ### SQL查询语句解析 #### 标题:“SQL查表大小语句” 该标题直接指出本文...

    Oracle中SQL语句执行效率的查找与解决

    在Oracle中,SQL语句执行效率低下通常表现为资源过度消耗,这可能包括CPU时间、内存使用、磁盘I/O等。具体分析可从以下几个方面入手: 1. **响应时间不达标**:当查询响应时间超出预期时,应检查SQL语句是否涉及...

    解决过程Cpu占用率

    ### 解决过程CPU占用率过高案例分析 #### 一、问题背景及初步诊断 在IT运维领域,CPU占用率过高是常见的性能瓶颈之一,尤其是在数据库服务器中尤为突出。本案例中,一位数据库管理员(DBA)面对一个服务器持续100% ...

    oracle 查看当前会话执行的sql语句

    ### Oracle 查看当前会话执行的SQL语句 在Oracle数据库管理中,有时我们需要了解某个特定会话(Session)正在执行哪些SQL语句。这在性能调优、问题诊断等场景下尤为重要。以下将详细介绍如何通过不同的方法来查看...

    查詢高消耗CPU的pid的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...

    sqlserver之并行查询

    并行查询需要多个微处理器(CPU),因此只有在数据库服务器有多个 CPU 的情况下数据库才会考虑执行并行查询。此外,在查询计划执行过程中,数据库还会判断当时是否有足够多的线程可以使用。 其次,不建议对所有查询...

    sqlserver cpu使用率高排查

    首先,需要使用 SQL Server Management Studio 的活动监视器,监控 CPU 使用率和查询语句的执行情况。其次,需要查看查询语句的执行计划,检查是否存在 CXPACKET 等待的情况。最后,需要检查应用程序的查询请求,...

Global site tag (gtag.js) - Google Analytics