(PHP 8.2, PECL OCI8 >= 3.2)
oci_set_prefetch_lob — Establece la cantidad de datos precargados para cada CLOB o BLOB.
Establece el tamaño del búfer interno utilizado para obtener cada valor CLOB o BLOB cuando la implementación obtiene el localizador interno de la base de datos Oracle LOB después de una correcta llamada de consulta a oci_execute() y para cada solicitud de recuperación interna posterior a la base de datos. Aumentar este valor puede mejorar el rendimiento de la obtención de LOB más pequeños al reducir los viajes de ida y vuelta entre PHP y la base de datos. El uso de la memoria cambiará.
El valor afecta a las LOB devueltos como instancias OCI-Lob y también a las devueltas
mediante OCI_RETURN_LOBS
.
Llamar a la función oci_set_prefetch_lob() antes de llamar a oci_execute(). Si no se invoca, el valor de oci8.prefetch_lob_size se utilizará.
El valor de precarga de LOB solo debe establecerse con la base de datos Oracle 12.2 o posterior.
statement
Un identificador de sentencia
de OCI8 válido creado por oci_parse() y ejecutado
por oci_execute(), o un identificador de sentencia de
REF CURSOR
.
prefetch_lob_size
El número de bytes de cada LOB que se va a precargar, >= 0
Versión | Descripción |
---|---|
PECL OCI8 3.2 |
Ejemplo #1 Cambiando el valor de prefetch de LOB para una consulta
<?php
$conn = oci_connect('hr', 'welcome', 'localhost/XE');
$stid = oci_parse($conn, 'SELECT myclob FROM mytable');
oci_set_prefetch_lob($stid, 100000); // Set before calling 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) : " ")."</td>\n";
}
echo "</tr>\n";
}
echo "</table>\n";
oci_free_statement($stid);
oci_close($conn);
?>