编辑:我知道这
SELECT *
是不好的做法,但在这里使用它只是为了将示例 SQL 集中在 table 语句上,而不是查询的其余部分。如果您愿意,可以将其换成一些列名。
给定一个数据库服务器MyServer
(我们目前在 SSMS 中连接到该服务器),具有多个数据库MyDb1
、MyDb2
等MyDb3
和默认模式dbo
,以下等效查询中的任何一个(它们都将返回完全相同的结果集)比其他查询更“最优” ?
SELECT * FROM MyServer.MyDb1.dbo.MyTable
有人告诉我,此方法(明确提供包括服务器名称在内的完整数据库名称)将MyServer
其视为链接服务器并导致查询运行速度变慢。这是真的?
SELECT * FROM MyDb1.dbo.MyTable
服务器名称不是必需的,因为我们已经连接到它,但是这会比上面的运行“更快”吗?
USE MyDb1
GO
SELECT * FROM dbo.MyTable
说明我们最初使用的数据库。我无法想象这对于单个查询比以前的查询更好,但是对于同一数据库上的后续查询(即,如果我们SELECT
在此下面有更多相同格式的语句)会更优化吗?
USE MyDb1
GO
SELECT * FROM MyTable
如上所述,但省略了默认模式。我不认为这有什么区别。可以?