[转帖]Sql Server中通过sql命令获取cpu占用及产生锁的sql

sql,server,通过,命令,获取,cpu,占用,产生 · 浏览次数 : 0

小编点评

**文章主要介绍了以下内容:** * 通过 SQL 命令获取 CPU占用和产生锁的 SQL 语句。 * 使用 `sys.dm_exec_query_stats` 和 `sys.dm_exec_sql_text` 表达式获取 SQL 语句的信息。 * 通过 `SUBSTRING` 函数计算语句的文本范围。 * 使用 `sys.dm_tran_locks` 表达式查询数据库锁。 * 使用 `ORDER BY` 语句排序查询结果。 **文章中包含以下关键点:** * 通过 `SUBSTRING` 函数获取 SQL 语句的文本范围,并使用 `qs.statement_end_offset` 和 `qs.statement_start_offset` 获取语句开始和结束位置。 * 使用 `sys.dm_exec_sql_text` 表达式获取 SQL 语句的文本。 * 使用 `sys.dm_tran_locks` 表达式查询数据库锁。 * 使用 `sys.dm_exec_requests` 表达式获取有关 SQL 语句执行的详细信息。 **文章的目的是:** * 为 SQL Server 中通过 SQL 命令获取 CPU占用及产生锁的资源提供参考。 * 展示如何使用 SQL 语句获取 SQL 语句的信息并从锁状态中提取相关信息。

正文

https://www.jb51.net/article/266255.htm

 

这篇文章主要介绍了Sql Server中通过sql命令获取cpu占用及产生锁的sql,需要的朋友可以参考下
 

获取SQLSERVER中产生锁的SQL语句

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
SELECT
    SUBSTRING(st.text, (qs.statement_start_offset/2) + 1,((CASE statement_end_offset  WHEN -1 THEN DATALENGTH(st.text)  ELSE qs.statement_end_offset END - qs.statement_start_offset)/2) + 1) as statement_text
FROM sys.dm_exec_query_stats as qs CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) as st where qs.sql_handle in (select distinct sql_handle from sys.dm_exec_requests where session_id in (SELECT request_session_id as Spid
FROM sys.dm_tran_locks l
LEFT JOIN sys.partitions p
ON l.resource_associated_entity_id = p.hobt_id
LEFT JOIN sys.indexes i
ON p.object_id = i.object_id
AND p.index_id = i.index_id
LEFT JOIN sys.objects o
ON p.object_id = o.object_id
LEFT JOIN sys.schemas s
ON o.schema_id = s.schema_id
LEFT JOIN sys.objects o2
ON l.resource_associated_entity_id = o2.object_id
LEFT JOIN sys.schemas s2
ON o2.schema_id = s2.schema_id
LEFT JOIN sys.databases db
ON l.resource_database_id = db.database_id
WHERE resource_database_id = DB_ID() and request_mode in ('X')
))

查询 某个时间点的,所有执行中的sql语句的CPU占用时间(倒排序)

1
use master;SELECT [session_id], [cpu_time], [start_time], dest.[text] AS 'sql',  DB_NAME([database_id]) AS 'dbname', [row_count] FROM sys.[dm_exec_requests] AS der CROSS APPLY sys.[dm_exec_sql_text](der.[sql_handle]) AS dest WHERE [session_id]>50 ORDER BY [cpu_time] DESC

查询 不同sql语句产生阻塞的情况(主要是由于锁产生的等待)

1
use master;SELECT top 50 dest.[text] AS 'sql', wtt.blocking_session_id, wtt.wait_duration_ms, wtt.session_id FROM sys.dm_os_waiting_tasks wtt LEFT JOIN sys.dm_exec_requests req ON wtt.blocking_session_id = req.session_id CROSS APPLY sys.[dm_exec_sql_text](req.[sql_handle]) AS dest where wtt.blocking_session_id is not null and wtt.wait_duration_ms>2000 order by wait_duration_ms desc

到此这篇关于Sql Server中通过sql命令获取cpu占用及产生锁的sql的文章就介绍到这了,更多相关cpu占用及产生锁内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

与[转帖]Sql Server中通过sql命令获取cpu占用及产生锁的sql相似的内容:

[转帖]Sql Server中通过sql命令获取cpu占用及产生锁的sql

https://www.jb51.net/article/266255.htm 这篇文章主要介绍了Sql Server中通过sql命令获取cpu占用及产生锁的sql,需要的朋友可以参考下 获取SQLSERVER中产生锁的SQL语句 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1

[转帖]sql server 2016不能全部用到CPU的逻辑核心数的问题

https://blog.csdn.net/u011966339/article/details/122969685 最近在工作中遇到了,sql server 2016 不能把CPU 的核心全部用到的问题.通过分析工具看到 总共CPU核心有72核,但sql 只能用到40核心,想信也有很多人遇到这问题

[转帖]一文搞懂各种数据库SQL执行计划:MySQL、Oracle等

https://zhuanlan.zhihu.com/p/99331255 MySQL 执行计划 Oracle 执行计划 SQL Server 执行计划 PostgreSQL 执行计划 执行计划(execution plan,也叫查询计划或者解释计划)是数据库执行 SQL 语句的具体步骤,例如通过索

[转帖]003、体系结构之TiKV持久化

TiKV架构和作用 数据持久化分布式一致性MVCC分布式事务Coprocessor coprocessor : 协同处理器。 可以将一些SQL计算交给TiKV处理。不需要将TiKV所有数据通过网络发送给TiDB Server RocksDB 任何持久化的存储引擎,数据终归要保存在磁盘上,TiKV 也

【转帖】sqlserver 在高并发的select,update,insert的时候出现死锁的解决办法

最近在使用过程中使用SqlServer的时候发现在高并发情况下,频繁更新和频繁查询引发死锁。通常我们知道如果两个事务同时对一个表进行插入或修改数据,会发生在请求对表的X锁时,已经被对方持有了。由于得不到锁,后面的Commit无法执行,这样双方开始死锁。但是select语句和update语句同时执行,

[转帖]SQL Server 体系结构中的2个主要引擎 说明

2020-03-18 16:2321450原创SQLServer 本文链接:https://www.cndba.cn/dave/article/4498 SQL Server 由两个主要引擎组成∶关系引擎(relational engine)和存储引擎(storage engine)。 1 关系引擎

[转帖]SQL Server 聚集索引和 非聚集索引 说明

https://www.cndba.cn/dave/article/4506 索引是与表或视图关联的磁盘上结构,可以加快从表或视图中检索行的速度。 索引包含由表或视图中的一列或多列生成的键。 这些键存储在一个结构(B 树)中,使 SQL Server 可以快速有效地查找与键值关联的行。 1 聚集索引

[转帖]SQL Server 内部数据库版本 及兼容表

2022-04-20 09:043100转载SQLServer Microsoft SQL Server 的较新版本创建的数据库无法附加或还原到较早的版本。之所以存在此限制,是因为较旧的版本不知道新版本中引入的文件格式有哪些变更。 如果你尝试将数据库附加到早期版本、或者还原到早期版本,将会收到 SQ

[转帖]Sql Server - 文件和文件组体系结构

摘自 http://msdn.microsoft.com/zh-cn/library/ms179316(SQL.105).aspx SQL Server 将数据库映射为一组操作系统文件。数据和日志信息绝不会混合在同一个文件中,而且一个文件只由一个数据库使用。文件组是命名的文件集合,用于帮助数据布局和

[转帖]SQL Server数据库存储总结

SQL Server数据库存储文件类型:数据文件和日志文件。数据文件以页面作为存储单元存储数据。 页面:即数据页面,数据页(Page)。是系统在磁盘间中分配的一段大小为8k的连续空间。 文件头(File Header):每个文件的第0页记录叫文件头,记录引导信息。 扩展:每8个数据页(64k)的组合