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

Cara Mengoptimalkan Penggunaan Klausa ATAU Saat Digunakan dengan Parameter (SQL Server 2008)

SQL Server tidak terlalu baik dalam mengoptimalkan OR predikat.

Gunakan ini:

SELECT  key3
FROM    or_table
WHERE   @key1 = 0
        AND @key2 = 0
UNION ALL
SELECT  key3
FROM    or_table
WHERE   @key1 = 0
        AND @key2 <> 0
        AND key2 = @key2
UNION ALL
SELECT  key3
FROM    or_table
WHERE   @key2 = 0
        AND @key1 <> 0
        AND key1 = @key1
UNION ALL
SELECT  key3
FROM    or_table
WHERE   @key1 <> 0
        AND @key2 <> 0
        AND key1 = @key1
        AND key2 = @key2

SQL Server akan melihat nilai variabel sebelum mengeksekusi kueri dan akan mengoptimalkan kueri yang berlebihan.

Ini berarti hanya satu kueri dari empat yang benar-benar akan dieksekusi.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Gunakan NEWID() untuk Membuat Nilai Unik di SQL Server

  2. Daftar Format Tanggal Tersedia dengan CONVERT() di SQL Server

  3. Temukan Entitas Referensi di SQL Server:sys.dm_sql_referencing_entities()

  4. Mengonversi file SQL2008 RDL ke SQL2005

  5. SQL Server 2005 Pivot pada Jumlah Kolom yang Tidak Diketahui