arhip
Новичок
Вопрос по oci_set_prefetch
Была у меня на дняю дискуссия на работе и так случилось, что я полез в php/ext/oci8/oci8.c. Мало что я там понял, если чесно.
Понял только то, что есть OCI-функция OCIAttrSet(). С помощью нее можно устанавливать 2 атрибута (в данном контексте): OCI_ATTR_PREFETCH_ROWS и OCI_ATTR_PREFETCH_MEMORY.
В доке по OCI написано:
When both of these attributes are set, the OCI prefetches rows up to the OCI_ATTR_PREFETCH_ROWS limit unless the OCI_ATTR_PREFETCH_MEMORY limit is reached, in which case the OCI returns as many rows as will fit in a buffer of size OCI_ATTR_PREFETCH_MEMORY.
В oci8.c функция oci_setprefetch принимает size, который по доке обозначает кол-во строк. В теле идет вначале установка параметра OCI_ATTR_PREFETCH_MEMORY размером size*1024, а затем OCI_ATTR_PREFETCH_ROWS размером size.
И, наконец, вопрос: почему при установке OCI_ATTR_PREFETCH_MEMORY мы умножаем кол-во строк именно на 1024? Может быть нужно оставить только OCI_ATTR_PREFETCH_ROWS?
Я так понимаю, что вопрос адресован tony2001.
Была у меня на дняю дискуссия на работе и так случилось, что я полез в php/ext/oci8/oci8.c. Мало что я там понял, если чесно.
Понял только то, что есть OCI-функция OCIAttrSet(). С помощью нее можно устанавливать 2 атрибута (в данном контексте): OCI_ATTR_PREFETCH_ROWS и OCI_ATTR_PREFETCH_MEMORY.
В доке по OCI написано:
When both of these attributes are set, the OCI prefetches rows up to the OCI_ATTR_PREFETCH_ROWS limit unless the OCI_ATTR_PREFETCH_MEMORY limit is reached, in which case the OCI returns as many rows as will fit in a buffer of size OCI_ATTR_PREFETCH_MEMORY.
В oci8.c функция oci_setprefetch принимает size, который по доке обозначает кол-во строк. В теле идет вначале установка параметра OCI_ATTR_PREFETCH_MEMORY размером size*1024, а затем OCI_ATTR_PREFETCH_ROWS размером size.
И, наконец, вопрос: почему при установке OCI_ATTR_PREFETCH_MEMORY мы умножаем кол-во строк именно на 1024? Может быть нужно оставить только OCI_ATTR_PREFETCH_ROWS?
Я так понимаю, что вопрос адресован tony2001.