使用动态管理视图(DMV)来监控分析服务

Analysis Services 动态管理视图(DMV)是公开有关本地服务器作和服务器运行状况信息的查询结构。 查询结构是架构行集的接口,用于返回有关 Analysis Services 实例的元数据和监视信息。

对于大多数 DMV 查询,请使用 SELECT 带有 XML/A 架构行集的语句和 $System 架构。

SELECT * FROM $System.<schemaRowset>  

DMV 查询返回有关运行查询时当前服务器状态的信息。 若要实时监视作,请改用跟踪。 如需更多信息,请参阅 使用 SQL Server Profiler 监视 Analysis Services

本主题包含下列部分:

使用 DMV 查询的优点

示例和方案

查询语法

工具和权限

DMV 参考

使用 DMV 查询的优点

DMV 查询返回有关操作和资源消耗的信息,这些信息无法通过其他方式获得。

DMV 查询是运行 XML/A Discover 命令的替代方法。 对于大多数管理员来说,编写 DMV 查询更简单,因为查询语法基于 SQL。 此外,结果集以表格格式返回,更易于读取和复制。

示例和方案

DMV 查询可以帮助你回答有关活动会话和连接的问题,以及哪些对象在特定时间点消耗了最多的 CPU 或内存。 本部分提供了最常使用 DMV 查询的方案的示例。 还可以查看 SQL Server 2008 R2 Analysis Services 操作指南,以获得有关如何使用 DMV 查询来监控服务器实例的更多见解。

Select * from $System.discover_object_activity /** 此查询报告自服务上次启动以来的对象活动。 有关基于此 DMV 的示例查询,请参阅 “新建System.Discover_Object_Activity”。

Select * from $System.discover_object_memory_usage /** 此查询按对象报告内存消耗情况。

Select * from $System.discover_sessions /** 此查询报告活动会话,包括会话用户和持续时间。

Select * from $System.discover_locks /** 此查询返回在特定时间点使用的锁的快照。

查询语法

DMV 的查询引擎是数据挖掘分析器。 DMV 查询语法基于 SELECT (DMX) 语句。

尽管 DMV 查询语法基于 SQL SELECT 语句,但它不支持 SELECT 语句的完整语法。 值得注意的是,不支持 JOIN、GROUP BY、LIKE、CAST 和 CONVERT。

SELECT [DISTINCT] [TOP <n>] <select list>  
FROM $System.<schemaRowset>  
[WHERE <condition expression>]  
[ORDER BY <expression>[DESC|ASC]]  

以下 DISCOVER_CALC_DEPENDENCY 的示例说明了如何使用 WHERE 子句向查询提供参数:

SELECT * FROM $System.DISCOVER_CALC_DEPENDENCY  
WHERE OBJECT_TYPE = 'ACTIVE_RELATIONSHIP'  

或者,对于具有限制的架构行集,查询必须包含 SYSTEMRESTRICTSCHEMA 函数。 以下示例返回有关表格模式服务器上运行的表格模型的 CSDL 元数据。 请注意,CATALOG_NAME区分大小写:

Select * from SYSTEMRESTRICTSCHEMA ($System.Discover_csdl_metadata, [CATALOG_NAME] = 'Adventure Works DW')  

工具和权限

必须对 Analysis Services 实例拥有系统管理员权限才能查询 DMV。

可以使用支持 MDX 或 DMX 查询的任何客户端应用程序,包括 SQL Server Management Studio、Reporting Services 报表或 PerformancePoint 仪表板。

若要从 Management Studio 运行 DMV 查询,请连接到要查询的实例,单击“ 新建查询”。 可以从 MDX 或 DMX 查询窗口运行查询。

车辆管理局参考资料

并非所有架构行集都有 DMV 接口。 若要返回可以使用 DMV 查询的所有架构行集的列表,请运行以下查询。

SELECT * FROM $System.DBSchema_Tables   
WHERE TABLE_TYPE = 'SCHEMA'   
ORDER BY TABLE_NAME ASC  

注释

如果 DMV 不适用于给定行集,服务器将返回以下错误:“ <服务器无法识别 schemarowset> 请求类型”。 所有其他错误都指向语法问题。

数据行集 DESCRIPTION
DBSCHEMA_CATALOGS行集 返回当前连接上的 Analysis Services 数据库的列表。
DBSCHEMA_COLUMNS行集 返回当前数据库中所有列的列表。 可以使用此列表构造 DMV 查询。
DBSCHEMA_PROVIDER_TYPES行集 返回有关 OLE DB 数据访问接口支持的基数据类型的属性。
DBSCHEMA_TABLES行集 返回当前数据库中所有表的列表。 可以使用此列表构造 DMV 查询。
DISCOVER_CALC_DEPENDENCY行集 返回模型中使用的列和表的列表,这些列和表依赖于其他列和表。
DISCOVER_COMMAND_OBJECTS行集 提供有关引用的命令正在使用的对象的资源使用情况和活动信息。
DISCOVER_COMMANDS行集 提供有关当前正在执行的命令的资源使用情况和活动信息。
DISCOVER_CONNECTIONS行集 提供有关与 Analysis Services 的开放连接的资源使用情况和活动信息。
DISCOVER_CSDL_METADATA行集 返回有关表格模型的信息。

需要添加 SYSTEMRESTRICTSCHEMA 和其他附加参数。
DISCOVER_DB_CONNECTIONS行集 提供有关从 Analysis Services 到外部数据源的打开连接的资源使用情况和活动信息,例如在处理或导入期间。
DISCOVER_DIMENSION_STAT Rowset 根据模型类型返回表中的维度或列中的属性。
DISCOVER_ENUMERATORS行集 返回有关特定数据源支持的枚举器的元数据。
DISCOVER_INSTANCES行集 返回有关指定实例的信息。

需要添加 SYSTEMRESTRICTSCHEMA 和其他参数。
DISCOVER_JOBS行集 返回有关当前作业的信息。
DISCOVER_KEYWORDS行集 (XMLA) 返回保留关键字的列表。
DISCOVER_LITERALS行集 返回 XMLA 支持的文字,包括数据类型和值的列表。
DISCOVER_LOCKS行集 返回在特定时间点使用的锁的快照。
DISCOVER_MEMORYGRANT行集 返回有关 Analysis Services 在启动时分配的内存的信息。
DISCOVER_MEMORYUSAGE Rowset 显示特定对象的内存使用情况。
对象活动发现行集 记录服务上次启动以来的对象活动。
DISCOVER_OBJECT_MEMORY_USAGE行集 按对象报告内存消耗情况。
DISCOVER_PARTITION_DIMENSION_STAT行集 提供有关维度中的属性的信息。

需要添加 SYSTEMRESTRICTSCHEMA 这一参数和其他额外的参数。
DISCOVER_PARTITION_STAT行集 提供有关维度、表或度量值组中的分区的信息。

需要添加 SYSTEMRESTRICTSCHEMA 和其他参数。
DISCOVER_PERFORMANCE_COUNTERS 行集 列出性能计数器中使用的列。

需要添加 SYSTEMRESTRICTSCHEMA 和其他参数。
DISCOVER_PROPERTIES行集 返回有关指定数据源的 XMLA 支持的属性的信息。
DISCOVER_SCHEMA_ROWSETS行集 返回 XMLA 支持的所有枚举值的名称、限制、说明和其他信息。
DISCOVER_SESSIONS行集 报告活动会话,包括会话用户和持续时间。
DISCOVER_STORAGE_TABLE_COLUMN_SEGMENTS行集 提供关于在表格或 SharePoint 模式下运行的分析服务数据库所使用的存储表的列级和段级的信息。
DISCOVER_STORAGE_TABLE_COLUMNS行集 使客户端能够确定将列分配给在表格模式或 SharePoint 模式下运行的分析服务数据库使用的存储表。
DISCOVER_STORAGE_TABLES Rowset 返回有关用于在表格模型数据库中存储模型的表的信息。
DISCOVER_TRACE_COLUMNS行集 返回跟踪中可用的列的 XML 说明。
DISCOVER_TRACE_DEFINITION_PROVIDERINFO行集 返回提供程序的名称和版本信息。
DISCOVER_TRACE_EVENT_CATEGORIES结果集 返回可用类别的列表。
DISCOVER_TRACES行集 返回当前连接上正在运行的跟踪列表。
DISCOVER_TRANSACTIONS行集 返回当前连接上主动运行的事务列表。
DISCOVER_XEVENT_TRACE_DEFINITION行集 返回当前连接上正在运行的 xevent 跟踪列表。
DMSCHEMA_MINING_COLUMNS行集 列出当前连接上可用的所有挖掘模型的各个列。
DMSCHEMA_MINING_FUNCTIONS行集 返回服务器上数据挖掘算法支持的函数列表。
DMSCHEMA_MINING_MODEL_CONTENT行集 返回一个行集,其中包含描述当前模型的列。
DMSCHEMA_MINING_MODEL_CONTENT_PMML行集 返回一个行集,其中包含以 PMML 格式描述当前模型的列。
DMSCHEMA_MINING_MODEL_XML行集合 返回一个行集,其中包含以 PMML 格式描述当前模型的列。
DMSCHEMA_MINING_MODELS行集 返回当前数据库中挖掘模型的列表。
DMSCHEMA_MINING_SERVICE_PARAMETERS行集 返回服务器上算法的参数列表。
DMSCHEMA_MINING_SERVICES行集 提供服务器上可用的数据挖掘算法的列表。
DMSCHEMA_MINING_STRUCTURE_COLUMNS 数据行集 返回当前连接可用的所有挖掘模型中的所有列的列表。
DMSCHEMA_MINING_STRUCTURES数据行集 列出当前连接中可用的挖掘结构。
MDSCHEMA_CUBES行集 返回有关当前数据库中定义的多维数据集的信息。
MDSCHEMA_DIMENSIONS行集 返回有关当前数据库中定义的维度的信息。
MDSCHEMA_FUNCTIONS行集 返回连接到数据库的客户端应用程序可用的函数列表。
MDSCHEMA_HIERARCHIES行集 返回有关当前数据库中定义的层次结构的信息。
MDSCHEMA_INPUT_DATASOURCES行集 返回有关当前数据库中定义的数据源对象的信息。
MDSCHEMA_KPIS行集合 返回有关当前数据库中定义的 KPI 的信息。
MDSCHEMA_LEVELS行集 返回有关当前数据库中定义的层次结构中的级别的信息。
MDSCHEMA_MEASUREGROUP_DIMENSIONS行集 列出度量组的维度。
MDSCHEMA_MEASUREGROUPS行集 返回当前连接中的度量值组的列表。
MDSCHEMA_MEASURES行集 返回当前连接中的度量值列表。
MDSCHEMA_MEMBERS行集 返回当前连接中所有成员的列表,该列表由数据库、多维数据集和维度列出。
MDSCHEMA_PROPERTIES行集 返回每个属性的完全限定名称,以及属性类型、数据类型和其他元数据。
MDSCHEMA_SETS行集 返回当前连接中定义的集的列表。

另请参阅

SQL Server 2008 R2 Analysis Services操作指南
新建System.Discover_Object_Activity
针对受限行集和 DMV 的新 SYSTEMRESTRICTEDSCHEMA 函数