DBCC FREESYSTEMCACHE (Transact-SQL)

Berlaku untuk:Database SQL Server Azure SQL Azure SQL Managed Instance

Melepaskan semua entri cache yang tidak digunakan dari semua cache. Mesin Database SQL Server secara proaktif membersihkan entri cache yang tidak digunakan di latar belakang untuk membuat memori tersedia untuk entri saat ini. Namun, Anda dapat menggunakan perintah ini untuk menghapus entri yang tidak digunakan secara manual dari setiap cache atau dari cache kumpulan Resource Governor tertentu.

Konvensi sintaks transact-SQL

Sintaks

DBCC FREESYSTEMCACHE
    ( 'ALL' [ , pool_name ] )
    [ WITH
    { [ MARK_IN_USE_FOR_REMOVAL ] , [ NO_INFOMSGS ]  }
    ]

Catatan

Untuk melihat sintaks Transact-SQL untuk SQL Server 2014 dan yang lebih lama, lihat Dokumentasi versi sebelumnya.

Argumen

( 'ALL' [ , pool_name ] )

  • SEMUA

    Menentukan semua cache yang didukung.

  • pool_name

    Menentukan cache kumpulan gubernur sumber daya. Hanya entri yang terkait dengan kumpulan ini yang dibebaskan. Untuk mencantumkan nama kumpulan yang tersedia, jalankan:

    SELECT name FROM sys.dm_resource_governor_resource_pools;
    

Sebagian besar, tetapi tidak semua, cache dapat dikosongkan secara individual menggunakan perintah ini.

MARK_IN_USE_FOR_REMOVAL

Secara asinkron membebaskan entri yang saat ini digunakan dari cache masing-masing setelah tidak digunakan. DBCC FREESYSTEMCACHE WITH MARK_IN_USE_FOR_REMOVAL Setelah berjalan, entri baru yang dibuat di cache tidak terpengaruh.

NO_INFOMSGS

Menyembunyikan semua pesan informasi.

Keterangan

Menjalankan DBCC FREESYSTEMCACHE menghapus cache paket untuk instans SQL Server. Menghapus cache rencana menyebabkan kompilasi ulang semua rencana eksekusi yang akan datang dan dapat menyebabkan pengurangan performa kueri yang tiba-tiba dan sementara. Untuk setiap penyimpanan cache yang dibersihkan dalam cache paket, log kesalahan SQL Server berisi pesan informasi berikut:

SQL Server has encountered %d occurrence(s) of cachestore flush for the '%s' cachestore (part of plan cache) due to 'DBCC FREEPROCCACHE' or 'DBCC FREESYSTEMCACHE' operations.

Pesan ini dicatat setiap lima menit selama cache dihapus dalam interval waktu tersebut.

Tataan hasil

DBCC FREESYSTEMCACHE menghasilkan:

DBCC execution completed. If DBCC printed error messages, contact your system administrator.

Izin

Memerlukan izin UBAH STATUS SERVER pada server.

Contoh

A. Melepaskan entri cache yang tidak digunakan dari cache kumpulan Resource Governor

Contoh berikut menggambarkan cara membersihkan cache yang didedikasikan untuk kumpulan sumber daya Resource Governor tertentu.

-- Clean all the caches with entries specific to the
-- resource pool named "default".
DBCC FREESYSTEMCACHE ('ALL', [default]);

B. Lepaskan entri dari cache masing-masing setelah tidak digunakan

Contoh berikut menggunakan klausa MARK_IN_USE_FOR_REMOVAL untuk merilis entri dari semua cache saat ini setelah entri menjadi tidak digunakan.

DBCC FREESYSTEMCACHE ('ALL') WITH MARK_IN_USE_FOR_REMOVAL;

Lihat juga