Текущее время: Вс, июл 20 2025, 23:32

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 18 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Производительность. Не используется индекс
СообщениеДобавлено: Чт, ноя 28 2013, 12:37 
Начинающий
Начинающий

Зарегистрирован:
Сб, янв 15 2011, 15:28
Сообщения: 6
Всем доброго времени суток!

Code:
SELECT SINGLE qmnum
   FROM qmel
   INTO gv_qmnum
   WHERE qmtxt = p_waybil.


У нас сообщения используются не совсем по назначению, о причинах умолчу. К таблице QMEL существует стандартный индекс по полю qmtxt. В разработке все шло хорошо и выборка шла по индексу. Но когда перенесли в продуктив и объем данных увеличился, селект перестал его использовать. Как в наших разработках, так и в стандарте. Перепробовали все до чего дошли руки: искали ноты, обновляли статистику, переактивировали индексы. Ничего не помогло. Единственная закономерность, которую удалось выявить, что если выбирать чрез se16n и ставить количество выборки 500, то индекс используется, а если ставить 1 запись - то нет. Можно конечно использовать HINT, но хотелось бы без него.

Если у кого-нибудь есть идеи почему индекс перестал работать, буду очень признателен.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Производительность. Не используется индекс
СообщениеДобавлено: Чт, ноя 28 2013, 12:53 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пн, мар 28 2005, 15:38
Сообщения: 1257
СУБД какая?
Посмотрите план разбора запроса
Создайте запрос с хинтом(ну хотя бы в ST04), посмотрите его план. Из оценочных попугаев плана может быть видно, почему оптимизатор считает, что не нужно использовать индекс

_________________
Там, где я рос, единственным развлечением было запоминать число «π».(С) Н. Стивенсон


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Производительность. Не используется индекс
СообщениеДобавлено: Чт, ноя 28 2013, 12:58 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пт, сен 23 2005, 11:11
Сообщения: 963
можно сравнить планы запросов se16n и программы


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Производительность. Не используется индекс
СообщениеДобавлено: Чт, ноя 28 2013, 13:07 
Начинающий
Начинающий

Зарегистрирован:
Сб, янв 15 2011, 15:28
Сообщения: 6
Oracle. Из плана ничего, не понятно. Когда использует индекс, Coast больше чем по full table. Скриншоты приложить не могу, система закрытая. Select в базу уходит ровно один и тот же за исключением количества возвращаемых записей, если сравнивать с se16n


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Производительность. Не используется индекс
СообщениеДобавлено: Чт, ноя 28 2013, 13:16 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пт, сен 23 2005, 11:11
Сообщения: 963
Цитата:
Из плана ничего, не понятно.. Скриншоты приложить не могу
обратитесь в СПОРТЛОТО :wink:

интересно, если на сурбд есть load balancing может ли разъехаться индекс


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Производительность. Не используется индекс
СообщениеДобавлено: Чт, ноя 28 2013, 13:21 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пн, мар 28 2005, 15:38
Сообщения: 1257
1) а в чем именно кост выше? в IO-cost или CPU-cost?
2) однако план можно и текстом кинуть

_________________
Там, где я рос, единственным развлечением было запоминать число «π».(С) Н. Стивенсон


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Производительность. Не используется индекс
СообщениеДобавлено: Чт, ноя 28 2013, 13:45 
Начинающий
Начинающий
Аватара пользователя

Зарегистрирован:
Сб, июл 07 2007, 14:17
Сообщения: 21
Откуда: Москва
Пол: Мужской
Может быть стоит попросить базис проверить индекс на уровне СУБД и при необходимости перестроить его

_________________
http://www.sap-gu.ru/ - Заметки абапера


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Производительность. Не используется индекс
СообщениеДобавлено: Чт, ноя 28 2013, 13:47 
Начинающий
Начинающий

Зарегистрирован:
Сб, янв 15 2011, 15:28
Сообщения: 6
Дико извеяюсь, но система обрабатывает гос тайну. Т.е. доступ к продуктиву только с одного компьютера, в специальной комнате. Завстра конечно посмотрю конкретные цифры и скажу поточнее, но ни скринов ни текстовых версий не будет.

Цитата:
а в чем именно кост выше? в IO-cost или CPU-cost?

IO-cost

Базис тоже пытался разобраться, но пока также безрезультатно

И если честно, я не силен в оптимизации, раньше проблемы решались изменением кода и выборок, так что строго не судите.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Производительность. Не используется индекс
СообщениеДобавлено: Чт, ноя 28 2013, 13:51 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пн, мар 28 2005, 15:38
Сообщения: 1257
Раз IO-cost, то или индекс уже плохой и его надо ребъюлдить, или расположен он на винте не удачно. Ну это первые предположения, которые приходят в голову.

_________________
Там, где я рос, единственным развлечением было запоминать число «π».(С) Н. Стивенсон


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Производительность. Не используется индекс
СообщениеДобавлено: Чт, ноя 28 2013, 13:57 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пт, сен 23 2005, 11:11
Сообщения: 963
Agrim написал(а):
.. гос.тайну
МО ? делегируйте базису, ведь со стороны разработки всё в порядке.
вдруг кому-то не понравится - можно невыездным стать или срок за разглашение получить


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Производительность. Не используется индекс
СообщениеДобавлено: Чт, ноя 28 2013, 14:13 
Старший специалист
Старший специалист

Зарегистрирован:
Вт, ноя 18 2008, 10:40
Сообщения: 342
Откуда: Пермь
Пол: Мужской
Попробуйте обновить проблемный индекс (можно из ST05)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Производительность. Не используется индекс
СообщениеДобавлено: Чт, ноя 28 2013, 14:24 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, окт 22 2009, 12:41
Сообщения: 473
А запросы вручную (sqlplus) как отрабатывают по индексу? Думается мне что проблема на стороне БД.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Производительность. Не используется индекс
СообщениеДобавлено: Чт, ноя 28 2013, 14:53 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
Agrim написал(а):
Можно конечно использовать HINT, но хотелось бы без него.

Почему хотелось бы без него?
У нас после апгрейда БД с Oracle 9 на Oracle 11 появилась куча проблем, связанных с неверным построением плана запроса.
В некоторых случаях помогает как раз прямое указание индекса через HINT.
В некоторых - прямая подстановка значений параметров (&SUBSTITUTE VALUES&).
У SAP есть куча нот по производительности, в которых добавляются HINT`ы. И никого это не смущает.
Вот прямой вызов нативного SQL как правило недопустим.
А хинты... Почему нет? :?:

_________________
С уважением,
Удав.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Производительность. Не используется индекс
СообщениеДобавлено: Пт, ноя 29 2013, 00:59 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
SE11, Утилиты БД, Индексы, Удалить индекс БД, Создать индекс БД.

После этого желательно обновить статистику. Причем мне услуги базиса не помогали, а вот так на ура для оракла:
Code:
  EXEC SQL.
    Analyze table QMEL delete statistics
  ENDEXEC.
  commit work.
  EXEC SQL.
    Analyze table QMEL compute statistics
  ENDEXEC.
  commit work.

_________________
"For all entries" не в SAP-ах, "for all entries" в головах! :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Производительность. Не используется индекс
СообщениеДобавлено: Пт, ноя 29 2013, 08:28 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
Parazit написал:
а вот так на ура для оракла:

Для какой версии? ;)
Parazit написал:
Code:
  EXEC SQL.
    Analyze table QMEL delete statistics
  ENDEXEC.
  commit work.
  EXEC SQL.
    Analyze table QMEL compute statistics
  ENDEXEC.
  commit work.

Это же отчет RSANAORA :)

_________________
С уважением,
Удав.


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

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


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

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


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

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