Analysis Services 动态管理视图(DMV)是公开有关本地服务器作和服务器运行状况信息的查询结构。 查询结构是架构行集的接口,用于返回有关 Analysis Services 实例的元数据和监视信息。
对于大多数 DMV 查询,请使用 SELECT 带有 XML/A 架构行集的语句和 $System 架构。
SELECT * FROM $System.<schemaRowset>
DMV 查询返回有关运行查询时当前服务器状态的信息。 若要实时监视作,请改用跟踪。 如需更多信息,请参阅 使用 SQL Server Profiler 监视 Analysis Services。
本主题包含下列部分:
使用 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 函数