uawdijnntqw1x1x1
IP : 18.223.172.149
Hostname : axolotl
Kernel : Linux axolotl 4.9.0-13-amd64 #1 SMP Debian 4.9.228-1 (2020-07-05) x86_64
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,
OS : Linux
PATH:
/
var
/
www
/
axolotl
/
data
/
www
/
ekb.axolotls.ru
/
bitrix
/
modules
/
perfmon
/
classes
/
mysql
/
sql.php
/
/
<?php /* if(!defined('LOG_FILENAME')) define('LOG_FILENAME', $_SERVER["DOCUMENT_ROOT"]."/debug.trc"); if(CModule::IncludeModule('perfmon')) AddMessage2Log(CPerfomanceSQL::_console_explain($strSql)); */ class CPerfomanceSQL extends CAllPerfomanceSQL { public static function _console_explain($strSQL) { global $DB; $rs = $DB->Query("explain ".$strSQL); $arResult = array(); while ($ar = $rs->Fetch()) $arResult[] = $ar; $arColumnW = array(); $arColumns = array('id', 'select_type', 'table', 'type', 'possible_keys', 'key_len', 'ref', 'rows', 'Extra'); foreach ($arColumns as $name) $arColumnW[$name] = mb_strlen($name); foreach ($arResult as $i => $ar) { foreach ($arColumns as $name) { if ($name == 'possible_keys') { $l = 0; $arResult[$i][$name] = explode(',', $ar[$name]); foreach ($arResult[$i][$name] as $j => $key) if ($arResult[$i]['key'] == $key && $key != '') $arResult[$i][$name][$j] = '*'.$arResult[$i][$name][$j]; else $arResult[$i][$name][$j] = ' '.$arResult[$i][$name][$j]; foreach ($arResult[$i][$name] as $key) if (mb_strlen($key) > $l) $l = mb_strlen($key); if ($arColumnW[$name] < $l) $arColumnW[$name] = $l; } elseif ($name == 'Extra') { $l = 0; $arResult[$i][$name] = array_map('trim', explode(';', $ar[$name])); foreach ($arResult[$i][$name] as $key) if (mb_strlen($key) > $l) $l = mb_strlen($key); if ($arColumnW[$name] < $l) $arColumnW[$name] = $l; } elseif ($arColumnW[$name] < mb_strlen($ar[$name])) $arColumnW[$name] = mb_strlen($ar[$name]); } } $arTable = array(); $arTable['headers'] = array(); foreach ($arColumns as $name) $arTable['headers'][] = str_pad($name, $arColumnW[$name], ' ', STR_PAD_RIGHT); $arTable['delim'] = array(); foreach ($arColumns as $name) $arTable['delim'][] = str_repeat('-', $arColumnW[$name]); $i = 0; $j = 0; while ($i < count($arResult)) { $arTable[$j] = array(); $bNext = true; foreach ($arColumns as $name) { if ($name == 'key_len' || $name == 'rows') $pad = STR_PAD_LEFT; else $pad = STR_PAD_RIGHT; if (is_array($arResult[$i][$name])) { if (count($arResult[$i][$name]) > 1) { $arTable[$j][] = str_pad(array_shift($arResult[$i][$name]), $arColumnW[$name], ' ', $pad); $bNext = false; } else { $arTable[$j][] = str_pad(array_shift($arResult[$i][$name]), $arColumnW[$name], ' ', $pad); $arResult[$i][$name] = ''; } } else { $arTable[$j][] = str_pad($arResult[$i][$name], $arColumnW[$name], ' ', $pad); $arResult[$i][$name] = ''; } } if ($bNext) $i++; $j++; } $result = $strSQL."\n"; foreach ($arTable as $row) $result .= implode('|', $row)."\n"; $result .= implode('-', $arTable['delim'])."\n\n"; return $result; } public static function Clear() { global $DB; $res = $DB->Query("TRUNCATE TABLE b_perf_sql_backtrace"); if ($res) $res = $DB->Query("TRUNCATE TABLE b_perf_index_suggest_sql"); if ($res) $res = $DB->Query("TRUNCATE TABLE b_perf_sql"); return $res; } }
/var/www/axolotl/data/www/ekb.axolotls.ru/bitrix/modules/perfmon/classes/mysql/sql.php