我注意到我有一个不断重置范围配置的数据库,即 maxdop。
是否有任何日志显示谁或什么进程导致这些配置更改?我使用的是 Microsoft SQL Server 2016 (SP1-CU7-GDR) (KB4057119) - 13.0.4466.4
我有一个 Microsoft SQL Server 2008r2 SP1。
我需要知道哪些用户连接到数据库和断开连接。
理想情况下,我想要一个(日期时间、用户名、连接/断开连接)列表。
这可以使用扩展事件来完成吗?或者,还有更好的方法?
我有一个数据库用户——比如说“x”——我想知道有多少 Windows(桌面)用户正在使用这个数据库用户(who2 或 who 只给出当前结果,我想知道整个历史) ?
实际上,当您加入任何新组织并且您不知道有多少 Windows 或桌面用户在使用特定数据库用户时,就会出现这个问题。有没有办法知道这一点?您如何跟踪使用此 (x) 用户凭据的所有 Windows 用户?
我试图找到导致数据库的 mdf 从 20 GB 膨胀到 100 GB 的原因。
到目前为止,我尝试检查自动增长事件以找到时间,但使用标准报告甚至默认跟踪文件都找不到。
我们没有 3rd 方监控工具来确认是否有任何维护工作(如重建)或任何其他过程。
我怎样才能找到导致这个 mdf 增长的原因?
我有一个数据库,其中大多数表对于一个特定安全组中的用户都是可读的。
我知道大多数用户来自我的团队,但最近我发现越来越多的人使用它,并且大部分执行都来自 Excel 和/或 Access。
出于好奇,有什么方法可以让我跟踪谁访问了 SQL 服务器以及他们正在运行什么查询?
我有一个乱序的列(通常,不是在 select 语句方面),我只是不知道它是如何变成那样的。
我一直在研究这个很长一段时间,结果是空的。我也无法在测试中重现它。
我已经通知开发人员,他们不允许运行未明确命名列的查询,正是出于这个原因。
然而,与此同时,我不知道我们是如何走到这种地步的,这让我很抓狂。
我遇到过 SQL Server 的奇怪状态。在一个特定的数据库中,此 SQL Serverselect OBJECT_ID(N'X')需要“永远”。如何诊断发生了什么?
编辑:问题消失了。不过,我还是很好奇到底发生了什么。
我正在浏览我们的一个数据库以回答老板的问题,我偷看了一个存储过程。像往常一样,我在 SSMS 中右键单击它,单击 Script stored procedure as... 然后创建,令我惊讶的是,我发现的只是 CREATE PROCEDURE 语句:

为了仔细检查,我让其他人看,他们得到了同样的东西。他们以数据库所有者身份登录,我以系统管理员身份登录。我接下来跑了
select
m.definition
from sys.procedures p
left join sys.sql_modules m on p.object_id=m.object_id
where p.name in ('spPUpdateContactUserLockout', 'spPLINK_SYNC_CONTACT');
Run Code Online (Sandbox Code Playgroud)
我以前没见过这个。曾经。我不认为没有定义主体就可以创建存储过程,并且在此实例上的多个数据库中有几个这样的过程。在这一点上我很担心,但我不确定我是否不必担心,或者我是否应该比现在更担心。
此实例是 SQL Server 2017 Standard x64 RTM-CU11,我使用的是 SSMS 17.9。任何见解表示赞赏!