游标位置的重要性

每个游标都使用临时资源来保存其数据。 这些资源可以是内存、磁盘分页文件、临时磁盘文件,甚至是数据库中的临时存储。 当这些资源位于客户端计算机上时,该游标称为客户端游标。 当这些资源位于服务器上时,该游标称为服务器端游标。

客户端游标

在 ADO 中,使用 adUseClient CursorLocationEnum 调用客户端游标。使用非键集客户端游标,服务器通过网络将整个结果集发送到客户端计算机。 客户端计算机提供和管理游标和结果集所需的临时资源。 客户端应用程序可以浏览整个结果集以确定它需要哪些行。

如果静态和键集驱动的客户端游标包含太多行,它们可能会给你的工作站带来很大的负载。 虽然所有游标库都能够构建具有数千行的游标,但如果应用程序设计为获取如此大行集,那么性能可能很差。 当然,也有例外。 对于某些应用程序,大型客户端游标可能非常合适,并且性能可能不是问题。

客户端游标的一个显著优势是响应快速。 将结果集下载到客户端计算机后,浏览行非常快。 你的应用程序在使用客户端游标时通常具有更好的可伸缩性,因为游标的资源需求放在每个单独的客户端上,而不是服务器上。

服务器端游标

在 ADO 中,使用 adUseServer CursorLocationEnum 调用服务器端游标。使用服务器端游标,服务器使用服务器计算机提供的资源管理结果集。 服务器端游标仅返回网络上请求的数据。 这种类型的游标的性能有时可能优于客户端游标,尤其是在网络流量过大成为问题的情况下。

但务必要注意,服务器端游标(至少是暂时的)为每个活动客户端消耗宝贵的服务器资源。 必须相应地制定计划以确保你的服务器硬件能够管理活动客户端请求的所有服务器端游标。 此外,因为服务器端游标只提供单行访问,因此可能很慢,没有可用的批处理游标。

服务器端游标在插入、更新或删除记录时很有用。 使用服务器端游标,可以在同一连接上拥有多个活动语句。