PHP Conference Nagoya 2025

oci_set_prefetch_lob

(PHP 8.2, PECL OCI8 >= 3.2)

oci_set_prefetch_lobУстанавливает объём данных, предварительно выбираемых для каждого CLOB или BLOB

Описание

oci_set_prefetch_lob(resource $statement, int $prefetch_lob_size): bool

Устанавливает размер внутреннего буфера, используемого для выборки каждого значения CLOB или BLOB, когда реализация получает внутренний локатор LOB Oracle из базы данных после успешного вызова запроса к функции oci_execute() и для каждого последующего внутреннего запроса выборки в базу данных. Увеличение этого значения может улучшить производительность выборки меньших LOB за счёт сокращения круговых обходов между PHP и базой данных. Использование памяти изменится.

Значение влияет на большие объекты, возвращаемые как экземпляры OCILob, а также на те, которые возвращаются с использованием OCI_RETURN_LOBS.

Функция oci_set_prefetch_lob() вызывается до вызова oci_execute(). Если функция не была вызвана, используется значение oci8.prefetch_lob_size.

Значение предварительной выборки LOB следует устанавливать только в Oracle Database 12.2 или новее.

Список параметров

statement

Корректный идентификатор выражения OCI8, полученный из функции oci_parse() и исполненный функцией oci_execute(), или идентификатор выражения REF CURSOR.

prefetch_lob_size

Число байтов каждого LOB, которое нужно предварительно выбрать, >= 0.

Возвращаемые значения

Функция возвращает true в случае успешного выполнения или false, если возникла ошибка.

Примеры

Пример #1 Изменение значения предварительной выборки LOB для запроса

<?php

$conn
= oci_connect('hr', 'welcome', 'localhost/XE');

$stid = oci_parse($conn, 'SELECT myclob FROM mytable');
oci_set_prefetch_lob($stid, 100000); // Установка значения перед вызовом oci_execute()
oci_execute($stid);

echo
"<table border='1'>\n";
while (
$row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS+OCI_RETURN_LOBS)) {
echo
"<tr>\n";
foreach (
$row as $item) {
echo
" <td>".($item !== null ? htmlentities($item, ENT_QUOTES) : "&nbsp;")."</td>\n";
}
echo
"</tr>\n";
}
echo
"</table>\n";

oci_free_statement($stid);
oci_close($conn);

?>

Смотрите также

Добавить

Примечания пользователей

Пользователи ещё не добавляли примечания для страницы
To Top