【问题标题】:Does SQL SERVER supports FIRST_ROWS feature like oracle does?SQL SERVER 是否像 oracle 一样支持 FIRST_ROWS 功能?
【发布时间】:2011-09-25 17:15:01
【问题描述】:

我们知道Oracle支持一种叫做FIRST_ROWS的优化器模式,我想知道SQL Server是否有这样的东西。意思是what should I do if I want to get the first row of a select statement as soon as possible while not waiting it to complete。如果有,我可以在 ODBC 等数据库驱动程序中使用它吗?可能是 ADO 组件?

【问题讨论】:

    标签: sql-server oracle odbc query-optimization ado


    【解决方案1】:

    是的,确实如此。您可以使用 FAST 查询提示,它会尽快为您提供查询的前 x 行,以实现此目的。看看这个示例代码:

    SELECT        whatever
    FROM          YourTable
    OPTION (FAST 1)
    

    您还可以使用 FASTFIRSTROW 表提示:

    SELECT        whatever
    FROM          YourTable
    WITH (FASTFIRSTROW)
    

    【讨论】:

    • @Maximilian:谢谢。你知道我可以将它与 ODBC 或 ADO 组件一起使用吗?
    • 那么Fast和TOP之间的基本区别是什么?任何链接将不胜感激..
    • @chenwq:我相信你可以。 @SQL:TOP 限制查询返回的行数。当您说 TOP 10 时,这意味着“只给我 10 行”。当您说 FAST 10 时,这意味着“给我这个查询返回的所有行,但尽可能快地给我前 10 行,即使这意味着查询的整体性能会更差”。
    • 任何 msdn 链接...都会很有帮助。 +1 快速。
    • 这个特性在数据库驱动的应用程序中有什么用?
    【解决方案2】:

    喜欢TOP 1

    还有优化提示:FAST number_rows。 (Query Hints)

    指定查询已优化 用于快速检索第一个 number_rows。这是一个非负 整数。在第一个 number_rows 之后 返回,继续查询 执行并产生完整的结果 设置。

    【讨论】:

    • 谢谢。实际上我最初的问题是当我使用 ADO 数据集时,我无法尽快打开它。当我使用服务器端游标时,ADO 使用 sp_cursoropen/sp_cursorfetch 而不是查询提示,我刚刚测试了使用数据集的查询提示,它不起作用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-21
    相关资源
    最近更新 更多