【问题标题】:SQL data execution planSQL数据执行计划
【发布时间】:2010-06-02 13:57:32
【问题描述】:

SELECT TOP 1000 * FROM TABLE

返回与

相同的数据执行计划

SELECT * FROM TABLE?

还请让我知道是否应将其移至 ServerFault。

谢谢。

【问题讨论】:

  • 您给出的查询的查询计划将是微不足道的,优化器没有做任何事情的余地。您的实际查询是否比这更复杂?您是否插入另一个表或其他东西,因为可能有优化的空间。
  • @Martin - 所有脚本的连接数都在 4 到 7 个之间。我会玩一下TOP。
  • 啊,我明白了,我认为肯定不止这些!

标签: sql-server-2005 sql-execution-plan


【解决方案1】:

您可以自己检查。在 SSMS 中,转到 Query -> Include Actual Execution Plan

然后运行您的查询。

例如当我跑步时:

SELECT TOP 10 * FROM sys.tables
SELECT * FROM sys.tables

它们返回不同的执行计划。

【讨论】:

  • 虽然对于单个表(而不是视图),但我无法想象会是这种情况。
  • 我时间紧迫,查询可能会运行 8 小时以上。所以我一直在寻找一种方法来解决它。
  • @Jim - 您也可以查看估计的查询计划。
  • @Martin - 从技术上讲,单个表的执行计划是不同的(尝试一下),因为它将在计划中包含一个“TOP”运算符。但我的主要观点是,“试试看你的具体查询”
  • @MartinSmith - 我也一直在这样做。我不知道估计和实际之间是否存在显着差异。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-02-18
  • 1970-01-01
  • 1970-01-01
  • 2022-06-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多