Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Проблема с запросом(distinct)
|
|||
|---|---|---|---|
|
#18+
Добрый день! Ситуация такая. Есть запрос, представленый ниже который валится с ошибкой SQL0101N The statement is too long or too complex. Таблицы по размеру не большие до 3к записей и нагрузки судя по монитору особой нет. Валится запрос на distinct, без него все работает - возвращает 6 записей. Вопрос почему и как это можно обойти. Пробовал и with и select from select - не помогает :(. План запроса выложить не могу, ибо explain валится с той же ошибкой... И еще одна странная вещь. Есть практически одинаковая по структуре база(практически - это в некоторых таблицах порядок полей другой и данные немного различаются) и на ней он работает прекрасно с distinct'oм. По настройкам в db cfg полностью идентичны... select distinct STORE.SITE_NAME, REPAIR.REPAIR_ID, REPAIR.REPAIRER_REF, REPAIR.SUBMITTED_DT, REPAIR.CUSTOMER_FIRST_NAME, REPAIR.CUSTOMER_LAST_NAME, REPAIR.CUSTOMER_CTN, REPAIR.NOTIFY_BY_SMS, REPAIR.SMS_CONTACT_CTN, REPAIR.NOTIFY_BY_EMAIL, REPAIR.EMAIL_CONTACT, REPAIR.NOTIFY_BY_PHONE, REPAIR.PHONE_CONTACT_CTN, REPAIR.IN_IMEI, REPAIR.OUT_IMEI, MANUFACTURER.NAME, HANDSET.MODEL, REPAIR.OUT_OF_RANGE_MODEL, loan.LOAN_IMEI, REPAIR_STATUS_CODE.CODE AS REPAIR_STATUS_CODE, REPAIR_STATUS_CODE.SHORT_DESCRIPTION, REPAIR_STATUS_CODE.LONG_DESCRIPTION, REPAIR_STATUS.REPAIR_STATUS_DT from REACT.REPAIR REPAIR left outer join REACT.LOAN_HANDSET loan on repair.REPAIR_ID = loan.REPAIR_ID left outer join REACT.REPAIR_STATUS REPAIR_STATUS on REPAIR_STATUS.REPAIR_ID = REPAIR.REPAIR_ID and REPAIR_STATUS.REPAIR_STATUS_ID = REPAIR.LAST_REPAIR_STATUS_ID left outer join REACT.REPAIR_STATUS_CODE REPAIR_STATUS_CODE on REPAIR_STATUS_CODE.REPAIR_STATUS_CODE_ID = REPAIR_STATUS.REPAIR_STATUS_CODE_ID inner join REACT.STORE STORE on STORE.STORE_ID = REPAIR.STORE_ID and REPAIR.STORE_ID = 9000 left outer join EDEN.HANDSET HANDSET on REPAIR.HANDSET_ID = HANDSET.PRODUCT_ID left outer join EDEN.MATERIAL_PRODUCT PRODUCT on REPAIR.HANDSET_ID = PRODUCT.PRODUCT_ID left outer join EDEN.MANUFACTURER MANUFACTURER on ( (REPAIR.HANDSET_ID is not null and PRODUCT.MANUFACTURER_ID = MANUFACTURER.MANUFACTURER_ID) or (REPAIR.HANDSET_ID is null and REPAIR.MANUFACTURER_ID = MANUFACTURER.MANUFACTURER_ID) ) where ( loan_imei is null or loan.datetime_lent = ( select max(loan2.datetime_lent) from REACT.LOAN_HANDSET loan2 where repair.REPAIR_ID = loan2.REPAIR_ID ) ) and (REPAIR.STORE_ID = STORE.STORE_ID or (STORE.FORMER_LOCATION_ID is not null and REPAIR.STORE_ID = STORE.FORMER_LOCATION_ID)) and REPAIR_STATUS_CODE.CODE not in ('STORE:NOT-RECEIVED-FRM-REP', 'STORE:CANCELLED-CLOSED', 'STORE:CANCELLED-COLLECTED', 'STORE:COLLECTED-CLOSED', 'STORE:AWAIT-TILL-COMPLETION'); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2009, 12:46 |
|
||
|
Проблема с запросом(distinct)
|
|||
|---|---|---|---|
|
#18+
А если вместо Distinct группировку по всем столбцам использоваться тоже валится? Проводить жизнь в ожидании мессии, который придёт и спасёт мир, всё-равно, что ждать палку в тетрисе. Даже если и появится, то ты к тому времени наберёшь такую гору дерьма, что те будет уже абсолютно пох... :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2009, 12:56 |
|
||
|
Проблема с запросом(distinct)
|
|||
|---|---|---|---|
|
#18+
Кстати здесь похожую проблему обсуждали. Может натолкнет на мысли. Проводить жизнь в ожидании мессии, который придёт и спасёт мир, всё-равно, что ждать палку в тетрисе. Даже если и появится, то ты к тому времени наберёшь такую гору дерьма, что те будет уже абсолютно пох... :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2009, 13:02 |
|
||
|
Проблема с запросом(distinct)
|
|||
|---|---|---|---|
|
#18+
ananas2, Добрый день. Какая версия и фикс db2? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2009, 13:19 |
|
||
|
Проблема с запросом(distinct)
|
|||
|---|---|---|---|
|
#18+
А с group by прокатило, спасибо, buven! Марк, V8.FP10. Любопытно, это дистинкт так окривляет оптимизатор, или другая причина? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2009, 14:25 |
|
||
|
Проблема с запросом(distinct)
|
|||
|---|---|---|---|
|
#18+
ananas2Марк, V8.FP10. Любопытно, это дистинкт так окривляет оптимизатор, или другая причина?Если в Fix List for DB2 UDB Version 8 поискать по SQL0101, то найдётся несколько выявленных проблем. Если есть возможность, поставьте последний фикс и проверьте... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2009, 14:58 |
|
||
|
Проблема с запросом(distinct)
|
|||
|---|---|---|---|
|
#18+
Mark Barinsteinananas2Марк, V8.FP10. Любопытно, это дистинкт так окривляет оптимизатор, или другая причина?Если в Fix List for DB2 UDB Version 8 поискать по SQL0101, то найдётся несколько выявленных проблем. Если есть возможность, поставьте последний фикс и проверьте... Да, нашел, 15-м фикспаком лечится) Спасибо, за ссылку, Марк ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2009, 15:14 |
|
||
|
|

start [/forum/topic.php?fid=43&fpage=74&tid=1603020]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
59ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
87ms |
get tp. blocked users: |
2ms |
| others: | 11ms |
| total: | 206ms |

| 0 / 0 |
