小编J. *_*ini的帖子

如果 RAISERROR 与已弃用的一样好,那么您应该如何刷新 PRINT 缓冲区?

RAISERROR与已弃用一样好。文档

新的应用程序应该使用THROW而不是RAISERROR.

然而,它通常用于刷新打印缓冲区

假设我正在编写一个很长的存储过程,并且我想要定期报告它所处的步骤。如果RAISERROR这是不可能的,我应该如何PRINT摆脱它?

假设 SQL Server 版本相对较新。就说2019年吧。

sql-server t-sql raiserror

-1
推荐指数
1
解决办法
132
查看次数

来自 sp_OAMethod 的大量 PREEMPTIVE_OS_GETPROCADDRESS 等待。如何调试?

一些查询对我的 CPU 的影响非常严重。sp_WhoIsActive报告这sp_OAMethod就是原因(该sql_text列指向它)并且它具有PREEMPTIVE_OS_GETPROCADDRESS等待类型的巨大等待。鉴于这sp_OAMethod是一个内置存储过程,我该如何调试它?

我使用的是 2019 版本的 SQL Server,15.0.something。

sql-server t-sql waits ole-automation cpu

-2
推荐指数
1
解决办法
154
查看次数

我什么时候应该检查错误日志?

我的职业生涯多种多样,但我从未SQL Server 错误日志中找到相关信息。什么情况下我应该考虑检查?

sql-server t-sql errors error-log sql-server-2019

-3
推荐指数
2
解决办法
124
查看次数

为什么更喜欢扩展事件而不是 sp_WhoIsActive 和查询存储?

如果我想知道现在发生了什么,那么我会使用 Adam Machanic 的sp_whoisactive。如果我想了解我的服务器最近发生了什么,那么我将使用查询存储。

扩展事件旨在取代 Profiler,但我认为查询存储的组合sp_whoisactive已经在 2016 或更高版本的任何 SQL Server 上做到了这一点。考虑到这一点,我什么时候会使用扩展事件?

为了获得灵感,我检查了dbatools 附带的扩展事件。我没有留下深刻的印象。它们似乎只对长期监控查询存储不存储的内容有用。例如:某些登录正在执行的操作、锁定、极其特定的 IO 类型、存储过程参数的使用以及已弃用的功能的使用。这些都很好,但坦率地说,我无法想象自己必须在服务器上进行如此外科手术式的调整。有没有我遗漏的常见用法?

monitoring sql-server extended-events query-store sp-whoisactive

-4
推荐指数
1
解决办法
109
查看次数