标签: dmv

CROSS APPLY中的语法错误

我正在尝试运行一个简单的查询来查找具有最高平均CPU时间的查询.该代码是从字面上复制粘贴在这里:

SELECT TOP 5 total_worker_time/execution_count AS [Avg CPU Time],
    SUBSTRING(st.text, (qs.statement_start_offset/2)+1, 
        ((CASE qs.statement_end_offset
          WHEN -1 THEN DATALENGTH(st.text)
         ELSE qs.statement_end_offset
         END - qs.statement_start_offset)/2) + 1) AS statement_text
FROM sys.dm_exec_query_stats AS qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) AS st
ORDER BY total_worker_time/execution_count DESC;
Run Code Online (Sandbox Code Playgroud)

问题是,SQL Server抱怨第8行的语法错误,参数为sys.dm_exec_sql_text:qs.sql_handle无效读取

Incorrect syntax near '.'.
Run Code Online (Sandbox Code Playgroud)

对于我的生活,我不能弄清楚查询有什么问题.有任何想法吗?

t-sql sql-server dmv

12
推荐指数
1
解决办法
8310
查看次数

Sql Server - 如何重新启动服务器(DMV重置日期/时间)

我正在对Glenn Berry的优秀DMV查询进行一些修改!

但是,我想在结果集中添加"最后一次服务器重启",或者更具体地说,重置(所有,特定)DMV的统计信息的日期/时间.

因为在查看统计数据时知道上次重置非常重要,所以我想确保日期/时间准确并显示出来.

问题:如何获得重置/全部DMV统计数据的最准确日期/时间?

谢谢!-D

sql-server sql-server-2005 sql-server-2008 dmv

8
推荐指数
2
解决办法
1万
查看次数

用于UDF性能统计的MS SQL DMV - 如何查找前10个最差的UDF

我听说在Microsoft SQL Server中有多种方法可以找到"最差"的存储过程:执行次数,CPU工作时间,队列等待时间等.

我正在寻找一种方法来找到最差(最慢/最常用)的UDF - 是否有DMV查询?

例如,来自将使您成为超级英雄的五个DMV查询的此查询按总工作时间返回前25个缓存的SP,这实际上意味着CPU压力的最昂贵的存储过程.

我如何为UDF写这样的东西?

SELECT TOP(25) p.name AS [SP Name], qs.total_worker_time AS [TotalWorkerTime], 
qs.total_worker_time/qs.execution_count AS [AvgWorkerTime], qs.execution_count, 
ISNULL(qs.execution_count/DATEDIFF(Second, qs.cached_time, GETDATE()), 0) AS [Calls/Second],
qs.total_elapsed_time, qs.total_elapsed_time/qs.execution_count 
AS [avg_elapsed_time], qs.cached_time
FROM sys.procedures AS p
INNER JOIN sys.dm_exec_procedure_stats AS qs
ON p.[object_id] = qs.[object_id]
WHERE qs.database_id = DB_ID()
ORDER BY qs.total_worker_time DESC OPTION (RECOMPILE);
Run Code Online (Sandbox Code Playgroud)

sql-server performance user-defined-functions dmv

5
推荐指数
1
解决办法
1541
查看次数

什么是SQL Server的Sys.dm_exec_requests DMV中的读取和写入

根据MSDN链接http://msdn.microsoft.com/en-us/library/ms177648.aspx上给出的解释, 我无法完全理解读取和写入的含义.无论是物理还是逻辑或数据库读取和写.请在这方面帮助我

sql-server dmv

5
推荐指数
1
解决办法
3962
查看次数

从 Analysis Services 获取实例名称,例如 @@ServerName

有没有办法从 Analysis Services 实例获取当前服务器名称?SELECT @@SERVERNAME基本上与 SSAS 相同 。

我已经调查过 SELECT * FROM $system.DISCOVER_INSTANCES ,但返回一个错误:

“INSTANCE_NAME”限制是必需的,但请求中缺少该限制。考虑使用 SYSTEMRESTRICTSCHEMA 来提供限制。

当尝试使用时,SYSTEMRESTRICTSCHEMA我遇到了同样的错误。当尝试使用时,INSTANCE_NAME我遇到了同样的错误。当尝试使用SYSTEMRESTRICTSCHEMA和 指定时INSTANCE_NAME,我收到相同的错误。

任何帮助或见解表示赞赏!

sql sql-server ssas dmv sql-server-2012

5
推荐指数
1
解决办法
4252
查看次数

DMF sys.dm_exec_sql_text未显示DBID

我有这个查询

http://technet.microsoft.com/en-us/library/ms181929.aspx

SELECT s2.dbid, 
    s1.sql_handle,  
    (SELECT TOP 1 SUBSTRING(s2.text,statement_start_offset / 2+1 , 
      ( (CASE WHEN statement_end_offset = -1 
         THEN (LEN(CONVERT(nvarchar(max),s2.text)) * 2) 
         ELSE statement_end_offset END)  - statement_start_offset) / 2+1))  AS sql_statement,
    execution_count, 
    plan_generation_num, 
    last_execution_time,   
    total_worker_time, 
    last_worker_time, 
    min_worker_time, 
    max_worker_time,
    total_physical_reads, 
    last_physical_reads, 
    min_physical_reads,  
    max_physical_reads,  
    total_logical_writes, 
    last_logical_writes, 
    min_logical_writes, 
    max_logical_writes  
FROM sys.dm_exec_query_stats AS s1 
CROSS APPLY sys.dm_exec_sql_text(sql_handle) AS s2  
WHERE s2.objectid is null 
ORDER BY s1.sql_handle, s1.statement_start_offset, s1.statement_end_offset;
Run Code Online (Sandbox Code Playgroud)

当我执行它时,dbid字段返回null. 在此输入图像描述 为什么这样做?我想限制来自一个数据库的查询,但它似乎无法正常工作.

非常感谢你的回答.

t-sql sql-server performance dmv sql-server-2012

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

sys.dm_db_missing_index_details不返回任何行

我试图查看sys.dm_db_missing_index_details来检查我的SQL Server 2005数据库上是否缺少索引.它没有返回任何行.

它可能是空的但很不可能,因为我没有在任何表上添加任何索引(除了通过创建主键获得的索引).我也在运行单元测试以及adhoc开发测试(使用Linq to SQL),因此存在一些针对它的活动.

我是否需要打开此数据的捕获?

这仅在某些版本的SQL Server 2005上受支持吗?

提前感谢任何帮助的努力.

sql-server sql-server-2005 sql-server-2008 dmv

3
推荐指数
1
解决办法
2038
查看次数

SQL Server 2008 R2 DMV - sys.dm_sql_referencing_entities - 查询用法

我正在尝试使用 DMV 获取表列表的所有依赖项sys.dm_sql_referencing_entities

这个查询给了我所有表的列表:

SELECT TableName from FinalTableList;  
Run Code Online (Sandbox Code Playgroud)

此查询给出 TableA 的依赖关系:

SELECT  referencing_entity_name
FROM sys.dm_sql_referencing_entities ('dbo.TableA', 'OBJECT') ;  
Run Code Online (Sandbox Code Playgroud)

我想将上述 2 项合并到一个查询或过程中,以便我可以获得以下格式的所有依赖项:

TableA  Dependency1
        Dependency2
        Dependency3
TableB  Dependency1
        Dependency2
...................
Run Code Online (Sandbox Code Playgroud)

应该如何构建查询?

sql dependencies sql-server-2008-r2 dmv

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

MDX 中用于动态管理视图的 WHERE 子句

我正在尝试使用 DMV 从表格多维数据集中查询元数据。我能够在没有 where 子句的情况下让它工作,但我似乎无法让 where 子句起作用。有什么建议吗?

这是有效的代码:

SELECT 
    [MEASURE_CAPTION]           AS [Measure]
    ,[MEASURE_IS_VISIBLE]       AS [Visable]
    ,[DESCRIPTION]              AS [Description]
    ,[MEASURE_DISPLAY_FOLDER]   AS [Display Folder]
    ,[EXPRESSION]               AS [Calculation]
FROM $SYSTEM.MDSCHEMA_MEASURES
Run Code Online (Sandbox Code Playgroud)

我尝试过的 WHERE 子句是:

WHERE ([MEASURE_IS_VISIBLE].[members].[true])
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

The dot expression is not allowed in the context at line 9, column 1.
Run Code Online (Sandbox Code Playgroud)

还:

WHERE [MEASURE_IS_VISIBLE] = TRUE
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

Error: A Boolean expression is not allowed in the context at line 9, column 7.
Run Code Online (Sandbox Code Playgroud)

我在这些主题上尝试了很多验证,但总是得到相同的结果。我完全不熟悉 MDX 的工作原理,因此我们将不胜感激。

sql-server mdx dmv ssas-tabular

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