Tốc độ nào nhanh hơn?Máy chủ SQL: Chọn trong so với hoặc?
SELECT UserName
FROM dbo.UserTable
WHERE UserID in (1,3,4)
SELECT UserName
FROM dbo.UserTable
WHERE UserID = 1
OR UserID = 3
OR UserID = 4
Tốc độ nào nhanh hơn?Máy chủ SQL: Chọn trong so với hoặc?
SELECT UserName
FROM dbo.UserTable
WHERE UserID in (1,3,4)
SELECT UserName
FROM dbo.UserTable
WHERE UserID = 1
OR UserID = 3
OR UserID = 4
Do tối ưu hóa các truy vấn này sẽ chạy với tốc độ tương tự vì chúng là một cách logic tương đương Sql Server.
tôi ưu tiên cú pháp IN cho ngắn gọn và dễ đọc.
Thay vào đó Or/In có cách nào để truy vấn không? sẽ thực hiện nhanh hơn? – Worgon
@Worgon nếu số lượng giá trị lớn, bạn có thể đặt các giá trị khác biệt vào bảng tạm thời được lập chỉ mục và tham gia vào đó. –
Thực ra nó giống nhau.
Nếu bạn hiển thị kế hoạch thực hiện ước tính, bạn sẽ thấy rằng nó đang thực hiện cùng một hành động.
Điều này có liên quan khi nói đến sản xuất SQL qua LINQ. Có một số trường hợp mà sql được tạo ra ở dạng: field = 'xxx' OR field = 'yyy'.
Bạn có thể làm rõ điều đó không? Tôi không biết bạn đang nói gì. – tbodt
http://stackoverflow.com/questions/3074713/in-vs-or-in-the-sql-where-clause – rdo