sql >> Databasteknik >  >> RDS >> Sqlserver

Hur man optimerar användningen av ELLER-satsen när den används med parametrar (SQL Server 2008)

SQL Server är inte särskilt bra för att optimera OR predikat.

Använd detta:

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 kommer att titta på variablernas värden innan frågorna körs och kommer att optimera de redundanta frågorna.

Det betyder att endast en fråga av fyra faktiskt kommer att köras.



  1. Hitta sambanden mellan databaspostkonton och databasprinciper i SQL Server (T-SQL)

  2. hur kopierar man data från fil till PostgreSQL med JDBC?

  3. Agent är blockerad

  4. Hur man ändrar webbporten i EBS 12.2