在PLI / COBOL程序中可以维护多少(最大)DB2多行获取游标?

时间:2018-05-09 11:57:47

标签: db2 mainframe

作为良好性能的一部分,可以在PLI / COBOL程序中维护多少(最大)DB2多行获取游标?

我需要在PLI程序中维护4个游标,但我担心单个程序中多次获取游标的数量。

有没有其他方法来检查多行提取比普通光标更有效?我尝试了1000条记录但是我看不到运行时间的差异。

1 个答案:

答案 0 :(得分:0)

IBM published some information(PDF)关于2005年DB2 8中首次提供此功能时的多行获取性能。他们的数据没有提到给定程序中的游标数量,只提取了获取的行数

由此我推断,从性能角度来看,多行获取游标本身的数量并不值得关注。如果有人用10,000个这样的游标推动理性限制,我将不会为他们的痛苦负责。

之前链接的IBM红皮书表明,每次获取检索10行可以节省40%的CPU时间,并且每次获取检索100多行可以节省50%的CPU时间。注意事项:

  

通常使用多行提取的性能改进取决于   于:

     
      
  • 在一次提取中提取的行数
  •   
  • 提取的列数   (使用更少的列进行更多改进),数据类型和大小   列
  •   
  • 获取的复杂性。保存的固定开销不是   必须介于数据库引擎和应用程序之间   对具有较长路径的复杂SQL具有较低的百分比影响   长度。
  •   
     

如果多行提取每个语句读取更多行,则会产生   CPU时间改进,但每行多次获取10到100行后,   好处减少了。如果成本增加,效益会降低   它获得的每行一个API开销在单行语句中是100%   除以一个SQL语句中处理的行数。所以   变为10%,10行,1%,100行,0.1%,1000行,和   然后利益可以忽略不计。

红皮书也讨论了他们如何进行测试以获得他们的表现数据。简而言之,它们改变了检索的行数并重新编程了几次,这几乎是你所期望的。

相关问题