SQL SERVER是否支持像Oracle一样的FIRST_ROWS功能?

4

我们知道Oracle支持一个优化器模式叫做FIRST_ROWS,我想知道SQL Server是否有类似的东西。意思是如果我想尽快获取select语句的第一行,而不必等待它完成,我该怎么办。如果有的话,我能在像ODBC和可能的ADO组件这样的数据库驱动程序中使用吗?

2个回答

10

是的,可以。您可以使用FAST查询提示来尽快获取查询的前x行,以实现此目的。请查看以下示例代码:

SELECT        whatever
FROM          YourTable
OPTION (FAST 1)

你也可以使用FASTFIRSTROW表提示:

SELECT        whatever
FROM          YourTable
WITH (FASTFIRSTROW)

@Maximilian:谢谢。你知道我能否在ODBC或ADO组件中使用它吗? - chenwq
快速和TOP之间的基本区别是什么?如果有链接将不胜感激。 - Pankaj
3
@chenwq: 我确定你行。 @SQL: TOP 限制了查询返回的行数。当你说 TOP 10 时,意思是“只给我10行”。当你说 FAST 10 时,意思是“给我这个查询返回的所有行,但尽可能快地给我前10行,即使这会使整个查询表现更差”。 - Maximilian Mayerl
任何MSDN链接都将非常有帮助。如果能快速提供,我会给您一个加分。 - Pankaj
这个特性在基于数据库的应用中有什么用途呢? - Pankaj
TOP的链接:http://msdn.microsoft.com/de-de/library/ms189463.aspx FAST和其他查询提示的链接:http://msdn.microsoft.com/en-us/library/ms181714.aspx - Maximilian Mayerl

1

喜欢 第一名 吗?

还有优化提示:FAST number_rows。(查询提示

指定查询被优化以快速检索前 number_rows 行。这是一个非负整数。在返回前 number_rows 行后,查询继续执行并生成其完整的结果集。


谢谢。实际上我的问题是,当我使用ADO数据集时,无法尽快打开它。当我使用服务器端游标时,ADO使用sp_cursoropen/sp_cursorfetch而不是查询提示,我刚刚测试了使用查询提示与数据集,但它不起作用。 - chenwq

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接