tôi không thể tìm thấy bất cứ điều gì để xác nhận liệu xây đúng truy vấn làm việc nhanh hơn trên một case-sensitive vs cơ sở dữ liệu case-insensitive (mặc dù tôi nghi ngờ sự khác biệt là không đáng kể), nhưng một vài điều là rõ ràng với tôi:
- Nếu yêu cầu kinh doanh của bạn không yêu cầu, bạn đang tự đặt cho mình nhiều công việc phụ (đây là mấu chốt của cả hai câu trả lời của HLGEM và Damien_The_Unbeliever).
- Nếu yêu cầu kinh doanh của bạn không yêu cầu, bạn đang tự thiết lập cho rất nhiều lỗi có thể xảy ra.
- của nó cách quá dễ dàng để xây dựng các truy vấn hoạt động kém trong một cơ sở dữ liệu case-insensitive nếu một trường hợp nhạy cảm tra cứu được yêu cầu:
Một truy vấn như:
... WHERE UPPER(GivenName) = 'PETER'
sẽ không sử dụng một chỉ mục trên GivenName. Bạn sẽ nghĩ điều gì đó như:
... WHERE GivenName = 'PETER' COLLATE SQL_Latin1_General_CP1_CS_AS
sẽ hoạt động tốt hơn và thực hiện. Nhưng đối với hiệu suất tối đa mà bạn sẽ phải làm một cái gì đó như:
... WHERE GivenName = 'PETER' COLLATE SQL_Latin1_General_CP1_CS_AS
AND GivenName LIKE 'PETER'
(thấy this article cho các chi tiết)
Cảm ơn người đàn ông đã thu thập thông tin này. Tôi nghĩ rằng nó đã trở nên rõ ràng rằng việc thay đổi đối chiếu sẽ không đáng giá trong thời gian của tôi. –