问题标签 [dynamic-management-views]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql-server - SQL 2008 中的 DMV 替换 dm_os_exec_requests
我一直在阅读一个旧的 SQL 2005 性能调整文档,它谈到了动态管理视图sys.dm_os_exec_requests
。看起来该视图在 SQL 2008 中不再可用。
有直接替代吗?是否有从另一个 DMV 或一组 DMV 中选择相同数据的标准方法?
谢谢!
sql-server - SQL Server - sys.dm_exec_requests 问题
在 SSMS 2008 中,我创建了一个新的查询窗口并发出以下语句(注意我没有提交事务):
然后我打开另一个新的查询窗口并输入以下查询:
DMV 不显示来自第一个查询窗口的查询。有谁知道为什么不?
谢谢。
sql-server - SQL Server DMV - sys.dm_db_missing_index_group_stats - 这些列是什么意思?
我正在修改创建查询以查找丢失的索引。我采用了 Red-Gate 人员在他们的 SQL Server DMV Starter Pack 电子书中创建的基本查询,并对其进行了一些修改。有几列sys.dm_db_missing_index_group_stats
我不知道如何解释。他们是:
根据文档我发现 avg_total_user_cost 被定义为表示每次执行用户查询时的平均总用户成本。并且, avg_user_impact将值表示为百分比。它显示了创建索引后可以获得的改进量。
我的查询说应该添加的索引显示 2.22 的平均用户成本和 99.82 的用户影响。这些数字的真正含义是什么?这是否意味着通过添加索引,我可以将关联查询的速度提高 99.82%。我不知道 2.22 可能意味着什么。
谢谢。
sql - 检索跨多个数据库运行存储过程的名称
我正在尝试编写一个报告当前数据库活动的查询。该查询将各种 DMV 链接在一起,例如sys.dm_exec_connections
、sys.dm_exec_sessions
、sys.dm_exec_requests
等。该查询还提取通过该sys.dm_exec_sql_text
函数运行的实际查询。
(我知道 Activity Monitor 和 SQL Profiler。我需要在查询中收集这些信息,所以这些程序在这里都不相关。)
我们系统中的大部分活动都发生在存储过程和函数中。很高兴在此查询中看到这些过程的名称。
我的问题是:
如何可靠地显示正在执行的存储过程或函数的名称?
我知道该sys.dm_exec_sql_text
函数返回一个objectid
,并且我可以将它加入objectid
到sys.objects
. 问题是,这台服务器上有多个数据库,而 sys.objects 只适用于当前数据库。我希望这个查询能够显示正在运行的对象名称,无论查询碰巧针对哪个数据库运行。
到目前为止,我唯一的解决方案是使用sp_msforeachdb
创建一个临时表,其中包含所有数据库中的所有对象 ID 和名称,并从dm_exec_sql_text
函数的结果中加入该表。
临时表方法有更好的解决方案吗?我觉得我错过了什么。
sql - 你能用动态管理视图来找出一个查询在一个时间段内被调用了多少次吗
我一直在学习有关 sql server 中动态管理视图的更多信息,因为我们在工作中遇到了一些性能问题。也许这是看待事物的错误方式,但可用的工具似乎......它们似乎不像我想要的那样灵活。
我希望能够找出以下我有示例的内容。
哪些查询的运行速度比正常情况慢 20% 以上?以下 ...
当有阻塞时,我希望能够确定正在执行阻塞的查询,也许它的依赖对象是什么。
我相信以下内容可以找到执行阻塞的查询
但我一直无法弄清楚如何实现以下...
今天特定查询运行了多少次(不是自上次计划编译时间以来)?今天一个特定的存储过程今天运行了多少次?使用某些参数调用了多少次?
也许还有其他一些你们可以想到的有用的,也许你们可以为我上面给出的提供一些建议。我无法弄清楚的另一件事是动态管理视图中的连接、请求和会话之间的关系到底是什么?
编辑
我想我是专门尝试在特定时间段内使用视图,例如在 x 时间和 y 时间之间发生的情况。但它们似乎不是为此而设计的。这个对吗?是否有另一种方法可以从 sql server 按时间段获取类似信息?
sql - 加入多个动态管理视图表
如果它们当前正在运行查询,我正在尝试获取具有登录名、状态和 SQL 查询的所有会话的列表。下面的查询工作正常,但只显示当前正在运行查询的人。
即使会话处于睡眠状态,如何将它们全部显示出来?我想我必须改变加入的类型,但我不确定是哪一种。
sql-server - 如何从 sys.dm_tran_locks 获取索引名称
我正在研究多租户解决方案。因此,我们的 SQL Server 上有很多数据库。我正在查看一个锁定问题,并且需要能够查看正在等待哪些锁。
我查询了sys.dm_tran_locks动态视图,但还想包括 resource_associated_entity_id 列引用的数据库、对象和索引名称。这链接到sys.partitions表,但该表仅返回当前数据库的行,而我正在查看的锁分布在多个数据库中。
有没有办法在不创建游标和使用动态生成的查询的情况下获取这些信息?
sql-server - dmvs 上的递归公用表表达式应该建立在缓存数据上吗?
我已经写了一点 CTE 来获取头阻塞进程的总阻塞时间,我不确定是否应该首先将我希望 CTE 运行的所有进程复制到临时表中,然后对此执行查询- 即我想确保在查询运行时数据不会在我脚下发生变化,并且(最坏的情况),我最终得到一个无限递归循环!
这是我的 SQL,包括临时表——出于性能原因,我宁愿不必使用该表,而是直接转到 CTE 中的 sysprocesses dmv,但我不确定这可能产生的影响。
sql-server - SQL Server - 使用 sys.dm_exec_requests 报告查询进度
有没有办法使用sys.dm_exec_requests
字段报告自己查询的百分比进度:percent_complete
?msdn链接
它适用于 BACKUP/RESTORE/SHRINK 操作,例如:
SELECT percent_complete FROM sys.dm_exec_requests WHERE command = 'DbccFilesCompact'
25.677
但它可以与用户查询一起使用吗?
sql-server - 获取与 connection_id 的连接
当我执行
将有一个结果列connection_id。
现在,我正在搜索与此 connection_id 对应的连接字符串。有人可以帮助我,我在哪里可以找到这些信息?