Corleone написал(а):
Есть ключ к таблице на уровне словаря. Есть соответствующий ему индекс в Oracle. При обращении к таблице идет последовательное считывание и очень долго, т.е. скорее всего выборка идет не по индексу. Похоже что нет связи индекса R/3 и индекса Oracle (были сбои в системе). Как узнать наличие этой связи и что можно сделать вообще?
А почему Вы дали такой диагноз? Посмотрите какой выполняется SELECT в транзакции ST04 - вполне возможно что в программе запускается выборка, не попадающая в существующие индексы.
Тут можно посоветовать следующее:
1. проверьте программу, которая вполняет SELECT, если это самопис - тогда или переписывать программу, или создавать индекс под нее и т.д.
2. если стандартная программа, тогда делать анализ настроек, приведших к такой выборке и как вариант - или править настройки, или создавать новый индекс, попадающий под условия выборки и т.д.
Лирическое замечание ...
Я встречал массу перлов ABAP-еров и консультантов, которые могут катострофически снизить производительность работы диалога, отчета, программы обновления и вообще всего-чего-только-можно:
1. однажды ABAP-ер создал "шедевр" такого вида:
Code:
SELECT * FROM TABLE1.
IF TABLE1-FIELD1 <> 'X'.
SELECT * FROM TABLE2.
IF TABLE2-FIELD1<>'Y'.
IF TABLE1-FIELD2<>'Z'.
ABC = ABC + TABLE2-ABC .
ENDIF.
ENDIF.
ENDSELECT.
ENDIF.
ENDSELECT.
Это при том что в каждой из таблиц (
TABLE1 и
TABLE2) было по 5 млн записей.
Отчет с такой конструкцией работал 24 часа. Пока не вырвали руки абаперу и не переписали кусок. После правки на форму
SELECT ... WHERE отчет стал работать 20 мин. А после переделки на форму SELECT ... FROM VIEW_TAB1_TAB2 стал работать 5 мин.
2. Однажды ОЧЕНЬ умный консультант по логистике при обновлении заказа на материал в программу обновления заказов вставил свой модуль с конструкцией типа:
Code:
SELECT * FROM MSEG WHERE .....
SELECT * FROM MKPF WHERE ...
.....
ENDSELECT .
ENDSELECT.
При том что в системе работало с MM порядка 200 пользователей - они просто вешались при создании заказа. Работала система со всеми тюнингами 1 заказ в 30 мин ... Потом мы полезли по системе... Руки оторвали консультанту.
User-Exit сущее зло
