Tuyên bố từ chối trách nhiệm: Mọi thứ dưới đây chỉ là giai thoại và được rút ra trực tiếp từ kinh nghiệm cá nhân của tôi. Bất kỳ ai cảm thấy muốn thực hiện một phân tích thực nghiệm nghiêm ngặt hơn đều được hoan nghênh thực hiện và bỏ phiếu nếu tôi. Tôi cũng biết rằng SQL là một ngôn ngữ khai báo và bạn không cần phải xem xét mã của bạn được xử lý như thế nào khi bạn viết nó, nhưng vì tôi coi trọng thời gian của mình nên tôi làm.
Có vô số câu lệnh tương đương về mặt logic, nhưng tôi sẽ xem xét ba (ish).
Trường hợp 1: Hai so sánh theo thứ tự tiêu chuẩn (Đã sửa thứ tự đánh giá)
A> = MinBound VÀ A <= MaxBound
Trường hợp 2: Đường cú pháp (Thứ tự đánh giá không do tác giả lựa chọn)
GIỮA Giới hạn tối thiểu VÀ Giới hạn tối đa
Trường hợp 3: Hai so sánh theo một thứ tự giáo dục (Thứ tự đánh giá được chọn lúc viết)
A> = MinBound VÀ A <= MaxBound
Hoặc là
A <= MaxBound AND A> = MinBound
Theo kinh nghiệm của tôi, Trường hợp 1 và Trường hợp 2 không có bất kỳ sự khác biệt nhất quán hoặc đáng chú ý nào về hiệu suất vì chúng không biết về tập dữ liệu.
Tuy nhiên, Trường hợp 3 có thể cải thiện đáng kể thời gian thực hiện. Cụ thể, nếu bạn đang làm việc với một tập dữ liệu lớn và tình cờ có một số kiến thức kinh nghiệm về việc liệu A có nhiều khả năng lớn hơn Giới hạn tối đa hay nhỏ hơn Giới hạn tối thiểu hay không bạn có thể cải thiện đáng kể thời gian thực thi bằng cách sử dụng Trường hợp 3 và sắp xếp các phép so sánh cho phù hợp.
Một trường hợp sử dụng mà tôi có là truy vấn một tập dữ liệu lịch sử lớn với các ngày không được lập chỉ mục cho các bản ghi trong một khoảng thời gian cụ thể. Khi viết truy vấn, tôi sẽ biết rõ liệu có nhiều dữ liệu hơn tồn tại TRƯỚC khoảng thời gian được chỉ định hoặc SAU khoảng thời gian được chỉ định hay không và có thể sắp xếp các so sánh của mình cho phù hợp. Tôi đã có thời gian thực thi giảm đi một nửa tùy thuộc vào kích thước của tập dữ liệu, độ phức tạp của truy vấn và số lượng bản ghi được lọc bởi so sánh đầu tiên.