Здравствуйте.
При мониторенге производительности быил выявлены медленые запросы к БД и из них большенство хитов это картинки.
Как найти какой именно метод так нагружает БД?
Приведу сам проблемный запрос:
При мониторенге производительности быил выявлены медленые запросы к БД и из них большенство хитов это картинки.
Как найти какой именно метод так нагружает БД?
Приведу сам проблемный запрос:
| Код |
|---|
SEL ECT COUNT(DISTINCT BE.ID) as C FR OM 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 WHERE 1 = 1 AND (( EXISTS ( SEL ECT IBLOCK_ID FR OM b_iblock_site WHERE IBLOCK_ID = B.ID AND (SITE_ID = 's1') ) ) AND ( ( BE.ACTIVE_TO >= now() OR BE.ACTIVE_TO IS NULL ) AND (BE.ACTIVE_FROM <= now() OR BE.ACTIVE_FROM IS NULL ) ) AND (BE.ACTIVE = 'Y') AND (BE.IBLOCK_ID = '2')) AND (BE.WF_STATUS_ID = 1 AND BE.WF_PARENT_ELEMENT_ID IS NULL ) AND ( B.ID IN ( SELECT IBLOCK_ID FR OM b_iblock_group IBG WH ERE 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 ER.ELEMENT_ID FR OM b_iblock_element_right ER INNER JOIN b_iblock_right IBR ON IBR.ID = ER.RIGHT_ID INNER JOIN b_user_access UA ON UA.ACCESS_CODE = IBR.GROUP_CODE AND UA.USER_ID = 0 WH ERE ER.ELEMENT_ID = BE.ID AND IBR.OP_EREAD = 'Y' ) ) ) |
Тут много вложенных уловий, как можно это сократить?