Всем доброго времени суток столкнулся с проблемой идет сильная нагрузка на базу данных ниже запрос, как его можно оптимизировать для нормально работы сайта:
SEL ECT DISTINCT AS ID,
BS.CODE AS CODE,
AS NAME,
BS.DEPTH_LEVEL AS DEPTH_LEVEL,
BS.DESCRIPTION AS DESCRIPTION,
BS.DESCRIPTION_TYPE AS DESCRIPTION_TYPE,COUNT(DISTINCT ) as ELEMENT_CNT
FR OM b_iblock_section BS
INNER JOIN b_iblock B ON BS.IBLOCK_ID =
INNER JOIN b_iblock_section BSTEMP ON BSTEMP.IBLOCK_ID = BS.IBLOCK_ID
LEFT JOIN b_iblock_section_element BSE ON BSE.IBLOCK_SECTION_ID=
LEFT JOIN b_iblock_element BE ON (BSE.IBLOCK_ELEMENT_ID=
AND ((BE.WF_STATUS_ID=1 AND BE.WF_PARENT_ELEMENT_ID IS NULL )
AND BE.IBLOCK_ID = BS.IBLOCK_ID
)
)
WHERE 1=1
AND BSTEMP.IBLOCK_ID = BS.IBLOCK_ID
AND BSTEMP.LEFT_MARGIN >= BS.LEFT_MARGIN
AND BSTEMP.RIGHT_MARGIN <= BS.RIGHT_MARGIN
AND ((((BS.IBLOCK_ID = '7'))))
AND (((( = '7'))))
AND ((
IN (
SEL ECT IBLOCK_ID
FR OM b_iblock_group IBG
WHERE IBG.GROUP_ID IN (2)
AND IBG.PERMISSION >= 'R'
AND (IBG.PERMISSION='X' OR B.ACTIVE='Y')
)
OR (B.RIGHTS_MODE = 'E' AND EXISTS (
SELECT SR.SECTION_ID
FR OM b_iblock_section_right SR
INNER JOIN b_iblock_right IBR ON = SR.RIGHT_ID
INNER JOIN b_user_access UA ON UA.ACCESS_CODE = IBR.GROUP_CODE AND UA.USER_ID = 0
WH ERE SR.SECTION_ID =
AND IBR.OP_SREAD = 'Y'
))
))
GROUP BY ,
SEL ECT DISTINCT AS ID,
BS.CODE AS CODE,
AS NAME,
BS.DEPTH_LEVEL AS DEPTH_LEVEL,
BS.DESCRIPTION AS DESCRIPTION,
BS.DESCRIPTION_TYPE AS DESCRIPTION_TYPE,COUNT(DISTINCT ) as ELEMENT_CNT
FR OM b_iblock_section BS
INNER JOIN b_iblock B ON BS.IBLOCK_ID =
INNER JOIN b_iblock_section BSTEMP ON BSTEMP.IBLOCK_ID = BS.IBLOCK_ID
LEFT JOIN b_iblock_section_element BSE ON BSE.IBLOCK_SECTION_ID=
LEFT JOIN b_iblock_element BE ON (BSE.IBLOCK_ELEMENT_ID=
AND ((BE.WF_STATUS_ID=1 AND BE.WF_PARENT_ELEMENT_ID IS NULL )
AND BE.IBLOCK_ID = BS.IBLOCK_ID
)
)
WHERE 1=1
AND BSTEMP.IBLOCK_ID = BS.IBLOCK_ID
AND BSTEMP.LEFT_MARGIN >= BS.LEFT_MARGIN
AND BSTEMP.RIGHT_MARGIN <= BS.RIGHT_MARGIN
AND ((((BS.IBLOCK_ID = '7'))))
AND (((( = '7'))))
AND ((
IN (
SEL ECT IBLOCK_ID
FR OM b_iblock_group IBG
WHERE IBG.GROUP_ID IN (2)
AND IBG.PERMISSION >= 'R'
AND (IBG.PERMISSION='X' OR B.ACTIVE='Y')
)
OR (B.RIGHTS_MODE = 'E' AND EXISTS (
SELECT SR.SECTION_ID
FR OM b_iblock_section_right SR
INNER JOIN b_iblock_right IBR ON = SR.RIGHT_ID
INNER JOIN b_user_access UA ON UA.ACCESS_CODE = IBR.GROUP_CODE AND UA.USER_ID = 0
WH ERE SR.SECTION_ID =
AND IBR.OP_SREAD = 'Y'
))
))
GROUP BY ,