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

oci_execute()에 대한 성공적인 쿼리 호출 후 및 데이터베이스에 대한 각 후속 내부 페치 요청에 대해 구현이 데이터베이스에서 내부 Oracle LOB 로케이터를 가져올 때 각 CLOB 또는 BLOB 값을 페치하는 데 사용되는 내부 버퍼 크기를 설정합니다. 이 값을 높이면 PHP와 데이터베이스 간의 왕복을 줄여 더 작은 LOB를 가져오는 성능을 향상시킬 수 있습니다. 메모리 사용량이 변경됩니다.

값은 OCILob 인스턴스로 반환된 LOB와 OCI_RETURN_LOBS를 사용하여 반환된 LOB에도 영향을 줍니다.

oci_execute()를 호출하기 전에 oci_set_prefetch_lob()을 호출하십시오. 호출되지 않으면 oci8.prefetch_lob_size 값이 사용됩니다.

LOB 프리페치 값은 Oracle Database 12.2 이상에서만 설정해야 합니다.


매개변수

statement
oci_parse()에 의해 생성되고 oci_execute()에 의해 실행되는 유효한 OCI8 문 식별자 또는 REF CURSOR 문 식별자.
prefetch_lob_size
프리페치될 각 LOB의 바이트 수, >= 0

반환 값

성공하면 true를, 실패하면 false를 반환합니다.


변경 로그

버전설명
PECL OCI8 3.2

Examples

예제 #1 쿼리에 대한 LOB 프리페치 값 변경

                  
<?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) : "&nbsp;")."</td>\n";
    }
    echo "</tr>\n";
}
echo "</table>\n";

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

?>
                    
                  

기타