array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'ru', ), 'this' => array ( 0 => 'function.oci-set-db-operation.php', 1 => 'oci_set_db_operation', ), 'up' => array ( 0 => 'ref.oci8.php', 1 => 'OCI8 Функции', ), 'prev' => array ( 0 => 'function.oci-set-client-info.php', 1 => 'oci_set_client_info', ), 'next' => array ( 0 => 'function.oci-set-edition.php', 1 => 'oci_set_edition', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'ru', 'path' => 'reference/oci8/functions/oci-set-db-operation.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 7 >= 7.2.14, PHP 8, PHP 7 >= 7.3.1, PHP 8, PECL OCI8 >= 2.2.0)
oci_set_db_operation — Задаёт операцию базы данных
Устанавливает DBOP для трассировки Oracle.
Имя операции базы данных регистрируется в базе данных при следующем "циклическом пути" (round-trip) из PHP в базу данных, как правило, при выполнении выражения SQL.
Операция базы данных может впоследствии запрашиваться из
представлений администрирования базы данных, таких как V$SQL_MONITOR
.
Функция oci_set_db_operation() доступна, если oci8 использует клиентские библиотеки Oracle версии 12 (или новее) и базу данных Oracle 12 (или новее).
connection
Идентификатор соединения Oracle, который возвращают функции oci_connect(), oci_pconnect() или oci_new_connect().
action
Пользовательская строка.
Возвращает true
в случае успешного выполнения или false
, если возникла ошибка.
Пример #1 Установка DBOP
<?php
$c = oci_connect('hr', 'welcome', 'localhost/XE');
// Записать операцию
oci_set_db_operation($c, 'main query');
// Код, вызывающий циклический путь, например запрос:
$s = oci_parse($c, 'select * from dual');
oci_execute($s);
oci_fetch_all($s, $res);
sleep(30);
?>
// Во время выполнения скрипта администратор может видеть выполняемые операции // с базой данных. sqlplus system/welcome SQL> select dbop_name from v$sql_monitor;
Ряд OCI8-функции вызывают полное сканирование таблицы (roundtrip). Функции не сканируют таблицы полностью для тех запросов, в которых включено кеширование результатов в базе данных.