提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|使用教程|编辑:莫成敏|2019-09-18 11:24:44.527|阅读 1051 次
概述:本文主要介绍创建一个简单的自定义指标来跟踪最近对数据库进行读取或写入的会话数。建立了指标的基线后,您将能够发现并调查任何与偏离正常行为的异常行为的原因。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
SQL Monitor是一个SQL Server监控工具。它可以监控SQL Servers的健康状况和活动,并通过电子邮件为您发送监测结果和建议。
本文主要介绍创建一个简单的自定义指标来跟踪最近对数据库进行读取或写入的会话数。建立了指标的基线后,您将能够发现并调查任何与偏离正常行为的异常行为的原因。
了解服务器上每个数据库的活动会话数非常有用。通过一些SQL,我们可以创建一个自定义指标来跟踪最近在数据库上执行读取或写入的会话数,例如在过去十分钟内。一旦SQL Monitor适应了这个图中常见的退潮和流程,你就会拥有每个数据库的基线,并且能够发现可疑或不寻常的使用模式。此时,SQL中有很多方法可以详细了解哪些用户处于活动状态,以及他们正在做什么。
我已经通过跟踪这个指标发现了问题,其中一个我认为已禁用的进程以某种方式重新启动,另一个数据库本应该显示一些活动,却没有显示任何活动!
谁在使用您的数据库以及他们在做什么?
您的数据库中有多少用户?好吧,可能只有一个用户(登录)使用很多会话做了大量的事情。如果您在一个用户ID下具有与应用程序的共享连接,则尤其如此,因此有许多人或进程使用一个登录名。
理想情况下,这不应该发生;每个用户都应该使用他们独特的Windows登录,从而使您能够正确审核正在进行的操作。您的安全性越高,您可能与会话成比例的用户就越多,因为这意味着用户不会共享登录。
可悲的是,我们并不总是生活在一个理想的世界,特别是在IT领域。因此,我们需要跟踪SPID和登录。清单1显示了一个快速查询,告诉您服务器上每个数据库的每个登录名使用了多少个会话。
SELECT Db_Name(Database_id), String_Agg(Login_Name + ' (' + Convert(VARCHAR(8), No_Sessions) + ')', ', ') FROM ( SELECT database_id, login_name, Count(*) AS No_Sessions FROM sys.dm_exec_connections AS A INNER JOIN sys.dm_exec_sessions AS B ON A.session_id = B.session_id GROUP BY login_name, database_id ) AS f(Database_id, Login_Name, No_Sessions) GROUP BY Database_id;
清单1
您还想知道每个会话执行的最后一个SQL吗?清单2将告诉你。
SELECT A.session_id, Db_Name(database_id) AS [database], DateDiff(MINUTE, A.connect_time, GetDate()) AS [Connected (mins)], num_reads, num_writes, login_name, Text AS SQL FROM sys.dm_exec_connections AS A INNER JOIN sys.dm_exec_sessions AS B ON A.session_id = B.session_id INNER JOIN sys.sysprocesses AS s ON s.spid = A.session_id OUTER APPLY::fn_get_sql(sql_handle);
清单2
这可能很有趣,但首先我们要找出每个数据库的“通常”活动会话数,以便我们可以判断活动会话数是否因任何原因或突然降至零而跳跃(永远不是一个好兆头)。然后,我们可以使用上述查询进一步调查。
跟踪最近活动的会话数
SQL Monitor的内置用户连接度量标准随时为我们提供了连接总数的实例级数据。连接和会话之间通常但不总是1:1的关系。在数据库级别,内置的Active Transactions度量标准仅为我们提供当前正在运行的事务;它将错过读取,可能包括许多系统事务。此外,它只是一个时间点测量。
我们想要的是一个数据库级度量标准,告诉我们有多少会话在最近一段时间内主动阅读或写入。清单3显示了一个查询,它告诉我们在过去的十分钟内在连接的数据库上完成读取或写入的会话数。
SELECT Count(*) AS Active_Sessions FROM sys.dm_exec_connections AS A INNER JOIN sys.dm_exec_sessions AS B ON A.session_id = B.session_id WHERE database_id = Db_Id() AND A.session_id <> @@Spid AND ( DateDiff(MINUTE, last_read, GetDate()) < 10 OR DateDiff(MINUTE, last_write, GetDate()) < 10 );
清单3
当然,相当简单;根据您自己对“主动”的定义,很容易对其进行调整。为了被认为是“最近的”,读或写应该有多近?你只对写作感兴趣吗?它还具有从结果中消除您自己的会话(SPID)的必要调整。您不想衡量自己的监控活动!
我们现在有一个返回整数的数据库,因此很容易使用它来为SQL Monitor创建自定义指标。
安装自定义指标
如果您在SQL Monitor中,则打开“配置”窗口,然后单击“自定义度量标准”,然后单击“创建自定义度量标准”按钮。现在,我们可以填写“当前活动会话”度量标准的所有详细信息,以跟踪在过去10分钟内执行读取或写入的会话数。我每五分钟收集一次,因为在资源方面,查询非常简单。
一旦您跟踪了指标一段时间,并了解数据库的基线,您可能还希望为任何可疑的高级别活动创建关联的警报,或相反地为任何零活动期间创建关联的警报。
最终屏幕仅确认所有设置。单击“确定”,将创建度量标准和警报并开始跟踪数据。
以下是自定义指标的Analysis图,用于监控服务器上的数据库。
知道您的数据库中有多少用户和会话,这些用户的身份以及他们一直在做什么,这总是让人放心。最近活动会话的数量是指标的一个很好的示例,该指标需要基线来告诉您测量是合理的还是问题的迹象。它也是一个度量标准,很少显示需要经常进行人工检查的问题,因此是SQL Monitor的理想选择。
这就是这篇教程的内容了,感兴趣的朋友可以下载SQL Monitor的试用版哦~
彩票走势图相关的文章:
专用SQL监控工具SQL Monitor监视服务器和数据库,具有三个突出优点
使用SQL Server监控工具SQL Monitor,监视Azure SQL数据库的性能问题(上)
使用SQL Server监控工具SQL Monitor,监视Azure SQL数据库的性能问题(下)
监控工具SQL Monitor的两个新功能,PowerShell Alert API和服务器权限概述
想要购买SQL Monitor正版授权,或了解更多产品信息请点击
扫描关注慧聚IT微信公众号,及时获取最新动态及最新资讯
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn
本文探讨 SQL Server 中 NULL 和空值之间的区别,并讨论如何有效地处理它们。
Unity 是一款功能极其丰富的游戏引擎,允许开发人员将各种媒体集成到他们的项目中。但是,它缺少最令人兴奋的功能之一 - 将 Web 内容(例如 HTML、CSS 和 JavaScript)直接渲染到 3D 场景中的纹理上的能力。在本文中,我们将介绍如何使用 DotNetBrowser 在 Unity3D 中将 Web 内容渲染为纹理。
DevExpress v24.2帮助文档正式发布上线了,请按版本按需下载~
本教程将向您展示如何用MyEclipse构建一个Web项目,欢迎下载最新版IDE体验!
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@cahobeh.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢