在AIX平台与 Oracle9 下,使用C++程序通过OCCI访问数据库,但统计代码中具体语句的执行时间发现,rset = agg_sel->executeQuery() 这一句执行很快,但 rset->next()这一句耗费了大量的时间,二者不是一个数量级。
现在的问题是,为什么会有这样的情况。可否有高手解释一下,上面两个函数调用的过程中所发生的细节?
在下先行谢过!

解决方案 »

  1.   

    是每次调用next都慢。还是某一次慢,记录的条数是多少呀,有没有分页。
      

  2.   

    SQL语句里的条件是 where rowid = 'rowid',其中的 rowid 是记录插入到表里的时候获取并保存下来的。这样的条件,选出来的应该中有一条记录,应该是 executeQuery()的时候已经得到了记录,next的时候应该不会再跟数据库交互的吧?
    最奇怪的地方是,这个程序在测试主机上运行的时候正常的,在正式环境下,next的时候耗费的时间是测试主机上的近千倍。