Tôi có nhiều cơ sở dữ liệu trên một phiên bản SQL Server 2005. Tôi đã tạo một từ đồng nghĩa trên một cơ sở dữ liệu để truy nhập bảng trên cơ sở dữ liệu khác và khi viết truy vấn của tôi, tôi muốn sử dụng một chỉ số cụ thể, tuy nhiên, khi đánh giá kế hoạch thực hiện, nó dường như không sử dụng nó. Nếu tôi viết truy vấn để truy cập cơ sở dữ liệu một cách rõ ràng, nó hoạt động, nhưng tôi dường như không thể làm cho nó hoạt động bằng cách sử dụng một từ đồng nghĩa. Ví dụ:Bảng SQL Server Đồng nghĩa với các chỉ mục
select *
from testdb..testtable with (index(testindex))
|--Nested Loops(Inner Join, OUTER REFERENCES:([testdb].[dbo].[testtable].[id]))
|--Index Scan(OBJECT:([testdb].[dbo].[testtable].[testindex]))
|--Clustered Index Seek(OBJECT:([testdb].[dbo].[testtable].[PK_testtable]), SEEK:([testdb].[dbo].[testtable].[id]=[testdb].[dbo].[testtable].[id]) LOOKUP ORDERED FORWARD)
không mang lại kế hoạch thực hiện tương tự như
select *
from testdb_synonym with (index(testindex))
|--Clustered Index Scan(OBJECT:([testdb].[dbo].[testtable].[PK_testtable]))
Đây có phải là một giới hạn với Từ đồng nghĩa hoặc là có một cái gì đó cụ thể tôi cần phải làm gì để có được điều này để làm việc?
Bạn có thể đăng các kế hoạch cơ bản cho cả hai truy vấn không? Chỉ cần chạy 'SET SHOWPLAN_TEXT ON GO SELECT…' – Quassnoi
Tôi đã cập nhật mô tả để bao gồm kế hoạch thực hiện ... –