我正在研究将带有ADO记录集和Oracle数据库的经典ASP编写的应用程序移植到PHP5和OCI8的可能性。我们有很多存储过程和查询,带有绑定变量以提高性能。
我的问题是我们使用ADO类以及EOF和BOF指标以及MoveFirst,MoveNext和MovePrevious已经变得懒惰。
我在OCI模块中找不到任何类似的功能。有希望吗?
答案 0 :(得分:0)
这超出了我的专业领域,但我认为ADO之外的等效功能是将数据集检索到数组中,然后使用标准数组导航技术,而不是特定于数据库API的功能。
如果您正在处理的数据集足够大,以至于您不希望一次加载整个数据集,那么在开始导航结果之前,您应该尝试找到一种方法来缩小查询中的结果集。 。例如,如果您发现自己正在加载结果集,那么只需转到最后一行,就可以轻松地使查询返回到最后一行。如果您发现自己正在检索结果集,然后循环(或过滤)特定行(或行集),我想您会发现让Oracle为您执行此操作会显示出更好的性能。
您需要使用数组与Oracle进行此类导航的原因是Oracle游标始终是仅向前游戏(而对于ADO,您还具有动态,键集和静态游标)。如果您真的需要能够导航整个大型结果集,那么将整个事物加载到数组中是您唯一的选择。