• Модуль: perfmon
  • Путь к файлу: ~/bitrix/modules/perfmon/classes/general/query_stat.php
  • Класс: CPerfQueryStat
  • Вызов: CPerfQueryStat::IsSelective
static function IsSelective($table, $columns)
{
	global $DB;

	$arColumns = explode(",", $columns);
	if (count($arColumns) != 1)
		return false;

	$arColumns = array_map(array($DB, 'ForSQL'), $arColumns);
	$rs = $DB->Query("
		select max(TABLE_ROWS) TABLE_ROWS, max(COLUMN_ROWS) COLUMN_ROWS
		from b_perf_tab_column_stat
		where TABLE_NAME = '".$DB->ForSQL($table)."'
		AND COLUMN_NAME in ('".implode("','", $arColumns)."')
	");
	$ar = $rs->Fetch();
	if ($ar && $ar["TABLE_ROWS"] > 0)
		return $ar["COLUMN_ROWS"] / $ar["TABLE_ROWS"] > 0.05;
	else
		return false;
}