Текущее время: Вс, авг 24 2025, 10:17

Часовой пояс: 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
Сообщения: 4872
Откуда: Москва
Пол: Мужской
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 часа


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

Сейчас этот форум просматривают: Google [Bot]


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

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