2009-04-20 56 views

Trả lời

28

Thực ra bạn nên để lại những người dbo đó. báo cáo bởi vì bạn SQL sẽ nhanh hơn kể từ khi tôi ưu hoa không nhất thiết phải tra cứu schema

Kiểm tra liên kết này cũng Performance Impact of Procedure Calls without Owner Qualification

+0

Nhưng điều này có nghĩa là tất cả các tập lệnh SQL của tôi sẽ bị hỏng nếu tôi phải thay đổi lược đồ? Và chắc chắn người tối ưu hóa đủ thông minh trong những ngày này để đoán rằng tôi đang tham chiếu đến lược đồ duy nhất mà tôi có thể tham chiếu ...? – MGOwen

-3

Tôi nghĩ người dùng mà bạn kết nối phải thuộc về lược đồ dbo và sau đó bạn sẽ không phải nhập tiền tố, nó sẽ phỏng đoán nó từ các lược đồ mà người dùng thuộc về.

+3

Trong SQL 2005 trở lên, cùng một người dùng có thể truy cập vào nhiều lược đồ. Vậy thì sao? –

6

Nó thực sự có lợi cho rời khỏi dbo. tiền tố tại chỗ - sau khi tất cả, trong SQL Server, bạn có thể có một số lược đồ (điều "dbo".) với cùng một tên bảng, ví dụ: dbo.MyTable, joe.MyTable, frank.MyTable.

Nếu sau đó bạn phát hành một SELECT (danh sách trường) TỪ MyTable, trước tiên SQL Server phải tìm ra bảng "MyTable" nào bạn thực sự muốn -> thời gian này, chỉ định ngay từ dơi bạn muốn " dbo.MyTable "sẽ tiết kiệm thời gian cho bạn.

OK, không nhiều trên một truy vấn - nhưng các truy vấn SELECT là QUITE thường xuyên và tất cả đều tăng lên!

Marc

1

Câu hỏi tiền thưởng không chính xác là câu hỏi ban đầu.

Câu trả lời hiện tại không chứa đủ chi tiết.

Không có câu trả lời nào thực sự giải quyết câu hỏi về cách xóa tiền tố dẹt hoặc thay đổi thành thứ khác.

dbo là giản đồ. Bạn không thể xóa giản đồ khỏi bảng. Bạn có thể thay đổi nó. Có rất nhiều ví dụ. Đây là một: How do I move a table into a schema in T-SQL.

1

chỉ như thế này, nếu tất cả các bảng của bạn là trong schema dbo

use mydatabase 
go 
select * from mytable 

nếu bạn có nhiều cơ sở dữ liệu bạn có thể làm điều đó quá:

select * from mydatabase..mytable 
Các vấn đề liên quan