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) : " ")."</td>\n";
}
echo "</tr>\n";
}
echo "</table>\n";
oci_free_statement($stid);
oci_close($conn);
?>
기타
- oci8.prefetch_lob_size 초기화 옵션.