sqlServer 检测慢 sql
部署监控:
部署慢SQL与死锁跟踪
Skip to end of metadata
仅SQL Server 2012及以上版本可用.
执行前请确保路径正确!
慢SQL定义:执行时间超过0.5秒即定义为慢SQL,会被捕获。
SSMS中新建查询窗口,将下面代码贴上后执行。
该代码会新建一个[YX_Monitor]库,库中包含[DeadlockDetail]、[SlowSqlDetail]、[SlowSqlReadLog]、[BlockDetail]四个表
DeadlockDetail:死锁明细记录数据,可查看死锁相关信息。
SlowSqlDetail:慢SQL明细数据,可查看所有慢SQL的执行情况。
SlowSqlReadLog:监控读取记录表,仅用于监控识别数据读取。
BlockDetail:记录阻塞信息。
用前必读:
脚本初始部分有一段注释,这个注释中的内容是通过打开SQL Server的CMD调用开关,调用CMD命令来创建保存跟踪文件的文件夹。此命令通常用于我们无法远程上服务器本机创建文件夹路径时使用。
如果需要使用,请在打开开关时注意[show advanced options] 与[xp_cmdshell]开关的状态,0为关闭,1为开启。使用后请恢复原位。
-----------------------------------------------------------------------------------------
------------执行前请确保路径 D:\TraceFile 存在,如要更改路径请先更改后再执行------------
-----------------------------------------------------------------------------------------
/***
如不能远程到服务器,使用xp_cmdshell创建文件夹路径
-- 开启
exec sp_configure 'show advanced options',1
go
reconfigure with override
go
exec sp_configure 'xp_cmdshell',1
go
reconfigure with override
goexec sys.xp_cmdshell 'dir D:\TraceFile' --查看文件夹
exec sys.xp_cmdshell 'mkdir D:\TraceFile' --新建文件夹
exec sys.xp_cmdshell 'rd D:\TraceFile' --删除文件夹--关闭
exec sp_configure 'xp_cmdshell',0
go
reconfigure with override
go
exec sp_configure 'show advanced options',0
go
reconfigure with override
go***/
----0.阻塞阈值设定
exec sp_configure 'show advanced options',1
reconfigure with override
go
exec sp_configure 'xp_cmdshell',1
reconfigure with override
go
EXEC sys.sp_configure N'blocked process threshold (s)', N'5'
reconfigure with override
GO
exec sp_configure 'xp_cmdshell',0
reconfigure with override
go
exec sp_configure 'show advanced options',0
reconfigure with override
go----1.建库
use master
go
if(select name from sys.databases where name='YX_Monitor') is null
beginCREATE DATABASE YX_MonitorALTER DATABASE [YX_Monitor] MODIFY FILE ( NAME = N'YX_Monitor', SIZE = 65536KB , FILEGROWTH = 65536KB )ALTER DATABASE [YX_Monitor] MODIFY FILE ( NAME = N'YX_Monitor_log', SIZE = 65536KB , FILEGROWTH = 65536KB )
end
go----2.建表
use YX_Monitor
goif object_id('YX_Monitor.dbo.SlowSqlReadLog') is null
BEGINCREATE TABLE [dbo].[SlowSqlReadLog]([TransactionNumber] [bigint] IDENTITY(1,1) NOT NULL,[LogServer] [nvarchar](100) NULL,[LogTime] [datetime] NULL CONSTRAINT [DF_SlowSqlReadLog_LogTime] DEFAULT (getdate()),[Last_Event_Time] [datetime2](7) NULL,CONSTRAINT [PK_SlowSqlReadLog] PRIMARY KEY CLUSTERED([TransactionNumber] ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]) ON [PRIMARY]
endif object_id('YX_Monitor.dbo.SlowSqlDetail') is null
BEGINCREATE TABLE [dbo].[SlowSqlDetail]([TransactionNumber] [bigint] NULL,[LogServer] [nvarchar](100) NULL,[EventTime] [datetime2](7) NULL,[EventName] [nvarchar](128) NULL,[statement] [nvarchar](max) NULL,[Sql_Text] [nvarchar](max) NULL,[Cpu] [bigint] NULL,[Logical_Reads] [bigint] NULL,[Physical_reads] [bigint] NULL,[Writes] [bigint] NULL,[Duration_ms] [bigint] NULL,[username] [nvarchar](128) NULL,[DatabaseName] [nvarchar](128) NULL,[ClientHostName] [nvarchar](128) NULL,[ClientAppName] [nvarchar](128) NULL,[SessionId] [int] NULL) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]create clustered index CIX_SlowSqlDetail_TransactionNumber on SlowSqlDetail(TransactionNumber,EventTime)
endif object_id('yx_monitor.dbo.DeadlockDetail') is null
beginCREATE TABLE [dbo].[DeadlockDetail]([EventTime] [datetime2](7) NULL,[LogServer] [varchar](30) NULL,[InputBuffer] [nvarchar](max) NULL,[lockMode] [varchar](10) NULL,[spid] [int] NULL,[hostname] [varchar](50) NULL,[clientapp] [varchar](100) NULL,[transactionname] [varchar](50) NULL,[status] [varchar](20) NULL,[waitresource] [varchar](200) NULL)create clustered index CIX_DeadlockDetail_EventTime on DeadlockDetail([EventTime],[LogServer])
endif object_id('YX_Monitor.dbo.BlockedDetail') is null
BEGINcreate table BlockedDetail(EventTime datetime2,LogServer varchar(30),SPID int,Process_Type varchar(10),[Status] varchar(20),BlockedTime_ms bigint,LockMode varchar(10),WaitResource varchar(100),InputBuffer nvarchar(max),ClientApp varchar(100),HostName varchar(50))create clustered index CIX_BlockedDetail_EventTime on BlockedDetail(EventTime)
endgo----3.扩展事件慢SQL会话
DECLARE @sessionName NVARCHAR(100),@createAndBegin BIT,@fileLocation NVARCHAR(100),@sql NVARCHAR(max),@cpuFilter NVARCHAR(100),@durationFilter_s decimal(4,2),@durationFilter_us NVARCHAR(100),@maxSizeMB NVARCHAR(10),@rolloverNum NVARCHAR(10),@rpc_completed TINYINT,@sp_statement_completed TINYINT,@sql_batch_completed TINYINT,@sql_statement_completed TINYINTSELECT @sessionName=N'DB_SlowSql',@fileLocation=N'D:\TraceFile\'+@sessionName+'.xel',@cpuFilter=1000,@durationFilter_s=0.5,@maxSizeMB=3,@rolloverNum=1,@createAndBegin=1,@rpc_completed=1,@sp_statement_completed=0,@sql_batch_completed=1,@sql_statement_completed=0,@durationFilter_us=cast(@durationFilter_s*1000*1000 as int)IF(@rpc_completed+@sp_statement_completed+@sql_batch_completed+@sql_statement_completed)=0
BEGINRAISERROR('至少选择一种跟踪事件!',16,3)RETURN
ENDIF exists(SELECT * FROM sys.server_event_sessions WHERE name=@SessionName)
BEGINRAISERROR('警告:扩展事件会话 %s 已存在,无法创建重命名会话!该步骤已跳过!',10,1,@SessionName)RETURN
END
ELSE
BEGINSET @sql=N'
CREATE EVENT SESSION ['+@SessionName+'] ON SERVER
'IF(@rpc_completed=1)
BEGINSET @sql=@sql+'ADD EVENT sqlserver.rpc_completed(ACTION(sqlserver.client_app_name,sqlserver.client_hostname,sqlserver.database_id,sqlserver.database_name,sqlserver.request_id,sqlserver.session_id,sqlserver.sql_text,sqlserver.username)WHERE ([cpu_time]>='+@cpuFilter+' and duration>='+@durationFilter_us+')),'
END
IF(@sp_statement_completed=1)
BEGINSET @sql=@sql+'ADD EVENT sqlserver.sp_statement_completed(ACTION(sqlserver.client_app_name,sqlserver.client_hostname,sqlserver.database_id,sqlserver.database_name,sqlserver.request_id,sqlserver.session_id,sqlserver.sql_text,sqlserver.username)WHERE ([cpu_time]>='+@cpuFilter+' and duration>='+@durationFilter_us+')),'
END
IF(@sql_batch_completed=1)
BEGINSET @sql=@sql+'ADD EVENT sqlserver.sql_batch_completed(SET collect_batch_text=(1)ACTION(sqlserver.client_app_name,sqlserver.client_hostname,sqlserver.database_id,sqlserver.database_name,sqlserver.request_id,sqlserver.session_id,sqlserver.sql_text,sqlserver.username)WHERE ([cpu_time]>='+@cpuFilter+' and duration>='+@durationFilter_us+')),'
END
IF(@sql_statement_completed=1)
BEGINSET @sql=@sql+'ADD EVENT sqlserver.sql_statement_completed (ACTION(sqlserver.client_app_name,sqlserver.client_hostname,sqlserver.database_id,sqlserver.database_name,sqlserver.request_id,sqlserver.session_id,sqlserver.sql_text,sqlserver.username)WHERE ([cpu_time]>='+@cpuFilter+' and duration>='+@du
相关文章:
sqlServer 检测慢 sql
部署监控: 部署慢SQL与死锁跟踪 Skip to end of metadata 仅SQL Server 2012及以上版本可用. 执行前请确保路径正确! 慢SQL定义:执行时间超过0.5秒即定义为慢SQL,会被捕获。 SSMS中新建查询窗口,将下面代码贴上后执行。 该代码会新建一个[YX_Monitor]库,库中包含[Deadloc…...

Mac电脑音视频播放器: Infuse for Mac中文
Infuse是一款流行的多媒体播放器应用程序,适用于iOS、tvOS和macOS平台。它由Firecore开发,旨在提供出色的媒体播放体验,并支持广泛的视频和音频格式。 以下是Infuse的一些主要功能和特点: 多媒体格式支持:Infuse支持…...
优化积分商城页面的8个实用技巧
积分商城是私域营销的强大工具,能够帮助企业吸引并留住客户,提高销售和客户忠诚度。然而,为了确保积分商城发挥最大效益,需要对其页面进行优化,以提供用户友好的体验。本文将介绍8个实用的技巧,帮助您优化积…...

Python机器学习实战-特征重要性分析方法(2):内置特征重要性(附源码和实现效果)
实现功能 一些模型,如线性回归和随机森林,可以直接输出特征重要性分数。这些显示了每个特征对最终预测的贡献。 实现代码 from sklearn.datasets import load_breast_cancer from sklearn.ensemble import RandomForestClassifier import matplotlib.…...
vue中v-for和v-if同时使用的解决办法
在一个列表中,如果同时要遍历,并且根据某个条件控制某个列表项是否显示,如下代码是错误的: <ul><li v-for"item in list" v-if"item.show" :key"item.id">{{item.name}}</li> &…...
【解决方法】树莓派4B安装wiringpi失败、gpio -v与gpio readall命令not found(arm64架构)
问题描述 树莓派信息:#4B# #64位# #aarch# 使用 gpio -v 或 gpio readall 命令时显示 cmmand not foung安装好 RPi.GPIO (安装命令:pip install RPi.GPIO)仍旧不能使用上述命令安装好 wiringpi 结果报错 wiringpi:armhf 原因分析…...
oracle 递归
1)此方法,父亲state 9999,儿子state ! 9999,儿子能查询出来 select * from T_ORGANIZATION ot where ot.state!9999 start with ot.id 7 connect by prior ot.id ot.ORG_PARENTID order by ot.id asc 2)此方法…...

SSM - Springboot - MyBatis-Plus 全栈体系(十三)
第三章 MyBatis 一、MyBatis 简介 1. 简介 MyBatis 最初是 Apache 的一个开源项目 iBatis, 2010 年 6 月这个项目由 Apache Software Foundation 迁移到了 Google Code。随着开发团队转投 Google Code 旗下, iBatis3.x 正式更名为 MyBatis。代码于 2013 年 11 月迁…...

Python|OpenCV-访问并修改图片像素值,鉴别彩色和灰色图像(6)
前言 本文是该专栏的第6篇,后面将持续分享OpenCV计算机视觉的干货知识,记得关注。 在使用OpenCV对图像进行操作的时候,通常需要熟练掌握一些Numpy知识点。因为有的时候需要用到Numpy和OpenCV结合去实现图像的操作,所以说想要写出较好的OpenCV代码的最好方法,就需要有Nump…...

【Python基础】if __name__ == ‘__main__‘:和assert函数
📢:如果你也对机器人、人工智能感兴趣,看来我们志同道合✨ 📢:不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】 📢:文章若有幸对你有帮助,可点赞 👍…...
设计模式——1. 单例模式
原理 单例模式(Singleton Pattern)用于确保一个类只有一个实例,并提供一个全局访问点以访问该实例。这意味着无论在何处请求该类的实例,都将返回相同的唯一实例。单例模式常常用于需要共享资源,或需要限制某些资源在系统中的访问次数的情况下。 使用的场景 单例模式在许…...
操作文档的用户故事怎么写,敏捷开发
文章目录 操作文档的用户故事怎么写,敏捷开发例子的标准就是操作文档的角色是最终用户 操作文档的用户故事怎么写,敏捷开发 在敏捷开发中,用户故事(User Stories)是一种简洁、人性化的方式来描述功能需求。这通常有助…...

14.抽象工厂模式
UML 代码 #include <iostream> #include <list> using namespace std;class AbstractProductA { public:virtual void showa() 0; }; class ProductA1:public AbstractProductA { public:virtual void showa(){cout << "我是A1" << endl;}…...

铁路用热轧钢轨
声明 本文是学习GB-T 2585-2021 铁路用热轧钢轨. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 1 范围 本标准规定了铁路用钢轨的订货内容、分类、尺寸、外形、质量及允许偏差、技术要求、试验方法、检 验规则、标志及质量证明书。 本标准适用于3…...

win11+wsl+git+cmake+x86gcc+armgcc+clangformat+vscode环境安装
一、安装wsl (1)打开power shell 并运行: Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform (2࿰…...

HDLBits-Edgedetect
刚开始写的代码如下: module top_module (input clk,input [7:0] in,output [7:0] pedge );reg [7:0] in_pre;always (posedge clk)begin in_pre < in;endassign pedge in & ~in_pre; endmodule但是提交结果是错误的。猜想原因如下: assign p…...

云计算与大数据——部署Hadoop集群并运行MapReduce集群(超级详细!)
云计算与大数据——部署Hadoop集群并运行MapReduce集群(超级详细!) Linux搭建Hadoop集群(CentOS7hadoop3.2.0JDK1.8Mapreduce完全分布式集群) 本文章所用到的版本号: CentOS7 Hadoop3.2.0 JDK1.8 基本概念及重要性 很多小伙伴部署集群用hadoop用mapr…...

基于jenkins+k8s实现devops
1、背景 由于jenkins运行在k8s上能够更好的利用动态agent进行构建。所以写了个部署教程,亲测无坑 2、部署 1、创建ns kubectl create namespace devops 2、kubectl apply -f jenkins.yml apiVersion: v1 kind: ServiceAccount metadata:name: jenkinsnamespace…...

一文了解企业如何实现文件自动化实时同步
在当今的数字化时代,数据是企业的核心资产,也是企业竞争力的重要体现。数据的传输、共享、协作、备份等都需要依赖文件同步技术,实现数据在不同平台和设备之间的一致性和可用性。文件同步是指将一个或多个文件夹中的内容复制或更新到另一个或…...
低代码系统哪里好
低代码作为近些年来被热议的话题,一直备受争议。低代码的出现更多的是用来辅助那些没有太多技能的人士而使用,在某些方面依然需要强大的代码来解决生产革新。所以低代码也不是浑水猛兽,也需要根据实际情况加以利用。那么为什么低代码会收到如…...
SkyWalking 10.2.0 SWCK 配置过程
SkyWalking 10.2.0 & SWCK 配置过程 skywalking oap-server & ui 使用Docker安装在K8S集群以外,K8S集群中的微服务使用initContainer按命名空间将skywalking-java-agent注入到业务容器中。 SWCK有整套的解决方案,全安装在K8S群集中。 具体可参…...

Python:操作 Excel 折叠
💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...

基于Flask实现的医疗保险欺诈识别监测模型
基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施,由雇主和个人按一定比例缴纳保险费,建立社会医疗保险基金,支付雇员医疗费用的一种医疗保险制度, 它是促进社会文明和进步的…...
React Native在HarmonyOS 5.0阅读类应用开发中的实践
一、技术选型背景 随着HarmonyOS 5.0对Web兼容层的增强,React Native作为跨平台框架可通过重新编译ArkTS组件实现85%以上的代码复用率。阅读类应用具有UI复杂度低、数据流清晰的特点。 二、核心实现方案 1. 环境配置 (1)使用React Native…...
Frozen-Flask :将 Flask 应用“冻结”为静态文件
Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是:将一个 Flask Web 应用生成成纯静态 HTML 文件,从而可以部署到静态网站托管服务上,如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...

Maven 概述、安装、配置、仓库、私服详解
目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...

GC1808高性能24位立体声音频ADC芯片解析
1. 芯片概述 GC1808是一款24位立体声音频模数转换器(ADC),支持8kHz~96kHz采样率,集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器,适用于高保真音频采集场景。 2. 核心特性 高精度:24位分辨率,…...
《C++ 模板》
目录 函数模板 类模板 非类型模板参数 模板特化 函数模板特化 类模板的特化 模板,就像一个模具,里面可以将不同类型的材料做成一个形状,其分为函数模板和类模板。 函数模板 函数模板可以简化函数重载的代码。格式:templa…...

GitFlow 工作模式(详解)
今天再学项目的过程中遇到使用gitflow模式管理代码,因此进行学习并且发布关于gitflow的一些思考 Git与GitFlow模式 我们在写代码的时候通常会进行网上保存,无论是github还是gittee,都是一种基于git去保存代码的形式,这样保存代码…...

【MATLAB代码】基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),附源代码|订阅专栏后可直接查看
文章所述的代码实现了基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),针对传感器观测数据中存在的脉冲型异常噪声问题,通过非线性加权机制提升滤波器的抗干扰能力。代码通过对比传统KF与MCC-KF在含异常值场景下的表现,验证了后者在状态估计鲁棒性方面的显著优…...