Sebagai pengembang dan DBA yang sering memilih teknologi, tetapi jika kita menjalankan organisasi besar, kita harus lebih akomodatif terhadap semua teknologi. Salah satu klien perbankan besar saya menggunakan banyak database untuk melakukan berbagai transaksi yang berbeda. Mereka juga menggunakan banyak solusi caching yang berbeda untuk bisnis mereka serta perangkat keras terbaik. Saya memiliki percakapan yang sangat menarik dengan klien saya tentang topik cara mengambil kueri, bukan dari cache untuk MySQL dan SQL Server, kami membahas SQL_NO_CACHE dan OPTION (RECOMPILE). Kami berdiskusi selama Pemeriksaan Kesehatan Kinerja Basis Data Komprehensif .
Mari kita lihat dua contoh berbeda hari ini untuk MySQL dan SQL Server. Kedua database relasional mengambil keuntungan dari cache memori untuk mengembalikan data kepada kami. Mari kita lihat bagaimana kita bisa menulis kueri di mana kita tidak akan menggunakan hasil yang di-cache tetapi langsung mendapatkan data kita dari disk SQL Server dan bukan dari cache.
Query SQL Server – OPTION (RECOMPILE)
SELECT Columnname FROM TableName OPTION(RECOMPILE)
Kueri MySQL SQL_NO_CACHE
SELECT SQL_NO_CACHE Columnname FROM TableName OPTION(RECOMPILE)
Saat Anda menggunakan SQL_NO_CACHE dan OPTION (RECOMPILE), database relasional (masing-masing MySQL dan SQL Server) secara langsung mengambil data dari disk daripada yang disimpan dalam cache.
Berikut adalah beberapa posting blog yang relevan dengan topik yang sama, yang mungkin menarik bagi Anda.
- SQL SERVER – Daftar Paket Kueri, Ukuran Cache, Teks, dan Jumlah Eksekusi
- SQL SERVER – Menemukan Rencana Kueri Terlama Dari Cache
- SQL SERVER – Rencanakan Cache dan Data Cache di Memori
- SQL SERVER – Prosedur Tersimpan – Bersihkan Cache dan Bersihkan Buffer
- SQL SERVER – Hapus Semua Paket Cache Kueri yang Tidak Digunakan Dalam Periode Tertentu
- SQL SERVER – Skrip untuk Mendapatkan Rencana yang Dikompilasi dengan Parameter Dari Cache
- SQL SERVER – Rencanakan Cache – Ambil dan Hapus – Skrip Sederhana
- SQL SERVER – 2017 – Skrip untuk Menghapus Cache Prosedur di Tingkat Basis Data