TOP 究竟是如何工作的?
我已经完成了TOP(Transact-SQL)。我了解 TOP 用于限制结果集。但我不明白的是,假设我指定Select Top(10) from Table where some condition
它在处理表中的前 10 条记录后停止,该表可能只包含符合条件的 5 条记录,或者它会先处理所有记录,然后返回结果集的前 10 条记录。
TOP 究竟是如何工作的?
我已经完成了TOP(Transact-SQL)。我了解 TOP 用于限制结果集。但我不明白的是,假设我指定Select Top(10) from Table where some condition
它在处理表中的前 10 条记录后停止,该表可能只包含符合条件的 5 条记录,或者它会先处理所有记录,然后返回结果集的前 10 条记录。
是的,第二个假设是正确的。
首先它将处理所有记录,然后返回结果集的前 10 条记录。
数据库引擎将忽略TOP子句运行查询,然后最后将该结果集缩小到所请求的n行数。
正确答案存在于这个线程中。实际上,SQL Server 2008 使用不同的模型来执行查询。