CIBlockElement::GetList() при указании SECTION_ID формирует запрос
...
INNER JOIN ( SEL ECT DISTINCT BSE.IBLOCK_ELEMENT_ID FR OM b_iblock_section_element BSE
INNER JOIN b_iblock_section BS ON BSE.IBLOCK_SECTION_ID = BS.ID WHERE ((BS.ID IN (83659))) )
BES ON BES.IBLOCK_ELEMENT_ID = BE.ID
...
как понимаю это сделано для поддержки множественной привязки к разделам, но часто возникает ситуация, что необходимо использовать один раздел, который обозначен в основной таблице b_iblock_element и JOIN здесь приводит к излишнему проседанию базы(+ секунды на выполнение)
есть ли способ избежать этой портянки и начать жить? сделать фильтрацию записей по IBLOCK_SECTION_ID из основной таблицы
...
INNER JOIN ( SEL ECT DISTINCT BSE.IBLOCK_ELEMENT_ID FR OM b_iblock_section_element BSE
INNER JOIN b_iblock_section BS ON BSE.IBLOCK_SECTION_ID = BS.ID WHERE ((BS.ID IN (83659))) )
BES ON BES.IBLOCK_ELEMENT_ID = BE.ID
...
как понимаю это сделано для поддержки множественной привязки к разделам, но часто возникает ситуация, что необходимо использовать один раздел, который обозначен в основной таблице b_iblock_element и JOIN здесь приводит к излишнему проседанию базы(+ секунды на выполнение)
есть ли способ избежать этой портянки и начать жить? сделать фильтрацию записей по IBLOCK_SECTION_ID из основной таблицы