其次,服务器游标可以简化数据的操作。如服务器游标允许应用程序对于提取的行执行定位更新或者删除,而不需要确定行的源表与主键。如果行数据从提取到请求更新的这一段时间内被用户更改了,则数据库服务器也会检测出这个问题并采用相关的措施来防治丢失更新。
不过除非有特殊的需要,否则的话,并不建议在数据库与应用程序的开发过程中采用游标技术。因为游标技术会带来一些额外的开销与负面作用。服务器游标技术需要付出一定的代价,比较天下没有免费的午餐。如给定查询的所有结果都要在应用程序使用,则服务器游标总是比默认结果集要耗费更多的资源。换句话说,如果应用程序的查询结果,用户都要导出来使用。此时,若采用游标技术,则就不是一个很好的选择,因为其会比默认结果集耗费更多的资源与时间。
默认结果集始终只需要在服务器端与客户端往返一次。但是,每次使用服务器游标调用提取行块操作便导致一次往返。但纪录量越多,则其往返次数也会越多。另外,服务器游标也会消耗服务器上的资源。为此,只有在应用程序需要这些服务器游标时才使用这些服务器结果集或者可更新的结果集,则使用服务器游标技术提取大小适中的块。
在实际工作中,有些信息化管理系统就提供了一些诸如应用程序之类的工具,来帮助应用程序是否需要采用游标技术。如他们会在某个窗口或者报表的自定义平台上,提供一个是否需要采用游标技术的按钮(不同应用程序提供的按钮名字不同,但是作用类似)。当系统维护人员认为表中记录量比较大,利用游标技术可以改善查询效率时,只需要选择这个按钮即可。如此的话,应用程序就不会从数据库服务器中一次性提取所有的行。
而有些信息化管理软件,则会自动判断。如应用程序一次查询其返回结果超过一定的行时,其就会利用游标技术来改善查询性能。如到返回的记录超过一屏幕行时,就会自动采用游标技术。这也是一种不错的设计方案。
从上面的分析中,我们可以看出,在应用程序设计的时候,若能够适当考虑数据库性能方面的内容,那么无论是应用程序性能,还是数据库性能,都能够都到有效的改善。毕竟,如果数据库性能不好,应用程序的性能无路如何都提不上去。故采用高效数据检索,可以同时优化数据库服务器与应用程序的性能。