【问题标题】:Table aliases and the query optimiser表别名和查询优化器
【发布时间】:2011-12-19 09:55:16
【问题描述】:

来自https://stackoverflow.com/a/11064/247702的评论

您无需使用查询计划器来解决这个问题 Answer.Text 或 a.Text。不管你是否使用 表名或别名,但限定字段会有所帮助。

SQL Server 2008 在查询单个表时是否如此?比如这个

select
    mt.myfield
from
    mytable mt
where
    mt.myid = 1

比这更快?

select
    myfield
from
    mytable
where
    myid = 1

我当然可以测试这个,但我没有足够大的数据集,也不知道如何可靠地测试 SQL Server 性能。

【问题讨论】:

  • 两种语句的性能没有区别。

标签: sql-server-2008 query-optimization table-alias


【解决方案1】:

在你提出的情况下,我认为它会是同样的事情。

唯一的问题可能是当您连接多个表并且查询优化器需要在 where 子句中(在所有表中)定位列时。如果您使用别名,查询优化器已经知道每列是哪个表。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多