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

Mệnh đề WHERE-CASE Hiệu suất truy vấn con

Tôi nghĩ rằng giải pháp trên lý thuyết có thể giúp bạn tăng hiệu suất, nhưng nó cũng phụ thuộc vào những gì hàm vô hướng thực sự làm. Tôi nghĩ rằng trong trường hợp này (dự đoán của tôi là định dạng ngày thành ngày cuối cùng trong quý) sẽ thực sự không đáng kể.

Bạn có thể muốn đọc trang này với các cách giải quyết được đề xuất:

http://connect.microsoft.com/SQLServer/feedback/details/273443/the-scalar-expression- Chức năng-would-speed-performance-ready-keeping-the-benefits-of- chức năng #

Và trong Cách giải quyết, có một nhận xét rằng

Vì vậy, có vẻ như có, điều này có thể làm tăng hiệu suất.

Giải pháp của bạn là đúng, nhưng tôi khuyên bạn nên xem xét một cải tiến của SQL để sử dụng ELSE thay thế, nó trông gọn gàng hơn đối với tôi:

AND ReportTypeID = CASE WHEN (@X = 1) THEN  1 
                    ELSE 4
                    END;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ký hiệu dấu chấm trong SQL

  2. Tạo công việc tác nhân máy chủ SQL nhiều bước (T-SQL)

  3. Hợp nhất các khoảng ngày trùng lặp

  4. So sánh ô với ô trong Sql Server?

  5. Điều gì xảy ra nếu bạn không thực hiện một giao dịch với cơ sở dữ liệu (chẳng hạn như SQL Server)?