动态管理视图 (DMV)

适用于: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

Analysis Services 动态管理视图 (DMV) 是一些查询,可以返回有关模型对象、服务器操作和服务器运行状况的信息。 基于 SQL 的查询是 架构行集的接口。 架构行集是预先指定的表,其中包含有关 Analysis Services 对象和服务器状态的信息,包括数据库架构、活动会话、连接、命令和正在服务器上执行的作业。

对于Power BI Premium语义模型,用于通过 XMLA 终结点进行查询的 DMV 仅限于需要数据库管理员权限的 DMV。 不支持某些 DMV,因为它们需要 Analysis Services 服务器管理员权限。

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

大多数 DMV 查询将 SELECT 语句和 $System 架构与 XML/A 架构行集结合使用,例如:

SELECT * FROM $System.<schemaRowset>  

DMV 查询在运行查询时返回有关服务器和对象状态的信息。 若要实时监视操作,请改用跟踪。 若要详细了解如何使用跟踪进行实时监视,请参阅使用 SQL Server Profiler 监视 Analysis Services

查询语法

用于 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 函数。 以下示例返回约 1103 兼容级别表格模型的 CSDL 元数据。 请注意 CATALOG_NAME 区分大小写:

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

示例和方案

DMV 查询可帮助您回答与活动会话和连接有关的问题,以及在特定时间点哪些对象最占用 CPU 或内存。 例如:

Select * from $System.discover_object_activity
此查询报告自上次启动服务以来的对象活动。

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

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

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

工具和权限

可以使用支持 MDX 或 DMX 查询的任何客户端应用程序。 在大多数情况下,最好使用 SQL Server Management Studio。 必须对该实例具有服务器管理员权限才能查询 DMV。

从 SQL Server Management Studio 运行 DMV 查询

  1. 连接到要查询的服务器和模型对象。
  2. 右键单击服务器或数据库对象 >“新建查询>MDX”。
  3. 键入查询,然后单击“ 执行”,或按 F5。

架构行集合

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

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

如果 DMV 不可用于给定行集,服务器将返回错误: The <schemarowset> request type was not recognized by the server. 所有其他错误都指示语法有问题。

架构行集在两个SQL Server Analysis Services协议中描述:

[MS-SSAS-T]:SQL Server Analysis Services表格协议 - 描述 1200 及更高兼容级别的表格模型的架构行集。

[MS-SSAS]:SQL Server Analysis Services协议 - 描述 1100 和 1103 兼容级别的多维模型和表格模型的架构行集。

[MS-SSAS-T]:SQL Server Analysis Services表格协议中所述的行集

注意:此列表可能不完整。 有关最新协议,请参阅 [MS-SSAS-T] 和 [MS-SSAS] 协议。

行集 说明
TMSCHEMA_ANNOTATIONS 提供有关模型中的 Annotation 对象的信息。
TMSCHEMA_ATTRIBUTE_HIERARCHIES 提供有关列的 AttributeHierarchy 对象的信息。
TMSCHEMA_CALCULATION_ITEMS 提供有关表格模型中 CalculationItem 对象的信息。
TMSCHEMA_CALCULATION_GROUPS 提供有关表格模型中 CalculationGroup 对象的信息。
TMSCHEMA_COLUMNS 提供有关每个表中的 Column 对象的信息。
TMSCHEMA_COLUMN_PERMISSIONS 提供有关每个表权限中的 ColumnPermission 对象的信息。
TMSCHEMA_CULTURES 提供有关模型中的 Culture 对象的信息。
TMSCHEMA_DATA_SOURCES 提供有关模型中的 DataSource 对象的信息。
TMSCHEMA_DETAIL_ROWS_DEFINITIONS 提供有关模型中的 DetailRowsDefinition 对象的信息。
TMSCHEMA_EXPRESSIONS 提供有关模型中的 Expression 对象的信息。
TMSCHEMA_FORMAT_STRING_DEFINITIONS 提供有关表格模型中的 FormatStringDefinition 对象的信息。
TMSCHEMA_EXTENDED_PROPERTIES 提供有关模型中的 ExtendedProperty 对象的信息。
TMSCHEMA_HIERARCHIES 提供有关每个表中的 Hierarchy 对象的信息。
TMSCHEMA_KPIS 提供有关模型中 KPI 对象的信息。
TMSCHEMA_LEVELS 提供有关每个层次结构中的 Level 对象的信息。
TMSCHEMA_LINGUISTIC_METADATA 提供有关特定区域性的模型中对象的同义词的信息
TMSCHEMA_MEASURES 提供有关每个表中的 Measure 对象的信息。
TMSCHEMA_MODEL 指定数据库中的 Model 对象。
TMSCHEMA_OBJECT_TRANSLATIONS 提供有关区域性不同对象的转换的信息。
TMSCHEMA_PARTITIONS 提供有关每个表中的 Partition 对象的信息。
TMSCHEMA_PERSPECTIVE_COLUMNS 提供有关每个 PerspectiveTable 对象中的 PerspectiveColumn 对象的信息。
TMSCHEMA_PERSPECTIVE_HIERARCHIES 提供有关每个 PerspectiveTable 对象中的 PerspectiveHierarchy 对象的信息。
TMSCHEMA_PERSPECTIVE_MEASURES 提供有关每个 PerspectiveTable 对象中的 PerspectiveMeasure 对象的信息。
TMSCHEMA_PERSPECTIVE_TABLES 提供有关透视中的 Table 对象的信息。
TMSCHEMA_PERSPECTIVES 提供有关模型中的 Perspective 对象的信息。
TMSCHEMA_QUERY_GROUPS 提供有关表格模型中的 QueryGroup 对象的信息。
TMSCHEMA_RELATIONSHIPS 提供有关模型中的 Relationship 对象的信息。
TMSCHEMA_ROLE_MEMBERSHIPS 提供有关每个角色中的 RoleMembership 对象的信息。
TMSCHEMA_ROLES 提供有关模型中 Role 对象的信息。
TMSCHEMA_TABLE_PERMISSIONS 提供有关每个角色中的 TablePermission 对象的信息。
TMSCHEMA_TABLES 提供有关模型中的 Table 对象的信息。
TMSCHEMA_VARIATIONS 提供有关每个列中的 Variation 对象的信息。

[MS-SSAS]:SQL Server Analysis Services 协议中所述的行集

行集 说明
DBSCHEMA_CATALOGS 描述可在服务器上访问的目录。
DBSCHEMA_COLUMNS 为每个度量值、每个多维数据集维度属性和每个架构行集列返回一行,以列的形式公开。
DBSCHEMA_PROVIDER_TYPES 标识服务器支持的 (基) 数据类型。
DBSCHEMA_TABLES 返回公开为表的维度、度量值组或架构行集。
DISCOVER_CALC_DEPENDENCY 返回有关在表格数据库中或针对表格数据库执行的 DAX 查询中指定的对象的计算依赖关系的信息。

注意: DISCOVER_CALC_DEPENDENCY行集可用于分析依赖项,并使用 XMLA 终结点从 Power BI 中托管的语义模型中提取 DAX 表达式。 但是,DISCOVER_CALC_DEPENDENCY行集不包括启用了增强元数据的语义模型的 M 依赖项,例如合并或追加的 M 查询和 M 参数。
DISCOVER_COMMAND_OBJECTS 提供引用的命令使用的对象的资源使用情况和活动信息。
DISCOVER_COMMANDS 提供有关服务器上打开的连接中当前正在执行或上次执行的命令的资源使用情况和活动信息。
DISCOVER_CONNECTIONS 提供服务器上当前打开的连接的资源使用情况和活动信息。
DISCOVER_CSDL_METADATA 返回有关内存中数据库的数据库元数据的信息。
DISCOVER_DATASOURCES 返回服务器上可用的数据源的列表。
DISCOVER_DB_CONNECTIONS 提供当前打开的服务器到数据库连接的资源使用情况和活动信息。
DISCOVER_DB_MEM_STATS 提供有关服务器上处于活动状态的内存跟踪器的粗粒度信息。 数据在数据库和系统级别聚合。
DISCOVER_DIMENSION_STAT 返回指定维度的统计信息。
DISCOVER_ENUMERATORS 返回枚举器的名称、数据类型和枚举值的列表,这些枚举器受特定数据源的 XMLA 访问接口支持。
DISCOVER_INSTANCES 介绍服务器上的实例。
DISCOVER_JOBS 提供有关在服务器上执行的活动作业的信息。 作业是命令的一部分,代表命令执行特定任务。
DISCOVER_KEYWORDS (XMLA) 返回有关 XMLA 服务器保留的关键字的信息。
DISCOVER_LITERALS 返回有关服务器支持的文本的信息。
DISCOVER_LOCATIONS 返回有关备份文件的内容的信息。
DISCOVER_LOCKS 提供有关服务器上的当前持续锁定的信息。
DISCOVER_MASTER_KEY 返回服务器的主加密密钥。
DISCOVER_MEM_STATS 提供有关服务器上处于活动状态的所有内存跟踪器的精细信息。
DISCOVER_MEMORYGRANT 返回由当前正在服务器上运行的作业占用的内部内存配额授予的列表。
DISCOVER_MEMORYUSAGE 返回由服务器分配的各种对象的 DISCOVER_MEMORYUSAGE 统计信息。
DISCOVER_OBJECT_ACTIVITY 提供在启动服务后每个对象的资源使用情况。
DISCOVER_OBJECT_MEMORY_USAGE 返回由服务器分配的各种对象的 DISCOVER_MEMORYUSAGE 统计信息。
DISCOVER_PARTITION_DIMENSION_STAT 返回与分区关联的维度的统计信息。
DISCOVER_PARTITION_STAT 返回特定分区中的聚合的统计信息。
DISCOVER_PERFORMANCE_COUNTERS 返回一个或多个指定的性能计数器的值。
DISCOVER_PROPERTIES 返回有关服务器支持的指定数据源的属性的信息和值的列表。
DISCOVER_RING_BUFFERS 返回有关服务器上当前 XEvent 环形缓冲区的信息。
DISCOVER_SCHEMA_ROWSETS 返回所有 Discover 请求的名称、限制、说明和其他信息。
DISCOVER_SESSIONS 提供在服务器上当前打开的会话的资源使用情况和活动信息。
DISCOVER_STORAGE_TABLE_COLUMN_SEGMENTS 返回有关用于存储内存中表数据的列段的信息。
DISCOVER_STORAGE_TABLE_COLUMNS 包含有关用于表示内存中表列的列的信息。
DISCOVER_STORAGE_TABLES 返回有关服务器可用的内存中表的统计信息。
DISCOVER_TRACE_COLUMNS
DISCOVER_TRACE_DEFINITION_PROVIDERINFO 包含DISCOVER_TRACE_COLUMNS架构行集。
DISCOVER_TRACE_EVENT_CATEGORIES 包含DISCOVER_TRACE_EVENT_CATEGORIES架构行集。
DISCOVER_TRACES 包含DISCOVER_TRACES架构行集。
DISCOVER_TRANSACTIONS 返回系统上当前挂起的一组事务。
DISCOVER_XEVENT_TRACE_DEFINITION 提供有关服务器上当前处于活动状态的 XEvent 跟踪的信息。
DISCOVER_XEVENT_PACKAGES 提供有关服务器上描述的 XEvent 包的信息。
DISCOVER_XEVENT_OBJECTS 提供有关服务器上描述的 XEvent 对象的信息。
DISCOVER_XEVENT_OBJECT_COLUMNS 提供有关服务器上描述的 XEvent 对象的架构的信息。
DISCOVER_XEVENT_SESSIONS 提供有关服务器上当前 XEvent 会话的信息。
DISCOVER_XEVENT_SESSION_TARGETS 提供有关服务器上当前 XEvent 会话目标的信息。
DISCOVER_XML_METADATA 返回包含一行和一列的行集。
DMSCHEMA_MINING_COLUMNS 描述在服务器上部署的所有所述数据挖掘模型的各个列。
DMSCHEMA_MINING_FUNCTIONS 介绍运行 Analysis Services 的服务器上可用的数据挖掘算法支持的数据挖掘函数。
DMSCHEMA_MINING_MODEL_CONTENT 使客户端应用程序能够浏览已训练的数据挖掘模型的内容。
DMSCHEMA_MINING_MODEL_CONTENT_PMML 返回挖掘模型的 XML 结构。 XML 字符串的格式遵循 PMML 2.1 标准。
DMSCHEMA_MINING_MODEL_XML 返回挖掘模型的 XML 结构。 XML 字符串的格式遵循 PMML 2.1 标准。
DMSCHEMA_MINING_MODELS 枚举在服务器上部署的数据挖掘模型。
DMSCHEMA_MINING_SERVICE_PARAMETERS 提供一个参数列表,这些参数可用于配置安装在服务器上的每个数据挖掘算法的行为。
DMSCHEMA_MINING_SERVICES 提供有关服务器支持的每个数据挖掘算法的信息。
DMSCHEMA_MINING_STRUCTURE_COLUMNS 描述在服务器上部署的所有挖掘结构的各个列。
DMSCHEMA_MINING_STRUCTURES 枚举有关当前目录中的挖掘结构的信息。
MDSCHEMA_ACTIONS 描述可用于客户端应用程序的操作。
MDSCHEMA_CUBES 介绍数据库中的多维数据集的结构。 透视也在此架构中返回。
MDSCHEMA_DIMENSIONS 描述数据库中的维度。
MDSCHEMA_FUNCTIONS 返回有关当前可用于 DAX 和 MDX 语言的函数的信息。
MDSCHEMA_HIERARCHIES 介绍特定维度中的每个层次结构。
MDSCHEMA_INPUT_DATASOURCES 描述数据库中描述的数据源对象。
MDSCHEMA_KPIS 描述数据库中的 KPI。
MDSCHEMA_LEVELS 介绍特定层次结构中的每个级别。
MDSCHEMA_MEASUREGROUP_DIMENSIONS 枚举度量值组的维度。
MDSCHEMA_MEASUREGROUPS 介绍数据库中的度量值组。
MDSCHEMA_MEASURES 描述每个度量值。
MDSCHEMA_MEMBERS 介绍数据库中的成员。
MDSCHEMA_PROPERTIES 描述成员和单元属性的属性。
MDSCHEMA_SETS 描述数据库中当前描述的任何集,包括会话范围的集。

注意

STORAGES DMV 没有协议中描述的架构行集。