我是SQL Server Management Studio的新手,我想知道:有没有办法查看哪些查询已针对数据库运行?
在活动监视器中,有一个"最近昂贵的查询"报告,但我猜这不是所有的查询,因为我没有看到我运行的那些.
我正在运行SQL Server Express 2008 v 10.0.1600.22.
在SQL Server中回滚事务后有哪些可用选项?
我想在有人删除10,000行错误之前制定一个计划.
我想找到在我的sql服务器中运行的脚本的执行时间和执行计数。
例如,我在每个执行的脚本上添加了 / * searchThisString * / 。然后我使用下面的代码来找出它们。
SELECT dest.text, deqs.last_execution_time, deqs.execution_count
FROM sys.dm_exec_query_stats AS deqs
CROSS APPLY sys.dm_exec_sql_text(deqs.sql_handle) AS dest
WHERE deqs.last_execution_time > '<time>'
AND dest.text LIKE '%<searchThisString>%';
Run Code Online (Sandbox Code Playgroud)
然而,有一种情况该代码失败了。如果脚本仅包含“更新”查询,则上面的代码无法找到它:
例如,
example_script.sql
/*searchThisString*/
update <table> set colA = 'A' where colB = 'B'
Run Code Online (Sandbox Code Playgroud)
那么上面的代码就无法找到这个执行的脚本了。
更新: 我刚刚发现 sys.dm_exec_cached_plans 实际上可以找到所有已执行的脚本。但是,它没有执行脚本的last_execution_time和execution_count信息。
我尝试使用以下代码将其与 sys.dm_exec_query_stats 结合起来(但它也不起作用)。我认为因为 sys.dm_exec_query_stats 没有此执行的查询,所以当我将它们连接起来时,它会为 last_execution_time 返回“null”,并为execution_count 返回“null”。
SELECT dest.text, deqs.last_execution_time, deqs.execution_count
FROM sys.dm_exec_cached_plans AS decp
CROSS APPLY sys.dm_exec_sql_text(decp.plan_handle) AS dest
LEFT JOIN sys.dm_exec_query_stats As deqs
ON decp.plan_handle = deqs.plan_handle
WHERE deqs.last_execution_time …Run Code Online (Sandbox Code Playgroud) SQL Server 2012中是否有任何方法可以识别谁更改了数据库名称?是否有任何审计日志或某些有用的东西?
如何查找表中插入的行数以及最近更新的行数?今天我们有一个数据仓库存储过程,它更新了一个表。我不关心哪些行,只关心每个事务的计数(插入/和更新)。我们的数据库没有 CDC/或 CT。有没有办法查询 Sys DMV 或日志?我正在继承遗留代码,因此将来会添加手动日志记录,只是好奇 SQL Server 是否在任何地方都有此自动日志记录。
我之前已经更改了一个表,添加了一个列并修改了一个存储过程.
我不记得究竟哪个表和哪个存储过程,是否有一些登录sql管理工作室有关在特定数据库中进行了哪些更改?
我已经尝试了这里描述的内容如何在SQL Server Management Studio中查看查询历史记录,但我没有找到对数据库所做的更改