订购视图比调用它的查询更好吗?

kmp*_*kmp 1 sql t-sql sql-server sql-server-2008

我正在使用SQL Server 2008,我有一种情况,我认为在我的应用程序代码中我总是按其中包含的日期排序,所以我想知道效率等.

我遇到了这个博客文章SQL Server - 订购一个视图,解释了可以订购视图,而不是:

CREATE VIEW v
AS
    SELECT a,b,d FROM t
GO
SELECT a,b,d FROM v ORDER BY d
Run Code Online (Sandbox Code Playgroud)

我可以:

CREATE VIEW v
AS
    SELECT TOP(100) PERCENT a,b,d FROM t ORDER BY d
GO
SELECT a,b,d FROM v
Run Code Online (Sandbox Code Playgroud)

并得到相同的结果.

我的问题是,上述哪一项效率更高?

如果我希望它尽可能快,我会用第二种方法做得更好,或者它没有任何区别,无论如何sql server都能完全一致吗?

Rem*_*anu 5

这是一个有争议的问题:

ORDER BY子句在视图,内联函数,派生表和子查询中无效

使用的诀窍TOP(100) PERCENT是一种不好的做法.尝试通过向视图添加ORDER BY来强制执行订单实际上是在错误的树上咆哮.如果您需要ORDER BY,请在查询中询问.故事结局.