sys.dm_xtp_system_memory_consumers (T-SQL)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Melaporkan konsumen memori tingkat sistem untuk OLTP Dalam Memori. Memori untuk konsumen ini berasal dari kumpulan default (ketika alokasi berada dalam konteks utas pengguna) atau dari kumpulan internal (jika alokasi berada dalam konteks utas sistem).

SELECT *
FROM sys.dm_xtp_system_memory_consumers;

Untuk informasi selengkapnya, lihat OLTP Dalam Memori (Pengoptimalan Dalam Memori).

Nama kolom Jenis Deskripsi
memory_consumer_id bigint ID internal untuk konsumen memori.
memory_consumer_type int Bilangan bulat yang mewakili jenis konsumen memori dengan salah satu nilai berikut:

0 - Tidak boleh ditampilkan. Mengagregasi penggunaan memori dua atau lebih konsumen.

1 - LOOKASIDE: Melacak konsumsi memori untuk tampilan sistem.

2 - VARHEAP: Melacak konsumsi memori untuk timbunan panjang variabel.

4 - Kumpulan halaman IO: Melacak konsumsi memori untuk kumpulan halaman sistem yang digunakan untuk operasi IO.
memory_consumer_type_desc nvarchar(16) Deskripsi jenis konsumen memori:

0 - Tidak boleh ditampilkan

1 - LOOKASIDE

2 - VARHEAP

4 - PGPOOL
memory_consumer_desc nvarchar(64) Deskripsi instans konsumen memori:

Varheap:
Timbunan sistem. Tujuan umum. Saat ini hanya digunakan untuk mengalokasikan item kerja pengumpulan sampah.
-ATAU-
Timbunan lookaside. Digunakan oleh lookasides ketika jumlah item yang terkandung dalam daftar lookaside mencapai batas yang telah ditentukan (biasanya sekitar 5.000 item).

PGPOOL: Untuk kumpulan sistem IO ada tiga ukuran berbeda: Kumpulan halaman Sistem 4K, kumpulan halaman System 64-K, dan kumpulan halaman System 256-K.
lookaside_id bigint ID penyedia memori thread-local dan lookaside.
pagepool_id bigint ID penyedia memori kumpulan halaman thread-local.
allocated_bytes bigint Jumlah byte yang dicadangkan untuk konsumen ini.
used_bytes bigint Byte yang digunakan oleh konsumen ini. Hanya berlaku untuk konsumen memori varheap.

Dimulai dengan SQL Server 2022 (16.x), berlaku untuk konsumen memori varheap dan lookaside.
allocation_count int Jumlah alokasi.

Dimulai dengan SQL Server 2022 (16.x), jumlah alokasi dari timbunan sistem untuk konsumen memori lookaside.
partition_count int Penggunaan internal saja.
sizeclass_count int Penggunaan internal saja.
min_sizeclass int Penggunaan internal saja.
max_sizeclass int Penggunaan internal saja.
memory_consumer_address varbinary Alamat internal konsumen.

Izin

Memerlukan izin TAMPILKAN STATUS SERVER pada server.

Izin untuk SQL Server 2022 dan yang lebih baru

Memerlukan izin TAMPILKAN STATUS PERFORMA SERVER pada server.

Keterangan

Di SQL Server 2022 (16.x), DMV ini memiliki kolom tambahan khusus untuk peningkatan memori metadata TempDB yang dioptimalkan memori memori.

Contoh

Contoh ini menghasilkan konsumen memori sistem untuk instans SQL Server:

SELECT memory_consumer_type_desc,
       memory_consumer_desc,
       allocated_bytes / 1024 as allocated_bytes_kb,
       used_bytes / 1024 as used_bytes_kb,
       allocation_count
FROM sys.dm_xtp_system_memory_consumers;

Output menunjukkan semua konsumen memori pada tingkat sistem. Misalnya, ada konsumen untuk transaksi cari di samping.

memory_consumer_type_desc                memory_consumer_desc                           allocated_bytes_kb   used_bytes_kb        allocation_count
-------------------------------          ---------------------                          -------------------  --------------       ----------------
VARHEAP                                  Lookaside heap                                 0                    0                    0
VARHEAP                                  System heap                                    768                  0                    2
LOOKASIDE                                GC transaction map entry                       64                   64                   910
LOOKASIDE                                Redo transaction map entry                     128                  128                  1260
LOOKASIDE                                Recovery table cache entry                     448                  448                  8192
LOOKASIDE                                Transaction recent rows                        3264                 3264                 4444
LOOKASIDE                                Range cursor                                   0                    0                    0
LOOKASIDE                                Hash cursor                                    3200                 3200                 11070
LOOKASIDE                                Transaction save-point set entry               0                    0                    0
LOOKASIDE                                Transaction partially-inserted rows set        704                  704                  1287
LOOKASIDE                                Transaction constraint set                     576                  576                  1940
LOOKASIDE                                Transaction save-point set                     0                    0                    0
LOOKASIDE                                Transaction write set                          704                  704                  672
LOOKASIDE                                Transaction scan set                           320                  320                  156
LOOKASIDE                                Transaction read set                           704                  704                  343
LOOKASIDE                                Transaction                                    4288                 4288                 1459
PGPOOL                                   System 256K page pool                          5120                 5120                 20
PGPOOL                                   System 64K page pool                           0                    0                    0
PGPOOL                                   System 4K page pool                            24                   24                   6

Untuk melihat total memori yang digunakan oleh alokator sistem:

SELECT SUM(allocated_bytes) / (1024 * 1024) AS total_allocated_MB,
       SUM(used_bytes) / (1024 * 1024) AS total_used_MB
FROM sys.dm_xtp_system_memory_consumers;

Berikut adalah hasil yang ditetapkan.

total_allocated_MB   total_used_MB
-------------------- --------------------
2                    2