Không có sự khác biệt trong hiệu suất. Tuy nhiên, bạn đang sử dụng lược đồ ngay bây giờ (ngay cả khi bạn không biết).
Việc sử dụng các tham chiếu đến các đối tượng lược đồ như bảng, thủ tục được lưu trữ, UDF, v.v. không đủ tiêu chuẩn lược đồ sẽ có tác động hiệu năng. Tài liệu tham khảo phải luôn luôn đủ điều kiện theo lược đồ. Các tài liệu tham khảo không đủ tiêu chuẩn như vậy phải được giải quyết, và điều đó xảy ra như thế này:
- Đầu tiên, hãy tìm một đối tượng có cùng tên và loại theo lược đồ mặc định của người dùng theo thông tin xác thực phiên được thiết lập (ví dụ
jsmith
). Nếu tìm thấy, trường hợp đó được sử dụng.
- Mặt khác, tìm kiếm một đối tượng có cùng tên và gõ dưới lược đồ
dbo
.
Điều này có một số hiệu ứng:
- Hầu hết thời gian, hai tra cứu được yêu cầu để giải quyết tham chiếu thay vì tìm kiếm đơn lẻ nếu tham chiếu đủ điều kiện lược đồ.
- Kế hoạch thực hiện thu được khi hàm truy vấn / thủ tục lưu trữ / hàm do người dùng xác định bị ràng buộc không thể lưu trữ và sử dụng lại.
Hiệu ứng cuối cùng mà bạn sẽ chỉ tìm thấy một cách đau đớn khi gặp sự cố là khi những người dùng khác nhau có thể nhận được các kết quả khác nhau từ một truy vấn hoặc quy trình được lưu trữ nhất định. Một cái gì đó như select * from foo join bar
có thể hoạt động tốt đối với tôi với tư cách là chủ sở hữu db; nó có thể bị phá vỡ đối với người dùng jsmith
, vô tình hay không, đã tạo một bảng có tên foo
theo lược đồ riêng của mình ( jsmith.foo
) trong cùng một cơ sở dữ liệu.
Vì lý do này, create
và các drop
câu lệnh nên đủ điều kiện lược đồ tên của đối tượng được tạo hoặc loại bỏ.