- Модуль: perfmon
- Путь к файлу: ~/bitrix/modules/perfmon/classes/general/keeper.php
- Класс: CPerfomanceKeeper
- Вызов: CPerfomanceKeeper::saveQueries
static function saveQueries($HIT_ID, $COMP_ID, $arQueryDebug, &$NN)
{
global $DB;
foreach ($arQueryDebug as $arQueryInfo)
{
self::findCaller($arQueryInfo["TRACE"], $module_id, $comp_id);
$arFields = array(
"HIT_ID" => $HIT_ID,
"COMPONENT_ID" => $COMP_ID,
"NN" => ++$NN,
"QUERY_TIME" => $arQueryInfo["TIME"],
"NODE_ID" => intval($arQueryInfo["NODE_ID"]),
"MODULE_NAME" => $module_id,
"COMPONENT_NAME" => $comp_id,
"SQL_TEXT" => $arQueryInfo["QUERY"],
);
$SQL_ID = $DB->Add("b_perf_sql", $arFields, array("SQL_TEXT"));
if ($SQL_ID && COption::GetOptionString("perfmon", "sql_backtrace") === "Y")
{
$pl = mb_strlen(rtrim($_SERVER["DOCUMENT_ROOT"], "/"));
foreach ($arQueryInfo["TRACE"] as $i => $arCallInfo)
{
$DB->Add("b_perf_sql_backtrace", array(
"ID" => 1,
"SQL_ID" => $SQL_ID,
"NN" => $i,
"FILE_NAME" => mb_substr($arCallInfo["file"], $pl),
"LINE_NO" => $arCallInfo["line"],
"CLASS_NAME" => $arCallInfo["class"],
"FUNCTION_NAME" => $arCallInfo["function"],
));
}
}
}
}