Текущее время: Чт, авг 07 2025, 21:16

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 29 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Очень долго отрабатывает SELECT к таблице
СообщениеДобавлено: Вт, авг 04 2015, 14:51 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пн, сен 18 2006, 10:37
Сообщения: 177
Откуда: Беларусь
Пол: Мужской
Добрый день!

Подскажите, пожалуйста, в чём может быть причина следующего поведения программы.
Есть запрос на выборку данных:
Code:
    SELECT rsnum
           rspos
           banfn
           bnfpo
           bdmng
       FROM resb
       INTO TABLE lt_resb
       FOR ALL ENTRIES IN gt_eban
      WHERE resb~banfn = gt_eban-banfn
        AND resb~bnfpo = gt_eban-bnfpo
        AND resb~xloek = ' '.

С некоторого времени выполнение этого запроса в продуктивной системе стало занимать более 2-3 часов времени. (В таблице gt_eban 3.103 записи). В таблице RESB - Более 2 млн.записей. В таблице RESB присутствует индекс по полям banfn, bnfpo,xloek. Администратор говорит, что ресурсов в системе достаточно.
И ещё такой момент - в тестовой системе, содержащей копию продуктивной системы, запрос отрабатывает менее чем за минуту на одинаковых данных.

Спасибо за любой совет!

_________________
Regards


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Очень долго отрабатывает SELECT к таблице
СообщениеДобавлено: Вт, авг 04 2015, 15:03 
Специалист
Специалист

Зарегистрирован:
Пн, мар 12 2012, 08:40
Сообщения: 226
А проверка что внутренняя таблица gt_eban не пустая имеется в коде?
Если нет, то нужно добавить. Иначе если gt_eban пустая, то будет фулскан по таблице resb в независимости от имеющегося индекса.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Очень долго отрабатывает SELECT к таблице
СообщениеДобавлено: Вт, авг 04 2015, 15:09 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пн, сен 18 2006, 10:37
Сообщения: 177
Откуда: Беларусь
Пол: Мужской
skaa, да. Как я писал выше в таблице gt_eban 3.103 записи.

_________________
Regards


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Очень долго отрабатывает SELECT к таблице
СообщениеДобавлено: Вт, авг 04 2015, 15:40 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пн, янв 14 2013, 10:37
Сообщения: 795
Пол: Мужской
Добрый день. Была аналогичная ситуация, ни с того ни с сего, запрос, выполнявщийся 10 секунд стал выполняться 10 минут. По какой-то причине оптимизатор решил, что нужно не в табличке А подставлять табличку Б, а наоборот. Чтобы это понять запустите этот запрос в qas и prd и смотрите EXPLAIN (dbacockpit > wait event analysis > session monotor > поймайте тут свой запрос и нажмите кнопку EXPLAIN). Вложенность считается от единички до максимальной цифры.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Очень долго отрабатывает SELECT к таблице
СообщениеДобавлено: Вт, авг 04 2015, 15:48 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пн, сен 18 2006, 10:37
Сообщения: 177
Откуда: Беларусь
Пол: Мужской
Спасибо, RikoNw. А как вы потом это исправили ?

_________________
Regards


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Очень долго отрабатывает SELECT к таблице
СообщениеДобавлено: Вт, авг 04 2015, 16:11 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пн, янв 14 2013, 10:37
Сообщения: 795
Пол: Мужской
Абапер правил текст запроса.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Очень долго отрабатывает SELECT к таблице
СообщениеДобавлено: Вт, авг 04 2015, 16:16 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пн, сен 18 2006, 10:37
Сообщения: 177
Откуда: Беларусь
Пол: Мужской
Я не понимаю как можно изменить код нашего select'a, ведь он и так максимально лаконичный и выглядит абсолютно правильным.

_________________
Regards


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Очень долго отрабатывает SELECT к таблице
СообщениеДобавлено: Вт, авг 04 2015, 16:25 
Старший специалист
Старший специалист

Зарегистрирован:
Вт, ноя 23 2004, 10:40
Сообщения: 459
Хинтом можно принудительно заставить использовать определенный индекс.
Как вам правильно посоветовали - начните с explain, сравните с тестом.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Очень долго отрабатывает SELECT к таблице
СообщениеДобавлено: Вт, авг 04 2015, 16:26 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пн, янв 14 2013, 10:37
Сообщения: 795
Пол: Мужской
Абапер сказал так: практически наверняка gt_eban содержит 0 записей при выборке. Посмотрите под отладчиком, сколько записей в ней. Если 0, запрос как раз и перебирает все 2 миллиона записей, будто
FOR ALL ENTRIES IN gt_eban вообще бы не было в запросе.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Очень долго отрабатывает SELECT к таблице
СообщениеДобавлено: Вт, авг 04 2015, 16:30 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пн, сен 18 2006, 10:37
Сообщения: 177
Откуда: Беларусь
Пол: Мужской
Нет, нет. Я как раз и смотрю программу под отладчиком. gt_eban не пустая! Это известная ошибка, которую иногда допускают, но в данном случае это не так.

На счёт dbacockpit/explain - в тестовой системе запрос отрабатывает очень быстро и не получается его увидеть в dbacockpit.

Вот как выглядит explain по "зависшему" запросу:
Изображение

_________________
Regards


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Очень долго отрабатывает SELECT к таблице
СообщениеДобавлено: Вт, авг 04 2015, 16:46 
Старший специалист
Старший специалист

Зарегистрирован:
Вт, ноя 23 2004, 10:40
Сообщения: 459
Ну вот, фуллскан. Проверьте нужный вам индекс.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Очень долго отрабатывает SELECT к таблице
СообщениеДобавлено: Вт, авг 04 2015, 16:56 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пн, янв 14 2013, 10:37
Сообщения: 795
Пол: Мужской
агась, индекс видать


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Очень долго отрабатывает SELECT к таблице
СообщениеДобавлено: Вт, авг 04 2015, 16:57 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пн, сен 18 2006, 10:37
Сообщения: 177
Откуда: Беларусь
Пол: Мужской
observer, мне кажется, что это не фуллскан, потому что количество записей в RESB = 2.172.676:
Изображение

Вот скриншот отладчика - видно, что таблица условий it не пустая:
Изображение

_________________
Regards


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Очень долго отрабатывает SELECT к таблице
СообщениеДобавлено: Вт, авг 04 2015, 16:59 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Вт, май 17 2005, 13:35
Сообщения: 4871
Откуда: Москва
Пол: Мужской
1. Проверьте индекc в se11.
2. Даже если se11 считает что все ок, на уровне БД с индексом может быть что-нибудь не так.
Его можно пересоздать через se14 (только не используете "активровать и адаптировать" для самой таблицы - а то мгновенно потеряете все данные)

_________________
Удача - результат нашего желания (© А. Нортон)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Очень долго отрабатывает SELECT к таблице
СообщениеДобавлено: Вт, авг 04 2015, 17:05 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пн, сен 18 2006, 10:37
Сообщения: 177
Откуда: Беларусь
Пол: Мужской
Спасибо, но индекс существует и активен:
Изображение
Даже два индекса - в одном сначала перепутали последовательность полей. Такие же индексы есть и в тестовой системе.

При создании индекса в SE14 его активировали.

Есть такой момент - в dbacockpit висит много каких-то запросов к этой же таблице RESB. Не могут ли они настолько "загружать" таблицу RESB, из-за чего запрос долго не отвечает ?

В тестовой системе мы пробовали выполнить этот запрос с такими же данными, и он отрабатывает очень быстро.

_________________
Regards


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 29 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB