Текущее время: Пн, июл 21 2025, 06:12

Часовой пояс: 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 часа


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

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


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

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