Sapforum.Biz
Инструменты => Администрирование (BC) => Тема начата: Dmitriy от Февраль 26, 2010, 12:22:05 pm
-
Краткая предыстория...
В прошлом году на собеседовании у кем только не признанным гуру всея и прочее ABAP/4 мне был задан вопрос: как определить, нуждается ли запрос в оптимизации? С виду все прилично, может даже JOIN нет, индексы должны работать + все написанное в теме про оптимизацию (http://sapforum.biz/index.php/topic,174.0.html). Т.е. можно ли и по каким критериям определить сабж, поскольку "медленно работает" не есть аргумент, может оно и должно так медленно работать? Насколько я понимаю, у используемой СУБД (тех. характеристики) должно быть некое максимальное время отклика на запрос, предположим, одной записи. Подскажите, товарищи администраторы, правильно и понятно ли я вообще поставил вопрос, и в каком направлении копать и где, если нет готового ответа...
-
Ну мой метод, во-первых, когда пользователи начнут плакать что медленно. Причем много и сильно. Без этого, лезть в то, что работает с приемлемой для пользователей скоростью считаю не продуктивным. И второй вариант, когда оптимизирую, это если время выполнения программы выходит за рамки технологического цикла, например задача должна отрабатывать максимум за 15 минут (900 секунд), так вот если время подходит к этому порогу, тогда начинаю смотреть, как можно ускорить процесс выполнения программы, чтобы был запас времени.
А вот так вот абстрактно типа вот вам запрос, а что вы думаете, а давайте вот... а не хотите ли тут... короче, если делать нечего, а денег надо за что-то заплатить, тогда хочу. Опять же не знаю как сейчас, а во времена когда машины были большими, а языки программирования маленькими (ассембмлеру привет), так вот было такое правило, любую программу можно сократить на один байт... и таки да, поэтому перефразируя скажу так, время выполнения любого SQL-запроса, можно сократить по сравнению с текущим временем его выполнения.
-
Смотрим ST03, ST04. Может быть также полезен отчет EWA (если настроено)
В особо сложных случаях - трассировка
-
Повторюсь ещё раз...
"необходима" распадается на три подвопроса:
1. вы не знаете много или мало (интерес)
2. вы знаете что много (желание)
3. у вас есть ресурс на уменьшение (потребность = готовность платить за исполнения желания)
-
Повторюсь ещё раз...
"необходима" распадается на три подвопроса:
1. вы не знаете много или мало (интерес)
2. вы знаете что много (желание)
3. у вас есть ресурс на уменьшение (потребность = готовность платить за исполнения желания)
Скорее всего п.1. Интересуют подходы к определению: много или мало, при имеющихся ресурсах.
-
1. SM66 сортируем по времени выполнение и смотрим, обычно претенденты на оптимизацию занимают первые строки.
2. st04 -> SQL request смотрим запросы с самым большим количеством Bgets/exe и маленьким Rproc/exe - это ваши кандидаты на оптимизацию.
-
1. SM66 сортируем по времени выполнение и смотрим, обычно претенденты на оптимизацию занимают первые строки.
2. st04 -> SQL request смотрим запросы с самым большим количеством Bgets/exe и маленьким Rproc/exe - это ваши кандидаты на оптимизацию.
Спасибо, Semen F.