| From: | Steve Adams |
| Date: | 13-Oct-2001 14:17 |
| Subject: | Twice as many fetch operations in Oracle 8i than in Oracle 7.3 |
|
|
This is not a bug; It is caused by the OCI prefetching feature that was introduced with Oracle 8.0. You can avoid it by writing your application in OCI and setting OCI_ATTR_PREFETCH_ROWS to zero. Otherwise, if you work with a higher level programmatic interface that is built on OCI you will probably get the default, which is to prefetch one row. In general this OCI prefetching is good for performance because is saves client/server round-trips. However, if you're working in OCI directly and you've got a batch application that does lots of single row selects, then you may do better to disable prefetching. A performance test would be needed to validate that.
|
![]() |
I am experiencing the following strange situation: In Oracle 7.3.4 selecting a row from a table results in one parse, one execute and one fetch operation. In Oracle 8.1.7 (same platform) the same select requires one parse, one execute and two fetch operations. I have reproduced the problem just using
select * from dual;
This turns into a performance problem when it comes to a batch job that issues say a couple of hundred of selects.
So far Oracle Support is uncertain and moving slowly on this one. Are you aware of someone experiencing this problem, and if yes, do you know whether this is a "feature" or a bug and would there be any workaround we could use? |