21.在ESQL/C中有效使用滚动游标.docVIP

  • 2
  • 0
  • 约1.19千字
  • 约 9页
  • 2018-02-24 发布于河南
  • 举报
21.在ESQL/C中有效使用滚动游标

第二十一章 在ESQL/C中有效使用滚动游标 本章讨论在使用滚动游标时遇到的问题。将学习如何使滚动游标较少地占用临时表空间,以及如何克服同陈旧数据有关的问题。 为了浏览多个记录的集合,滚动游标创建了一个临时表,该临时表中存放了所有满足SELECT语句的记录,该查询语句同滚动游标相关联。 DECLARE语句把一个名字同SELECT语句相关联,它需要的内存是非常少的。 OPEN语句将建立一个内存缓冲区,需要使用该该缓冲区把记录从数据库送往应用程序,缓冲区的大小是依赖于机器的。 FETCH语句同滚动游标一起使用时,将获取所有满足SELECT语句的记录。在上面的例子里,这将是customer表中的所有记录。这些记录写到磁盘的一个临时表中,所有其它的FECTH操作从临时表中获取它们要检索的记录。 CLOSE语句释放缓冲区和删除临时表。 使用滚动游标时实际上存在两个问题:临时表可能增长得非常大,以及表中的数据可能过期或称之为陈旧。 所有满足SELECT语句的记录在检索时将被写到临时表中,这可能使得这些临时表变得非常的大,造成存储问题。例如,客户表花费134个字节存放一个记录,如果在客户表中有20,000个记录,而且SELECT了所有的记录,临时表将占用超过2兆字节的空间来存放检索的记录。 滚动游标还有第二个问题。一旦记录读入到临时表中,所有后续的FETCH操作从该临时表获取记录。这意味着如果

文档评论(0)

1亿VIP精品文档

相关文档