如何解决SQL Server状态监视器
| 我的应用程序同时连接到3个sql Server和5个数据库。我需要在状态栏中显示状态“ 0”。 我可以在这里使用任何想法/代码示例吗?此代码不应影响应用程序的速度或sql Server的开销。 佛陀解决方法
我认为您应该使用WMI(使用ServiceController类(带有此构造函数)。基本上,您查询sql服务器所在的服务器并检查其状态。
下面的示例假设您的应用程序是用c#编写的:
ServiceController sc = new ServiceController(\"MSSQLSERVER\",serverName);
string status = sc.Status.ToString();
, \“此代码不应影响速度
应用程序或SQL的开销
服务器\”
这是Schroedinger的“猫”方案:为了知道给定远程服务或进程的当前状态,必须将消息序列化到网络上,等待响应,反序列化响应并对其进行操作。所有这些都需要所有涉及的机器的一些工作和资源。
但是,该工作可能在调用方的后台线程中完成,并且如果不经常调用,则可能不会以任何可衡量的方式影响目标服务器。
您可以使用SMO(SQL Server管理对象)连接到远程服务器,并可以通过SQL管理工具执行几乎所有操作,因为它们也使用SMO来发挥作用。这是一个非常简单的API,在正确的地方可以非常强大。
毫不奇怪,SMO确实要求您对要监视的框具有适当的权限。如果您没有/没有足够的权限,则可能要请友好的SQL amin团队发布一个简单的数据提要,以暴露所需的某些数据。
HTH。
,连接(验证连接)或连接失败(验证无连接)时,应用程序中会有一些开销,但是可以通过不定期检查来避免等待时间。
,我们使用以下SQL查询来检查特定数据库的状态
SELECT \'myDatabase status is:\' AS Description,ISNULL((select state_desc FROM sys.databases WITH (NOLOCK) WHERE name =\'myDatabase\'),\'Not Found\') AS [DBStatus]
这应该只有很少的开销,尤其是与诸如后台线程或异步线程的最佳实践结合使用时
,完全公开,我是Cotega的创始人
如果您对执行此操作的服务感兴趣,则我们的服务允许监视SQL Server的正常运行时间和性能。此外,您可以设置有关数据库不可用,性能下降,数据库大小或用户数量出现问题等的通知。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。