Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir: SQL Server 2016 (13.x) ve sonraki sürümler
Azure SQL Database
Azure SQL Managed Instance
SQL database in Microsoft Fabric
Kullanıcı belleği için iyileştirilmiş tabloları depolamak için kullanılan her iç bellek için iyileştirilmiş tablo için bir satır içerir. Her kullanıcı tablosu bir veya daha fazla iç tabloya karşılık gelir. Çekirdek veri depolama için tek bir tablo kullanılır. Ek iç tablolar, bellek için iyileştirilmiş tablolar için zamansal, columnstore dizini ve satır dışı (LOB) depolama gibi özellikleri desteklemek için kullanılır.
| Sütun adı | Veri türü | Description |
|---|---|---|
| object_id | int | Kullanıcı tablosunun kimliği. Bir kullanıcı tablosunu (Hk/Columnstore birleşimleri durumunda satır dışı depolama veya silinen satırlar gibi) desteklemek için var olan iç bellek için iyileştirilmiş tablolar, üstleriyle aynı object_id sahiptir. |
| xtp_object_id | bigint | kullanıcı tablosunu desteklemek için kullanılan iç bellek için iyileştirilmiş tabloya karşılık gelen OLTP nesne kimliğini In-Memory. Veritabanında benzersizdir ve nesnenin ömrü boyunca değişebilir. |
| type | int | İç tablonun türü. 0 => DELETED_ROWS_TABLE 1 => USER_TABLE 2 => DICTIONARIES_TABLE 3 => SEGMENTS_TABLE 4 => ROW_GROUPS_INFO_TABLE 5 => İç OFF-ROW VERİ TABLOSU 252 => INTERNAL_TEMPORAL_HISTORY_TABLE |
| type_desc | nvarchar(60) | Türün açıklaması DELETED_ROWS_TABLE -> Bir columnstore dizini için silinen satırları iç tablo izleme USER_TABLE -> Satır içi kullanıcı verilerini içeren tablo DICTIONARIES_TABLE -> Columnstore dizini için sözlükler SEGMENTS_TABLE -> Columnstore dizini için sıkıştırılmış segmentler ROW_GROUPS_INFO_TABLE -> Columnstore dizininin sıkıştırılmış satır grupları hakkındaki meta veriler İÇ OFF-ROW VERİ TABLOSU -> Satır dışı bir sütunun depolanması için kullanılan iç tablo. Bu durumda, minor_id column_id yansıtır. INTERNAL_TEMPORAL_HISTORY_TABLE -> Disk tabanlı geçmiş tablosunun sık erişimli kuyruğu. Geçmişe eklenen satırlar önce bu iç bellek için iyileştirilmiş tabloya eklenir. Bu iç tablodaki satırları zaman uyumsuz olarak disk tabanlı geçmiş tablosuna taşıyan bir arka plan görevi vardır. |
| minor_id | int | 0, bir kullanıcıyı veya iç tabloyu gösterir 0 olmayan, satır dışında depolanan bir sütunun kimliğini gösterir. sys.columns dosyasında column_id ile birleşir. Satır dışında depolanan her sütunun bu sistem görünümünde karşılık gelen bir satırı vardır. |
Permissions
Katalog görünümlerindeki meta verilerin görünürlüğü, kullanıcının sahip olduğu veya kullanıcıya bazı izinlerin verildiği güvenli hale getirilebilir öğelerle sınırlıdır. Daha fazla bilgi için bkz. meta veri görünürlüğü yapılandırması .
Örnekler
A. Satır dışında depolanan tüm sütunları döndürme
Aşağıdaki T-SQL betiğinde birden çok büyük LOB olmayan sütuna ve tek bir LOB sütununa sahip bir tablo gösterilmektedir:
CREATE TABLE dbo.LargeTableSample
(
Id int IDENTITY PRIMARY KEY NONCLUSTERED,
C1 nvarchar(4000),
C2 nvarchar(4000),
C3 nvarchar(4000),
C4 nvarchar(4000),
Misc nvarchar(max)
) WITH (MEMORY_OPTIMIZED = ON);
GO
Aşağıdaki sorgu, boyutlarıyla birlikte satır dışında depolanan tüm sütunları gösterir. -1 boyutu LOB sütununu gösterir. Tüm LOB sütunları satır dışına depolanır.
SELECT
QUOTENAME(SCHEMA_NAME(o.schema_id)) + N'.' + QUOTENAME(OBJECT_NAME(moa.object_id)) AS 'table',
c.name AS 'column',
c.max_length
FROM sys.memory_optimized_tables_internal_attributes moa
JOIN sys.columns c ON moa.object_id = c.object_id AND moa.minor_id=c.column_id
JOIN sys.objects o on moa.object_id=o.object_id
WHERE moa.type=5;
B. Satır dışında depolanan tüm sütunların bellek tüketimini döndürme
Satır dışı sütunların bellek tüketimi hakkında daha fazla bilgi edinmek için, tüm iç tabloların bellek tüketimini ve satır dışı sütunları depolamak için kullanılan dizinlerini gösteren aşağıdaki sorguyu kullanabilirsiniz:
SELECT
QUOTENAME(SCHEMA_NAME(o.schema_id)) + N'.' + QUOTENAME(OBJECT_NAME(moa.object_id)) AS 'table',
c.name AS 'column',
c.max_length,
mc.memory_consumer_desc,
mc.index_id,
mc.allocated_bytes,
mc.used_bytes
FROM sys.memory_optimized_tables_internal_attributes moa
JOIN sys.columns c ON moa.object_id = c.object_id AND moa.minor_id=c.column_id
JOIN sys.dm_db_xtp_memory_consumers mc ON moa.xtp_object_id=mc.xtp_object_id
JOIN sys.objects o on moa.object_id=o.object_id
WHERE moa.type=5;
C. Bellek için iyileştirilmiş tablolarda columnstore dizinlerinin bellek tüketimini döndürme
Bellek için iyileştirilmiş tablolarda columnstore dizinlerinin bellek tüketimini göstermek için aşağıdaki sorguyu kullanın:
SELECT
QUOTENAME(SCHEMA_NAME(o.schema_id)) + N'.' + QUOTENAME(OBJECT_NAME(moa.object_id)) AS 'table',
i.name AS 'columnstore index',
SUM(mc.allocated_bytes) / 1024 as [allocated_kb],
SUM(mc.used_bytes) / 1024 as [used_kb]
FROM sys.memory_optimized_tables_internal_attributes moa
JOIN sys.indexes i ON moa.object_id = i.object_id AND i.type in (5,6)
JOIN sys.dm_db_xtp_memory_consumers mc ON moa.xtp_object_id=mc.xtp_object_id
JOIN sys.objects o on moa.object_id=o.object_id
WHERE moa.type IN (0, 2, 3, 4)
GROUP BY o.schema_id, moa.object_id, i.name;
Bellek için iyileştirilmiş tablolarda columnstore dizinleri için kullanılan iç yapılar genelinde bellek tüketimini aşağıdaki sorguyu kullanın:
SELECT
QUOTENAME(SCHEMA_NAME(o.schema_id)) + N'.' + QUOTENAME(OBJECT_NAME(moa.object_id)) AS 'table',
i.name AS 'columnstore index',
moa.type_desc AS 'internal table',
mc.index_id AS 'index',
mc.memory_consumer_desc,
mc.allocated_bytes / 1024 as [allocated_kb],
mc.used_bytes / 1024 as [used_kb]
FROM sys.memory_optimized_tables_internal_attributes moa
JOIN sys.indexes i ON moa.object_id = i.object_id AND i.type in (5,6)
JOIN sys.dm_db_xtp_memory_consumers mc ON moa.xtp_object_id=mc.xtp_object_id
JOIN sys.objects o on moa.object_id=o.object_id
WHERE moa.type IN (0, 2, 3, 4)