Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Cách tối ưu hóa việc sử dụng mệnh đề OR khi được sử dụng với các tham số (SQL Server 2008)

SQL Server không tốt lắm trong việc tối ưu hóa OR vị ngữ.

Sử dụng cái này:

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 sẽ xem xét các giá trị của các biến trước khi thực hiện các truy vấn và sẽ tối ưu hóa các truy vấn thừa.

Điều này có nghĩa là chỉ một truy vấn trong số bốn truy vấn sẽ được thực thi.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. scope_identity so với Id_current

  2. Sử dụng Bộ nhớ Intel Optane dành cho Máy chủ SQL

  3. Trả lại các khóa chính từ một máy chủ được liên kết trong SQL Server (Ví dụ T-SQL)

  4. Chuyển đổi hiệu quả các hàng thành cột trong máy chủ sql

  5. Bộ đệm ẩn đối tượng tạm thời của SQL Server