1

我正在研究将带有 ADO 记录集和 Oracle 数据库的经典 ASP 编写的应用程序移植到 PHP5 和 OCI8 的可能性。我们有很多存储过程和带有绑定变量的查询以提高性能。

我的问题是我们已经因为使用 ADO 类和 EOF 和 BOF 指示器以及 MoveFirst、MoveNext 和 MovePrevious 变得懒惰。

我在 OCI 模块中找不到任何类似的功能。有希望吗?

4

1 回答 1

0

这超出了我的专业领域,但我认为 ADO 之外的等效功能是将数据集检索到数组中,然后使用标准数组导航技术,而不是特定于数据库 API 的功能。


如果您正在处理的数据集足够大以至于您不想一次加载整个数据,那么您应该在开始导航结果之前尝试找到一种方法来缩小查询中的结果集。例如,如果您发现自己加载了一个结果集,然后只是转到最后一行,那么很容易让查询首先返回最后一行。如果您发现自己检索结果集,然后循环(或过滤)特定行(或一组行),我认为您会发现让 Oracle 为您执行此操作将显示出明显更好的性能。

在 Oracle 中需要使用数组进行这种导航的原因是 Oracle 游标始终是只向前的(而在 ADO 中,您也有动态、键集和静态游标)。如果您确实需要能够导航整个大型结果集,则将整个内容加载到数组中是您唯一的选择。

于 2010-07-15T14:09:55.007 回答