【发布时间】:2013-05-23 19:18:52
【问题描述】:
我正在创建一个临时表,该表部分基于另一个(非临时)表的结构。我只需要结构,而不是数据。在我的研究中,我发现 2 个 SELECT 语句可以满足我的需要:
SELECT ID, Field1 FROM Table1 (NOLOCK) WHERE 0=1
和
SELECT TOP (0) ID, Field1 FROM Table1 (NOLOCK)
性能差异可能可以忽略不计,但我想知道哪个 SELECT 更高效?
谢谢
编辑 1:我在 Windows NT 6.1 上使用 Microsoft SQL Server 2005 - 9.00.5057.00 (X64) 64 位(Build 7601:Service Pack 1)
编辑 2:两个语句的执行计划看起来完全一样,所以我猜测性能上是否存在差异,可以忽略不计。
【问题讨论】:
-
你看过执行计划了吗?如果您对性能感到好奇,那通常是最好的起点。
-
这是使用 MS SQL Server 吗?如果有,是什么版本?如果不是,那是什么 RDBMS?
-
@Abe Miessler 我应该在执行计划中查看哪些方面?我不是 SQL 专家(我是在编程时自学的)
-
@Ryan Gates: Microsoft SQL Server 2005 - 9.00.5057.00 (X64) Mar 25 2011 13:33:31 版权所有 (c) 1988-2005 Microsoft Corporation Standard Edition (64-bit) on Windows NT 6.1(内部版本 7601:Service Pack 1)
-
请始终使用其他信息更新问题,而不是在评论中回复。此外,对于这个问题,MS SQL Server 2005 和 64 位就足够了。
标签: sql sql-server-2005 select query-performance