Подскажите пожалуйста, с чем могут быть связаны тормоза?
ИБ "CATALOG_IBLOCK_ID" имеет примерно 3000 элементов и около 200 свойств (символьные коды всех свойств уникальны).
Из этого информационного блока выбираю значения обычного текстового свойства с символьным кодом "ARTICLE".[CODE] $start = time();
$arFiler = array(
"IBLOCK_ID" => CATALOG_IBLOCK_ID,
"SECTION_ID" => array ("1", "2","3"),
"ACTIVE" => "Y",
"SHOW_HISTORY" => "Y",
"!PROPERTY_ARTICLE_VALUE" => false
);
$arSelect = array("IBLOCK_ID", "ID", "IBLOCK_SECTION_ID", "PROPERTY_ARTICLE");
$dbCatItems = CIBlockElement::GetList(
array("IBLOCK_SECTION_ID" => "ASC"),
$arFiler,
false,
false,
$arSelect
);
echo "
Block 1: " . (time() - $start) . "
"; // УДАЛИТЬ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
while ($arCatItem = $dbCatItems->Fetch()) {
}
echo "
Block 2: " . (time() - $start) . "
"; // УДАЛИТЬ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
[/CODE]Значения выбираются нормально, но происходит это очень медленно. Речь про подготовку к выборке: команда "$dbCatItems = CIBlockElement::GetList" выполняется около 150 секунд. А сам перебор "while ($arCatItem = $dbCatItems->Fetch())" занимает не более 1 секунды. Если сделать повторный запрос, то вместо 150 секунд уже 0-1 секунда (данные я так понимаю берутся из кэша). Но стоит изменить что-либо [U]в абсолютно любом инфоблоке[/U], все повторяется заново.
Я было подумал, что это может быть связано с тем что используется символьный код, поменял его на ID и вместо 150 секунд запрос стал выполняться 5-6 секунд. Очень странно, ведь, если запросы по ID свойства выполняются настолько быстрее, то почему об этом ничего не сказано в документации...
Попробовал заменить ID свойства "ARTICLE" на символьные коды [U]аналогичных[/U] свойств, запросы выполняются 5-10 секунд вместо 150, без разницы что использовать ID, либо символьный код свойства. Под аналогичностью понимается то, что другие свойства тоже текстовые, их значения заполнены так же для всех элементов и они примерно такие же уникальные как и артикул.
Что это может быть? Не могу найти абсолютно никакого логического объяснения...