Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Вывод информации из инфоблока. Вопрос по увеличению производительности

00 голосов
3
Добрый день!

Делаю вывод инфоблока посекционно. Приходится делать вложенный цикл следующего
вида:

Код
$rsSection = CIBlockSection::GetList(array('sort'=>'asc'),array("IBLOCK_ID"=>37,"ACTIVE"=>"Y"));

while ($arSection = $rsSection->GetNext()){

   $rsElements = CIBlockElement::GetList(array("NAME"=>"ASC"),array("IBLOCK_ID"=>37,"SECTION_ID"=>$arSection['ID']));

   while ($arElement = $rsElements->GetNextElement()){
    ......
   }
}


Работает довольно медленно - так как насколько я понимаю делается
запрос в БД на каждой итерации. Может посоветуете, куда копать чтобы ускорить?
Заранее спасибо.
спросил 19 Март, 13 от EMOrr (160 баллов)

3 Ответы

00 голосов
Воспользоваться кешированием?
http://www.1c-bitrix.ru/help/source/main/help/ru/developer/general/technology/cache.php.html

Ну или, если это позволительно, можно попробовать использовать html-кеширование
http://www.1c-bitrix.ru/blog/rsv/268.php
ответил 19 Март, 13 от sickmind (4,660 баллов)
00 голосов
Спасибо, полетело! :)
ответил 19 Март, 13 от EMOrr (160 баллов)
00 голосов
Я бы для начала записал $arSection['ID'] в массив, а потом его использовал CIBlockElement::GetList
ответил 02 Июнь, 13 от Petrelly (180 баллов)

Похожие вопросы

0 голосов
3 ответов
спросил 28 Фев, 14 от EDKA (980 баллов)
0 голосов
1 ответ
0 голосов
0 ответов
спросил 09 Окт, 13 от TeneFox (140 баллов)
0 голосов
2 ответов
спросил 11 Авг, 13 от Reydwolf (200 баллов)