[QUOTE]
Дмитрий Тамахов пишет:
Вопрос: можно ли сократить время запросов? Как можно оптимизировать фильтрацию? Или при работе через API не избежать кучи джоинов в запросах и такого времени исполнения? Почему при фильтрации по 4м и 5ти параметрам такая большая разница во времени выполнения запроса?
[/QUOTE]фильтровать по айдишникам свойств и значений, тогда запросы более менее нормальные
[CODE]FROM
b_iblock B
INNER JOIN b_lang L ON
B.LID = L.LID
INNER JOIN b_iblock_element BE ON
BE.IBLOCK_ID = B.ID
INNER JOIN b_iblock_element_prop_s3 FPS0 ON
FPS0.IBLOCK_ELEMENT_ID = BE.ID
LEFT JOIN b_iblock_property_enum FPEN0 ON
FPEN0.PROPERTY_ID = 22
AND FPS0.PROPERTY_22 = FPEN0.ID
INNER JOIN (
SELECT DISTINCT
BSE.IBLOCK_ELEMENT_ID
FROM
b_iblock_section_element BSE
INNER JOIN b_iblock_section BSubS ON
BSE.IBLOCK_SECTION_ID = BSubS.ID
INNER JOIN b_iblock_section BS ON
(
BSubS.IBLOCK_ID = BS.IBLOCK_ID
AND BSubS.LEFT_MARGIN >= BS.LEFT_MARGIN
AND BSubS.RIGHT_MARGIN <= BS.RIGHT_MARGIN
)
WHERE
(
BS.ID IN (1)
)
) BES ON
BES.IBLOCK_ELEMENT_ID = BE.ID
WHERE
1 = 1
AND (
(BE.IBLOCK_ID = '3')
AND (BE.ACTIVE = 'Y')
AND (FPS0.PROPERTY_17 = '14')
AND (FPS0.PROPERTY_7 = '63')
AND (FPS0.PROPERTY_13 = '66')
AND (FPS0.PROPERTY_3 = '62')
AND (FPS0.PROPERTY_11 = '53')
AND (FPS0.PROPERTY_10 = '65')
AND (FPS0.PROPERTY_12 = '46')
AND (FPS0.PROPERTY_2 = '67')
AND (FPS0.PROPERTY_16 = '57')
AND (FPS0.PROPERTY_8 = '64')
AND (FPS0.PROPERTY_14 = '55')
AND (FPS0.PROPERTY_9 = '60')
)
AND (
BE.WF_STATUS_ID = 1
AND BE.WF_PARENT_ELEMENT_ID IS NULL
)
[/CODE]~0.000056c