sys.dm_column_store_object_pool (Transact-SQL)

适用于:SQL Server 2016 (13.x) 及更高版本 Azure SQL 数据库 Azure SQL 托管实例

返回列存储索引对象的不同类型的对象内存池使用情况的计数。

列名称 数据类型 描述
database_id int 数据库 ID。 这在 SQL Server 数据库或 Azure SQL 数据库服务器的实例中是唯一的。
object_id int 对象的 ID。 该对象是object_types之一。
index_id int columnstore 索引的 ID。
partition_number bigint 索引或堆中从 1 开始的分区号。 每个表或视图至少有一个分区。
column_id int 列存储列的 ID。 对于DELETE_BITMAP,这是 NULL。
row_group_id int 行组的 ID。
object_type smallint 1 = COLUMN_SEGMENT

2 = COLUMN_SEGMENT_PRIMARY_DICTIONARY

3 = COLUMN_SEGMENT_SECONDARY_DICTIONARY

4 = COLUMN_SEGMENT_BULKINSERT_DICTIONARY

5 = COLUMN_SEGMENT_DELETE_BITMAP
object_type_desc nvarchar(60) COLUMN_SEGMENT - 列段。 object_id 是段 ID。 段将一列的所有值存储在一个行组中。 例如,如果表有 10 列,则每个行组有 10 列段。

COLUMN_SEGMENT_PRIMARY_DICTIONARY - 包含表中所有列段的查找信息的全局字典。

COLUMN_SEGMENT_SECONDARY_DICTIONARY - 与一列关联的本地字典。

COLUMN_SEGMENT_BULKINSERT_DICTIONARY - 全局字典的另一种表示形式。 这提供了对值dictionary_id的反向查找。 用于在元组移动器或大容量加载过程中创建压缩段。

COLUMN_SEGMENT_DELETE_BITMAP - 跟踪段删除的位图。 每个分区有一个删除位图。
access_count int 对此对象的读取或写入访问数。
memory_used_in_bytes bigint 对象池中此对象使用的内存。
object_load_time datetime 将object_id引入对象池的时钟时间。

权限

对于 SQL Server 和 SQL 托管实例,需要 VIEW SERVER STATE 权限。

在 SQL 数据库“基本”、“S0”和“S1”服务目标中,对于“弹性池”中的数据库,服务器管理员帐户、Microsoft Entra 管理员帐户或 ##MS_ServerStateReader## 服务器角色中的成员身份为必填项。 对于所有其他 SQL 数据库服务目标,需要数据库的 VIEW DATABASE STATE 权限或 ##MS_ServerStateReader## 服务器角色中的成员身份。

SQL Server 2022 及更高版本的权限

需要对数据库拥有 VIEW DATABASE PERFORMANCE STATE 权限。

另请参阅

索引相关的动态管理视图和函数 (Transact-SQL)
sys.dm_db_index_physical_stats (Transact-SQL)
sys.dm_db_index_operational_stats (Transact-SQL)
sys.indexes (Transact-SQL)
sys.objects (Transact-SQL)
监视和优化性能
列存储索引:概述