加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql-server – MSSQL Server是否具有MySQL的查询日志?

发布时间:2020-12-12 16:50:45 所属栏目:MsSql教程 来源:网络整理
导读:我已经使用 MySQL很长一段时间了,并且发现通用查询日志和慢查询日志对于找出服务器上发生的事情以及识别瓶颈非常有用. 现在我需要使用SQL Server. SQL Server是否具有类似的日志工具?如果是这样,他们叫什么? 解决方法 SQL Server保存有关各种表中所有查询的
我已经使用 MySQL很长一段时间了,并且发现通用查询日志和慢查询日志对于找出服务器上发生的事情以及识别瓶颈非常有用.

现在我需要使用SQL Server. SQL Server是否具有类似的日志工具?如果是这样,他们叫什么?

解决方法

SQL Server保存有关各种表中所有查询的统计信息.您可以使用以下代码来确定运行时间最长的查询(来自sys.dm_exec_query_stats表).

您应该运行以下DBCC命令:

此DBCC命令清除服务器缓存并重新启动查询运行时的日志记录:

DBCC FREEPROCCACHE

运行此查询以查找运行时间最长的查询:

SELECT DISTINCT TOP 10
 t.TEXT QueryName,s.execution_count AS ExecutionCount,s.max_elapsed_time AS MaxElapsedTime,ISNULL(s.total_elapsed_time / s.execution_count,0) AS AvgElapsedTime,s.creation_time AS LogCreatedOn,ISNULL(s.execution_count / DATEDIFF(s,s.creation_time,GETDATE()),0) AS FrequencyPerSec
 FROM sys.dm_exec_query_stats s
 CROSS APPLY sys.dm_exec_sql_text( s.sql_handle ) t
 ORDER BY
 s.max_elapsed_time DESC
 GO

您还应该查看Technet杂志文章Optimizing SQL Server Query Performance,该文章有一个查询,用于确定哪个查询是最昂贵的读取I / O查询,以及有关如何查看执行计划和其他优化的指导.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读