Sapforum.Biz

Инструменты => Администрирование (BC) => Тема начата: Dmitriy от Февраль 26, 2010, 12:22:05 pm

Название: Когда необходима оптимизация запроса?
Отправлено: Dmitriy от Февраль 26, 2010, 12:22:05 pm
Краткая предыстория...
В прошлом году на собеседовании у кем только не признанным гуру всея и прочее ABAP/4 мне был задан вопрос: как определить, нуждается ли запрос в оптимизации? С виду все прилично, может даже JOIN нет, индексы должны работать + все написанное в теме про оптимизацию (http://sapforum.biz/index.php/topic,174.0.html). Т.е. можно ли и по каким критериям определить сабж, поскольку "медленно работает" не есть аргумент, может оно и должно так медленно работать? Насколько я понимаю, у используемой СУБД (тех. характеристики) должно быть некое максимальное время отклика на запрос, предположим, одной записи. Подскажите, товарищи администраторы, правильно и понятно ли я вообще поставил вопрос, и в каком направлении копать и где, если нет готового ответа...
Название: Re: Когда необходима оптимизация запроса?
Отправлено: Uukrul от Февраль 26, 2010, 01:49:31 pm
Ну мой метод, во-первых, когда пользователи начнут плакать что медленно. Причем много и сильно. Без этого, лезть в то, что работает с приемлемой для пользователей скоростью считаю не продуктивным. И второй вариант, когда оптимизирую, это если время выполнения программы выходит за рамки технологического цикла, например задача должна отрабатывать максимум за 15 минут (900 секунд), так вот если время подходит  к этому порогу, тогда начинаю смотреть, как можно ускорить процесс выполнения программы, чтобы был запас времени.

А вот так вот абстрактно типа вот вам запрос, а что вы думаете, а давайте вот... а не хотите ли тут... короче, если делать нечего, а денег надо за что-то заплатить, тогда хочу. Опять же не знаю как сейчас, а во времена когда машины были большими, а языки программирования маленькими (ассембмлеру привет), так вот было такое правило, любую программу можно сократить на один байт... и таки да, поэтому перефразируя скажу так, время выполнения любого SQL-запроса, можно сократить по сравнению с текущим временем его выполнения.
Название: Re: Когда необходима оптимизация запроса?
Отправлено: №1 от Февраль 26, 2010, 03:24:09 pm
Смотрим ST03, ST04. Может быть также полезен отчет EWA (если настроено)
В особо сложных случаях - трассировка
Название: Re: Когда необходима оптимизация запроса?
Отправлено: Skif от Март 01, 2010, 09:02:34 am
Повторюсь ещё раз...
"необходима" распадается на три подвопроса:
1. вы не знаете много или мало (интерес)
2. вы знаете что много (желание)
3. у вас есть ресурс на уменьшение (потребность = готовность платить за исполнения желания)
Название: Re: Когда необходима оптимизация запроса?
Отправлено: Dmitriy от Март 01, 2010, 12:38:18 pm
You are not allowed to view links. Register or Login
Повторюсь ещё раз...
"необходима" распадается на три подвопроса:
1. вы не знаете много или мало (интерес)
2. вы знаете что много (желание)
3. у вас есть ресурс на уменьшение (потребность = готовность платить за исполнения желания)
Скорее всего п.1. Интересуют подходы к определению: много или мало, при имеющихся ресурсах.
Название: Re: Когда необходима оптимизация запроса?
Отправлено: Semen F. от Март 20, 2010, 11:48:14 am
1. SM66 сортируем по времени выполнение и смотрим, обычно претенденты на оптимизацию занимают первые строки.
2. st04 -> SQL request смотрим запросы с самым большим количеством Bgets/exe и маленьким Rproc/exe - это ваши кандидаты на оптимизацию.
Название: Re: Когда необходима оптимизация запроса?
Отправлено: Dmitriy от Март 20, 2010, 01:27:30 pm
You are not allowed to view links. Register or Login
1. SM66 сортируем по времени выполнение и смотрим, обычно претенденты на оптимизацию занимают первые строки.
2. st04 -> SQL request смотрим запросы с самым большим количеством Bgets/exe и маленьким Rproc/exe - это ваши кандидаты на оптимизацию.
Спасибо, Semen F.