WEB开发网
开发学院数据库MSSQL Server Microsoft SQL Server 查询处理器的内部机制与结构... 阅读

Microsoft SQL Server 查询处理器的内部机制与结构

 2006-08-05 09:14:50 来源:WEB开发网   
核心提示: 如果您不想取回这个数据流水,则可以始终使用块游标或可滚动游标,Microsoft SQL Server 查询处理器的内部机制与结构(10),在这种情况下,数据流变得大不相同,则您至少还要对每一行块支付附加开销,如果您使用只向前的快速游标,调用是对通过 SQL 文本中的 sp_cursoro

如果您不想取回这个数据流水,则可以始终使用块游标或可滚动游标。在这种情况下,数据流变得大不相同。调用是对通过 SQL 文本中的 sp_cursoropen 输入点(这些虚拟存储过程之一)进行的。该 sp_cursoropen 利用 SQL 来增加附加逻辑,以使其滚动,它潜在地将某些结果重定向到一个临时表,然后用句柄给游标一个响应,表明游标现在是打开的。仍然在程序员的控制之外,客户机调用 sp_cursorfetch,将一行或多行转到客户机上,然后返回到用户应用程序。客户机还可使用 sp_cursor 来重新配置游标,或改变某些统计数字。在您处理完游标之后,客户机将调用 sp_cursorclose。

让我们看一个简单的情况,即只返回一行给客户机。至于默认的结果集,需要从客户机到服务器往返发送一次消息。SQL 消息(或 sp_executesql)向下发往服务器,然后结果返回来。在同一行(非流水)的游标情况下,您会看到传统情况下能用 SQL Server 看见的东西。一个往返行程用于打开,一个往返行程用于取得数据,一个往返行程用于关闭。这个过程使用消息的次数是默认结果集使用的三倍。在 SQL Server 7.0 中,有一种所谓只向前的快速游标, 它使用同样的游标结构。它与流水的表现不一样,因为在发送任何附加 SQL 消息之前,它不需要您处理全部结果行。所以,如果您带回 5 行,还有更多的数据,您仍能将更新向下发送给服务器。

一个只向前的快速游标在服务器上比常规游标更快,它让您指定两个附加选项。一个称为自动取数,另一个称为自动关闭。自动取数将返回第一个行集合,作为打开的响应消息的一部分。自动关闭在读完最后一行后自动关闭游标。因为它是只向前的和只读的,所以不能回滚。SQL Server 只传回一个带有说明游标已关闭的最后数据集的消息。如果您正在使用只向前的快速游标,则在行数少的消息里,您可向下与同一往返行程通信。如果您有很多行,则您至少还要对每一行块支付附加开销。如果您使用只向前的快速游标,那么游标处理会更加接近默认的结果集。

上一页  5 6 7 8 9 10 

Tags:Microsoft SQL Server

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接