Theo tôi hiểu, trình tối ưu hóa truy vấn trong SQL Server (hoặc bất kỳ RDBMS nào khác, thực sự) không nhận thức được hiệu năng của bộ lưu trữ bên dưới cơ sở dữ liệu và sẽ đưa ra quyết định như thể tất cả lưu trữ có chi phí bằng nhau. Điều đó có chính xác không, hay có một số kiến thức về hiệu suất lưu trữ được tính đến?
Trong một ví dụ hoàn toàn khó khăn, giả sử rằng các hàng trong bảng của tôi được lưu trữ trên ổ SSD trong SAN của tôi với thời gian truy cập tức thời, trong đó các chỉ mục của tôi được lưu trữ trên các ổ đĩa SAS quá tải, dẫn đến bão hòa đĩa và hàng đợi đĩa liên tục. Khi RDBMS tạo kế hoạch thực hiện, có khả năng ưu tiên quét bảng hơn so với thao tác chỉ mục (hoặc có thể là chỉ mục mỏng và tra cứu bảng liên quan, trái với chỉ mục che phủ, vì nó ít IO hơn trên các đĩa SAS)?
Tôi nghi ngờ câu trả lời chắc chắn "không phải là cơ hội tối ưu hóa thông minh hay thậm chí nhận thức được hiệu suất của đĩa", nhưng tôi chỉ muốn xem liệu có ai biết chắc chắn không. Tôi đang sử dụng SQL Server, nhưng tôi quan tâm đến bất kỳ hệ thống cơ sở dữ liệu nào.