1. SQL / Говнокод #5619

    −178

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    SELECT DISTINCT BE.ID as ID,BE.NAME as NAME,BE.IBLOCK_ID as IBLOCK_ID,BE.IBLOCK_SECTION_ID as IBLOCK_SECTION_ID, FPEN0.VALUE as PROPERTY_TYPE_LAMP_VALUE, FPEN0.ID as PROPERTY_TY
    PE_LAMP_ENUM_ID, FPV0.ID as PROPERTY_TYPE_LAMP_VALUE_ID, FPEN1.VALUE as PROPERTY_STYLE_VALUE, FPEN1.ID as PROPERTY_STYLE_ENUM_ID, FPV1.ID as PROPERTY_STYLE_VALUE_ID,BE.PREVIEW_PICTURE as PREVIEW_PICTURE, FPEN2.VALUE as PROPERTY_SERIES_VALUE, FPEN2.ID as PROPERTY_SERIES_ENUM_ID, FPV2.ID as PROPERTY_SERIES_VALUE_ID, FPEN3.VALUE as PROPERTY_COLOR_ARMAT_VALUE, FPEN3.ID as PROPERTY_COLOR_ARMAT_ENUM_ID, FPV3.ID as PROPERTY_COLOR_ARMAT_VALUE_ID, FPEN4.VALUE as PROPERTY_COLOR_PLAFON_VALUE, FPEN4.ID as PROPERTY_COLOR_PLAFON_ENUM_ID, FPV4.ID as PROPERTY_COLOR_PLAFON_VALUE_ID, FPEN5.VALUE as PROPERTY_NEW_VALUE, FPEN5.ID as PROPERTY_NEW_ENUM_ID, FPV5.ID as PROPERTY_NEW_VALUE_ID, FPEN6.VALUE as PROPERTY_SALE_VALUE, FPEN6.ID as PROPERTY_SALE_ENUM_ID, FPV6.ID as PROPERTY_SALE_VALUE_ID , CAT_P1.ID as CATALOG_PRICE_ID_1,  CAT_P1.CATALOG_GROUP_ID as CATALOG_GROUP_ID_1,  CAT_P1.PRICE as CATALOG_PRICE_1,  CAT_P1.CURRENCY as CATALOG_CURRENCY_1,  CAT_P1.QUANTITY_FROM as CATALOG_QUANTITY_FROM_1,  CAT_P1.QUANTITY_TO as CATALOG_QUANTITY_TO_1,  '<C1><E0><E7><EE><E2><E0>
    <FF> <F6><E5><ED><E0>' as CATALOG_GROUP_NAME_1,  'Y' as CATALOG_CAN_ACCESS_1,  'Y' as CATALOG_CAN_BUY_1,  CAT_P1.EXTRA_ID as CATALOG_EXTRA_ID_1, CAT_PR.QUANTITY as CATALOG_QUANTITY,  CAT_PR.QUANTITY_TRACE as CATALOG_QUANTITY_TRACE,  CAT_PR.WEIGHT as CATALOG_WEIGHT,  CAT_VAT.RATE as CATALOG_VAT,  CAT_PR.VAT_INCLUDED as CATALOG_VAT_INCLUDED,  CAT_PR.PRICE_TYPE as CATALOG_PRICE_TYPE,  CAT_PR.RECUR_SCHEME_TYPE as CATALOG_RECUR_SCHEME_TYPE,  CAT_PR.RECUR_SCHEME_LENGTH as CATALOG_RECUR_SCHEME_LENGTH,  CAT_PR.TRIAL_PRICE_ID as CATALOG_TRIAL_PRICE_ID,  CAT_PR.WITHOUT_ORDER as CATALOG_WITHOUT_ORDER,  CAT_PR.SELECT_BEST_PRICE as CATALOG_SELECT_BEST_PRICE
    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
    LEFT JOIN b_iblock_property FP0 ON FP0.IBLOCK_ID = B.ID AND  FP0.CODE='TYPE_LAMP'
    INNER JOIN b_iblock_property FP1 ON FP1.IBLOCK_ID = B.ID AND  FP1.CODE='STYLE'
    INNER JOIN b_iblock_property FP2 ON FP2.IBLOCK_ID = B.ID AND  FP2.CODE='SERIES'
    LEFT JOIN b_iblock_property FP3 ON FP3.IBLOCK_ID = B.ID AND  FP3.CODE='COLOR_ARMAT'
    LEFT JOIN b_iblock_property FP4 ON FP4.IBLOCK_ID = B.ID AND  FP4.CODE='COLOR_PLAFON'
    LEFT JOIN b_iblock_property FP5 ON FP5.IBLOCK_ID = B.ID AND  FP5.CODE='NEW'
    LEFT JOIN b_iblock_property FP6 ON FP6.IBLOCK_ID = B.ID AND  FP6.CODE='SALE'
    /*... тут еще 14 джоинов ...*/
    INNER JOIN (
    	SELECT DISTINCT BSE.IBLOCK_ELEMENT_ID
    	FROM b_iblock_section_element BSE
    
    	INNER JOIN b_iblock_section BS ON BSE.IBLOCK_SECTION_ID = BS.ID
    
    	WHERE (((BS.ID = 25)))
    	) BES ON BES.IBLOCK_ELEMENT_ID = BE.ID
    LEFT JOIN b_catalog_price CAT_P1 ON (CAT_P1.PRODUCT_ID = BE.ID AND CAT_P1.CATALOG_GROUP_ID = 1)
    LEFT JOIN b_catalog_product CAT_PR ON (CAT_PR.ID = BE.ID)
    LEFT JOIN b_catalog_iblock CAT_IB ON ((CAT_PR.VAT_ID IS NULL OR CAT_PR.VAT_ID = 0) AND CAT_IB.IBLOCK_ID = BE.IBLOCK_ID)
    LEFT JOIN b_catalog_vat CAT_VAT ON (CAT_VAT.ID = IF((CAT_PR.VAT_ID IS NULL OR CAT_PR.VAT_ID = 0), CAT_IB.VAT_ID, CAT_PR.VAT_ID))
    WHERE 1=1
    AND ( 13:19 
    ((((BE.IBLOCK_ID = '3'))))
    	AND ((((BE.ACTIVE='Y'))))
    	AND (
    		(
    		((((CAT_P1.PRICE >= '386'))))
    		)
    		AND (
    		((((CAT_P1.PRICE <= '4166'))))
    		)
    	)
    	AND ((((CAT_PR.QUANTITY > '0'))))
    	AND ((((FPEN1.VALUE LIKE '<CA><EB><E0><F1><F1><E8><F7><E5><F1><EA><E8><E9>'))))
    	AND ((((FPEN2.VALUE LIKE 'Davoli'))))
    )
    AND (((BE.WF_STATUS_ID=1 AND BE.WF_PARENT_ELEMENT_ID IS NULL)));

    Bitrix, что еще тут скажешь))

    Запостил: greevex, 10 Февраля 2011

    Комментарии (63) RSS

    • А сколько времени уходит на выполнение этого запроса?О_о
      Ответить
    • > 'Davoli'
      шьёрт побьери!
      Ответить
    • 20 джойнов одной и той же таблицы говорит о том что авторы положили болта на нормальную форму.
      Ответить
    • > 13:19 WTF?
      Алсо, cp-1251 радует.
      Ответить
    • > /*... тут еще 14 джоинов ...*/
      Я думаю, после такого сразу становится очевидно - битрикс медленно работает лишь из-за неграмотной настройки. Это ж ясно как день. Всё из-за криворуких пользователей, считающих что могут освоить сложнейшую систему сами, без внедрения, а в итоге получающие глюкодром и и обвиняющие в этом кого угодно, кроме себя.

      При этом можно не сомневатся, битриксы, настроенные сертифицированныи консультантами, просто летают! Факт! Заплатите за внедрение и убедитесь сами!

      И 14 джоинов опытным внедренцам не помеха... Да и какой идиот будет смотреть на джоины, когда на столе лежит потрясающая схема бизнес-процессов, на мониторе крутится шикарная презентация. К черту джоины! Смотрите сюда! Бизнес-процессы вот-вот заработают! Смотрите же!
      Ответить
      • петросян детектед
        Ответить
        • Не.
          Это сам битрикс.
          Ответить
        • показать все, что скрытоГде ты увидел шутку, клоун?! Всё абсолютно серьезно!

          Или ты из очередной недовольный, проваливший внедрение своими силами? Ну тогда не переживай так, всё образуется. Главное уметь признавать собственные ошибки и учиться на них, учиться не наступать на грабли дважды. Понимаешь, о чем я?
          Ответить
          • Дорогой Авлыдфа, спешу сообщить Вам, о своём непонимании Ваших стремлений в пользу мифических достоинств сего продукта жизнедеятельности.
            Отсутствие должной и достойной конкуренции у сих промыщленников производящих Это в этой стране, собственно, ещё не говорит о знатных и расписных свойствах данной системы.
            Считаю своим долгом, донести до Вас, что написан он на дремучем, тьмутараканском наречии, который понятен лишь самим написавшим манускрипт.
            И если Вас ещё не поглотила эта бесовская битриксовская страсть - при встрече с ней, немедля гоните её прочь, иначе вырвите себе глаза и оторвите себе руки. До добра это дело не доведёт...
            Ответить
          • Алсо толстый тролль.
            Ответить
          • Это, конечно, смешно, внедрение специалистами, юзеры, которые думают, что смогут и бла бла бла етц..
            НО! Разговор то о другом) О том как изнутри выглядит и как написан битрикс, а написан он жопой, и это факт)
            P.S. Я лично юзаю для всех своих проектов mzz :) Собственно, на чем и работает govnokod.ru )
            Ответить
      • > настроенные сертифицированныи консультантами,
        > просто летают! Факт! Заплатите за внедрение
        Уж лучше вы нам

        Нургалиев Нуралиев, блеат, залогиньтесь уже!
        Ответить
      • толстоватый троллинг)

        но в одном Вы правы: продать кусок гавна за миллион -- это битрикс умеет
        Ответить
        • я даже знаю у кого они взяли эту идею... :-) зачем писать хорошие программы, нужно писать то, что можно продать. Побольше рюшечек и быстрее на рынок. Это главный принцип мелкомягких и их последователей. А индусокод приветствуется. Рукоплещем!
          Ответить
          • при всем при этом у мелкомягких бывают иногда неплохие архитектурные решения
            а у битрикса просто унылый говнокод
            Ответить
      • > И 14 джоинов опытным внедренцам не помеха... Да и какой идиот будет смотреть на джоины, когда на столе лежит потрясающая схема бизнес-процессов, на мониторе крутится шикарная презентация. К черту джоины! Смотрите сюда! Бизнес-процессы вот-вот заработают! Смотрите же!

        ИМХО, нужно писать правильно. А то, что большинство людей в нашей стране безграмотны и не понимают, что некоторые программы должны работать не по часу, а за 10 секунд выдавать свои отчеты (при чем уже в стандартной поставке), так это минусы сегодняшней жизни. Вы же предлогаете продать *** и потом зашибать бабки на сопровождении - флаг Вам!
        Ответить
        • 1. Битрикс-фреймворк генерирует запросы шаблонным путём в цикле. Вы на самом деле думаете, что там люди такую хрень пишут? Пошли по пути универсализации использования, при этом потеряли в оптимальности - абсолютно нормальная ситуация.

          2. Так же нужно учитывать, что в компании 1с-битрикс, скорее всего, работают безмозглые манагеры(ну или как их называет Задорнов М.Н. "коекакеры"), которые устраивают гонку в рабочем процессе и которые думают, что понимают в IT больше всех и на них этот мир держится. Модель западного мира, это говно полное, но своих у нас нет.

          3. Зачем так гнать на программистов? :) Реально не понимаю? Им сказали - нужно херово, но быстро, а то уволим. Т.е. медленнее, но качественно не нужно. Сказали бы наоборот - они бы делали наоборот.

          Нужно осознавать, что при принятии решений в IT-отрасли нужно глубоко(!) понимать баланс новых возможностей, новых ограничений, новых недостатков и временного фактора. Т.к. "коекакеры" - люди малообразованы и видят только поверхностные вещи(в нашем случае - то, что по краям), то "новые ограничения" и "новые недостатки" - это фразы, которые за счёт их скудоумия ускользают в постановке задач.

          Кстатьи, о постановках задач IT'шными "коекакерами". Всё пляшет от постановок задач. Если задача и её формулировка имеют технически продуманную постановку, то lim(говнокод) --> 0

          Всё как в жизни: львы под предводительством баранов.
          Ответить
        • Не только в нашей. В бизнесе часто бывают по часу грузящиеся компы и по три часа генерирующиеся отчеты, и все думают что это нлрма
          Ответить
      • А каким образов внедренцы запускают 16 джойнов в говнобазе мускул?
        Ответить
    • Не уверен, что даже я на такое способен.
      Ответить

    Добавить комментарий