Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Alternatif untuk menggunakan variabel lokal dalam klausa where

Menggunakan variabel lokal di filter WHERE menyebabkan FULL TABLE SCAN. Karena SS tidak mengetahui nilai variabel lokal pada waktu kompilasi. Jadi itu membuat rencana eksekusi untuk skala terbesar yang bisa tersedia untuk kolom.

Untuk mencegah masalah kinerja, SS harus mengetahui nilai variabel pada waktu kompilasi. Mendefinisikan SP, dan melewati variabel lokal ini sebagai parameter merupakan salah satu solusi dari permasalahan tersebut. Solusi lain adalah, menggunakan sp_executesql dan meneruskan variabel lokal itu sebagai parameter lagi...

Atau Anda dapat menambahkan OPSI ( REKOMPILASI ) di akhir pernyataan sql Anda untuk membuat variabel lokal Anda dikompilasi. Ini akan menyelesaikan masalah kinerja.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana menemukan baris berurutan berdasarkan nilai kolom?

  2. Prosesor Intel yang Direkomendasikan untuk SQL Server 2014 – Maret 2015

  3. Bagaimana saya bisa mengulang semua file dalam folder menggunakan TSQL?

  4. Kesalahan fatal:Panggilan ke fungsi yang tidak ditentukan sqlsrv_connect()

  5. Kembalikan Daftar Kolom yang Dihitung di SQL Server