Saya punya beberapa tabel di database saya yang tidak boleh di-cache.
Bagaimana cara memberi tahu SQL Server untuk tidak men-cache halaman tabel atau bagaimana saya menghapus satu tabel dari cache?
Membilas semua cache bukan opsi.
Saya menggunakan SQL Server 2008 dan SQL Server 2008 R2.
sql-server
sql-server-2008
sql-server-2008-r2
Catalin Adler
sumber
sumber
Jawaban:
Tidak ada cara untuk melakukan ini.
DBCC DROPCLEANBUFFERS
tidak menerima parameter apa pun untuk database atau objek tertentu. Secara internal SQL Server dapat melakukan ini pada tingkat basis data namun seperti ketika databaseAUTO_CLOSE
d semua halaman yang sesuai dihapus dari cache buffer.Juga secara internal SQL Server dapat menandai halaman tertentu sehingga mereka akan menjadi yang pertama dikeluarkan oleh penulis malas. Ini digunakan oleh DMVs seperti
sys.dm_db_index_physical_stats
untuk menghindari pembilasan kumpulan buffer seperti yang disinggung dalam artikel ini tetapi fungsi ini tidak terpapar dengan cara apa pun kepada kami (meskipun mungkin berguna untuk dapat menentukan yang sama jika melakukan pemindaian satu kali) dari tabel besar misalnya).sumber
Anda tidak dapat menentukan bahwa tabel tertentu tidak boleh di-cache. Apa yang membuat Anda berpikir bahwa Anda tidak ingin tabel dalam cache?
SQL Server melakukan SEMUA operasi normalnya di buffer pool jadi jika Anda bisa memberi tahu SQL Server untuk tidak memuat tabel ke dalam cache tabel itu tidak akan dapat diakses untuk operasi DML normal.
sumber