LINUX.ORG.RU

Re: [продакшн][говнокод] а почему он падает?

для Ъ:

SELECT DISTINCT BE.ID as ID,BE.NAME as NAME,BE.CODE as CODE,BE.IBLOCK_ID as
IBLOCK_ID,BE.IBLOCK_SECTION_ID as IBLOCK_SECTION_ID,B.DETAIL_PAGE_URL as
DETAIL_PAGE_URL,BE.DETAIL_TEXT as DETAIL_TEXT,BE.DETAIL_TEXT_TYPE as
DETAIL_TEXT_TYPE,BE.DETAIL_PICTURE as DETAIL_PICTURE,BE.PREVIEW_TEXT as
PREVIEW_TEXT,BE.PREVIEW_TEXT_TYPE as PREVIEW_TEXT_TYPE,BE.PREVIEW_PICTURE as
PREVIEW_PICTURE,L.DIR as LANG_DIR,BE.XML_ID as EXTERNAL_ID,B.IBLOCK_TYPE_ID as
IBLOCK_TYPE_ID,B.CODE as IBLOCK_CODE,B.XML_ID as IBLOCK_EXTERNAL_ID 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_section_element BSE ON
BSE.IBLOCK_ELEMENT_ID = BE.ID 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) INNER JOIN b_iblock_property FP1 ON
FP1.IBLOCK_ID=B.ID AND FP1.CODE='code2' INNER JOIN b_iblock_element_property
FPV1 ON FP1.ID=FPV1.IBLOCK_PROPERTY_ID AND FPV1.IBLOCK_ELEMENT_ID=BE.ID INNER
JOIN b_iblock_property FP2 ON FP2.IBLOCK_ID=B.ID AND FP2.CODE='code3' INNER
JOIN b_iblock_element_property FPV2 ON FP2.ID=FPV2.IBLOCK_PROPERTY_ID AND
FPV2.IBLOCK_ELEMENT_ID=BE.ID INNER JOIN b_iblock_property FP3 ON
FP3.IBLOCK_ID=B.ID AND FP3.CODE='code4' INNER JOIN b_iblock_element_property
FPV3 ON FP3.ID=FPV3.IBLOCK_PROPERTY_ID AND FPV3.IBLOCK_ELEMENT_ID=BE.ID INNER
JOIN b_iblock_property FP4 ON FP4.IBLOCK_ID=B.ID AND FP4.CODE='code5' INNER
JOIN b_iblock_element_property FPV4 ON FP4.ID=FPV4.IBLOCK_PROPERTY_ID AND
FPV4.IBLOCK_ELEMENT_ID=BE.ID INNER JOIN b_iblock_property FP5 ON
FP5.IBLOCK_ID=B.ID AND FP5.CODE='code7' INNER JOIN b_iblock_element_property
FPV5 ON FP5.ID=FPV5.IBLOCK_PROPERTY_ID AND FPV5.IBLOCK_ELEMENT_ID=BE.ID INNER
JOIN b_iblock_property FP6 ON FP6.IBLOCK_ID=B.ID AND FP6.CODE='code9' INNER
JOIN b_iblock_element_property FPV6 ON FP6.ID=FPV6.IBLOCK_PROPERTY_ID AND
FPV6.IBLOCK_ELEMENT_ID=BE.ID INNER JOIN b_iblock_property FP7 ON
FP7.IBLOCK_ID=B.ID AND FP7.CODE='code12' INNER JOIN b_iblock_element_property
FPV7 ON FP7.ID=FPV7.IBLOCK_PROPERTY_ID AND FPV7.IBLOCK_ELEMENT_ID=BE.ID INNER
JOIN b_iblock_property FP8 ON FP8.IBLOCK_ID=B.ID AND FP8.CODE='code15' INNER
JOIN b_iblock_element_property FPV8 ON FP8.ID=FPV8.IBLOCK_PROPERTY_ID AND
FPV8.IBLOCK_ELEMENT_ID=BE.ID INNER JOIN b_iblock_property FP9 ON
FP9.IBLOCK_ID=B.ID AND FP9.CODE='code16' INNER JOIN b_iblock_element_property
FPV9 ON FP9.ID=FPV9.IBLOCK_PROPERTY_ID AND FPV9.IBLOCK_ELEMENT_ID=BE.ID INNER
JOIN b_iblock_property FP10 ON FP10.IBLOCK_ID=B.ID AND FP10.CODE='code18'
INNER JOIN b_iblock_element_property FPV10 ON FP10.ID=FPV10.IBLOCK_PROPERTY_ID
AND FPV10.IBLOCK_ELEMENT_ID=BE.ID INNER JOIN b_iblock_property FP11 ON
FP11.IBLOCK_ID=B.ID AND FP11.CODE='code23' INNER JOIN
b_iblock_element_property FPV11 ON FP11.ID=FPV11.IBLOCK_PROPERTY_ID AND
FPV11.IBLOCK_ELEMENT_ID=BE.ID INNER JOIN b_iblock_property FP12 ON
FP12.IBLOCK_ID=B.ID AND FP12.CODE='code26' INNER JOIN
b_iblock_element_property FPV12 ON FP12.ID=FPV12.IBLOCK_PROPERTY_ID AND
FPV12.IBLOCK_ELEMENT_ID=BE.ID INNER JOIN b_iblock_property FP13 ON
FP13.IBLOCK_ID=B.ID AND FP13.CODE='code27' INNER JOIN
b_iblock_element_property FPV13 ON FP13.ID=FPV13.IBLOCK_PROPERTY_ID AND
FPV13.IBLOCK_ELEMENT_ID=BE.ID INNER JOIN b_iblock_property FP14 ON
FP14.IBLOCK_ID=B.ID AND FP14.CODE='code32' INNER JOIN
b_iblock_element_property FPV14 ON FP14.ID=FPV14.IBLOCK_PROPERTY_ID AND
FPV14.IBLOCK_ELEMENT_ID=BE.ID INNER JOIN b_iblock_property FP15 ON
FP15.IBLOCK_ID=B.ID AND FP15.CODE='code34' INNER JOIN
b_iblock_element_property FPV15 ON FP15.ID=FPV15.IBLOCK_PROPERTY_ID AND
FPV15.IBLOCK_ELEMENT_ID=BE.ID WHERE 1=1 AND B.ID IN (0,42) AND (
(BE.WF_STATUS_ID=1 AND BE.WF_PARENT_ELEMENT_ID IS NULL) ) AND ((((
(upper(BE.NAME) like upper('%acer7730G%') and BE.NAME is not null) )))) AND
(((( (upper(FPV1.VALUE) like upper('%Intel%') and FPV1.VALUE is not null) AND
(upper(FPV1.VALUE) like upper('%Core2Duo%') and FPV1.VALUE is not null) AND
(upper(FPV1.VALUE) like upper('%T5850%') and FPV1.VALUE is not null) AND
(upper(FPV1.VALUE) like upper('%2.16GHz%') and FPV1.VALUE is not null) ))))
AND (((( (upper(FPV2.VALUE) like upper('%4096Mb%') and FPV2.VALUE is not null)
AND ( (upper(FPV2.VALUE) like upper('%4Gb%') and FPV2.VALUE is not null) ) AND
(upper(FPV2.VALUE) like upper('%DDRII%') and FPV2.VALUE is not null) )))) AND
(((( (upper(FPV3.VALUE) like upper('%2x320Gb%') and FPV3.VALUE is not null)
AND (upper(FPV3.VALUE) like upper('%5400rpm%') and FPV3.VALUE is not null) AND
(upper(FPV3.VALUE) like upper('%SATA%') and FPV3.VALUE is not null) )))) AND
(((( (upper(FPV4.VALUE) like upper('%17%') and FPV4.VALUE is not null) ))))
AND (((( (upper(FPV5.VALUE) like upper('%??%') and FPV5.VALUE is not null)
)))) AND (((( (upper(FPV6.VALUE) like upper('%64Mb%') and FPV6.VALUE is not
null) AND ( (upper(FPV6.VALUE) like upper('%??%') and FPV6.VALUE is not null)
AND (upper(FPV6.VALUE) like upper('%958Mb%') and FPV6.VALUE is not null) )))))
AND (((( (upper(FPV7.VALUE) like upper('%??%') and FPV7.VALUE is not null)
)))) AND (((( (upper(FPV8.VALUE) like upper('%Bluetooth%') and FPV8.VALUE is
not null) AND (upper(FPV8.VALUE) like upper('%V2.0%') and FPV8.VALUE is not
null) AND (upper(FPV8.VALUE) like upper('%EDR%') and FPV8.VALUE is not null)
)))) AND (((( (upper(FPV9.VALUE) like upper('%4%') and FPV9.VALUE is not null)
)))) AND (((( (upper(FPV10.VALUE) like upper('%??%') and FPV10.VALUE is not
null) )))) AND (((( (upper(FPV11.VALUE) like upper('%??%') and FPV11.VALUE is
not null) )))) AND (((( (upper(FPV12.VALUE) like upper('%??%') and FPV12.VALUE
is not null) )))) AND (((( (upper(FPV13.VALUE) like upper('%WebCam%') and
FPV13.VALUE is not null) AND (upper(FPV13.VALUE) like upper('%1,3Mpx%') and
FPV13.VALUE is not null) )))) AND (((( (upper(FPV14.VALUE) like
upper('%?????%') and FPV14.VALUE is not null) )))) AND ((((
(upper(FPV15.VALUE) like upper('%12%') and FPV15.VALUE is not null) AND
(upper(FPV15.VALUE) like upper('%???????%') and FPV15.VALUE is not null) ))))
AND ((((BE.IBLOCK_ID = '42')))) 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 ((BS.ID = 224)) ORDER BY BE.SORT asc , BE.ID desc
LIMIT 0, 30

z0D5e8n7x ()

Re: [продакшн][говнокод] а почему он падает?

это девушка, чего ты от нее хотел ? :)

да, и за такое количество иннер джоинов на месте хостера я бы попросил доплатить за чрезмерное использование ресурсов. Это ак#$% можно сколько она кислоты жрет.

phasma ★☆ ()

Re: [продакшн][говнокод] а почему он падает?





































































































































































































































0. PROFIT

anonymous ()

Re: [продакшн][говнокод] а почему он падает?

>Виталий Оборин

>Потому что хостер кривой. Меняйте на адекватного.

anonymous ()
Ответ на: Re: [продакшн][говнокод] а почему он падает? от VladimirMalyk

Re: [продакшн][говнокод] а почему он падает?

угу. чего вы на девочку налезли?
запрос генерится явно автоматом. и вы ещё не видели запросов размером на 3 страницы a4. которые, кстати, писались руками а не роботом.

vahvarh ★★★ ()
Ответ на: Re: [продакшн][говнокод] а почему он падает? от vahvarh

Re: [продакшн][говнокод] а почему он падает?

>угу. чего вы на девочку налезли?

не надо, у меня своя

>запрос генерится явно автоматом.


так вот автомат какой-то ...гм... конченный

z0D5e8n7x ()

Re: [продакшн][говнокод] а почему он падает?

hibernate что то подобное может выдать если есть огромная база и люди забили на lazy связывание. так что ничего удивительного.

Tails ()

Re: [продакшн][говнокод] а почему он падает?

а с чего вы взяли что это руками набито? вон у меня тоже есть код, иногда такую хрень sql-ную сочиняет…

dmiceman ★★★★★ ()
Ответ на: Re: [продакшн][говнокод] а почему он падает? от z0D5e8n7x

Re: [продакшн][говнокод] а почему он падает?

>вообще тут плакать надо, даже не над запросом с 36(!!!) иннер джоинами, а над советами отвечающих

эти иннер джойны, на всякий случай, — натуральное соединение, которое выполняется мухой. Если индексы есть, конечно.

другой вопрос — что это хостер, и нагрузка на базу у него неслабая, видимо. Поэтому даже несложные операции, требующие доступа к диску, будут засыхать.

Вообще, если база замерзает на таких запросах — это позор DBA.

adarovsky ★★★★ ()

Re: [продакшн][говнокод] а почему он падает?

Ничего не поделаешь, это битрикс.

INFOMAN ★★★★★ ()
Ответ на: Re: [продакшн][говнокод] а почему он падает? от vahvarh

Re: [продакшн][говнокод] а почему он падает?

одмины у хостинга всяко есть. Сам с mysql дел не имел. Там оптимизатор запросов не настраивается? Как вот ему сказать, что тут надо делать merge join, а не inner loop?

adarovsky ★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.