/** @global CUser $USER */ require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/perfmon/include.php"; require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/perfmon/prolog.php"; IncludeModuleLangFile(__FILE__); $RIGHT = $APPLICATION->GetGroupRight("perfmon"); if ($RIGHT == "D" || $DB->type !== "MYSQL") { $APPLICATION->AuthForm(GetMessage("ACCESS_DENIED")); } $sTableID = "tbl_perfmon_index_list"; $oSort = new CAdminSorting($sTableID, "TABLE_NAME", "asc"); $lAdmin = new CAdminList($sTableID, $oSort); $go = false; if ($lAdmin->GroupAction()) { switch ($_REQUEST['action']) { case "analyze_start": CPerfomanceIndexSuggest::Clear(); $last_id = 0; $go = true; $_SESSION["queries"] = 0; break; case "analyze_cont": $etime = time() + 5; $last_id = intval($_REQUEST["last_id"]); $sql_cache = array(); while (time() < $etime) { $rsSQL = CPerfomanceSQL::GetList(array("ID", "SQL_TEXT", "QUERY_TIME"), array(">ID" => $last_id), array("ID" => "ASC"), false, array("nTopCount" => 100)); while ($arSQL = $rsSQL->Fetch()) { $_SESSION["queries"]++; $go = true; $sql_md5 = md5(CPerfQuery::remove_literals($arSQL["SQL_TEXT"])); //Check if did it already on previous steps