sql >> Databáze >  >> RDS >> Sqlserver

Jak optimalizovat použití klauzule OR při použití s ​​parametry (SQL Server 2008)

SQL Server není příliš dobrý v optimalizaci OR predikáty.

Použijte toto:

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 před provedením dotazů se podívá na hodnoty proměnných a optimalizuje nadbytečné dotazy.

To znamená, že bude skutečně proveden pouze jeden dotaz ze čtyř.



  1. Jak nastavit řazení pro připojení v SQL Server?

  2. Dokumentace MAA pro Oracle Cloud

  3. MariaDB CHARACTER_LENGTH() Vysvětleno

  4. Generování postgresql uživatelského hesla