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)
监视和优化性能
列存储索引:概述