Как создать индекс в SAP?

В настоящее время мы взаимодействуем с SAP. У нас много проблем с производительностью при использовании bapi/rfc. Итак, недавно мы пытаемся использовать прямой подход sql для получения некоторых данных из SAP. К сожалению, мы обнаружили, что некоторые таблицы SAP не снабжены правильными индексами для нашего сценария.

Мы пытались создать индекс с помощью SAPGUI, но обнаружили, что реальный индекс базы данных на самом деле не был создан. Индекс, созданный с помощью прямого DDL, позже вызовет проблемы с транспортным механизмом SAP.

Как правильно создать индекс в базе данных SAP?

(Мы используем SAP R/3 в базе данных Oracle)


person Sake    schedule 28.11.2009    source источник
comment
разве нельзя просто создать индекс в оракуле? в конце концов, данные - это просто таблицы ... и программа ABAP просто использует таблицы ... и индексы не изменяют структуры таблиц (индекс базы данных - это структура данных, которая повышает скорость операций поиска данных в таблице базы данных). .?   -  person miku    schedule 28.11.2009
comment
да. Возможно. Мы уже сделали это, и это действительно работает. Но у SAP есть специальная функция, позволяющая переносить конфигурацию с одной машины на другую, например, с тестовой системы на производственную. И наш консультант сказал нам, что наш индекс может исчезнуть в процессе транспортировки.   -  person Sake    schedule 28.11.2009
comment
Можете ли вы уточнить, какие проблемы вы пытаетесь решить, переключаясь на прямой sql? Это своего рода последняя попытка, и я уверен, что будут и другие способы улучшить производительность ваших вызовов RFC/BAPI. (Используйте для этого другой вопрос!)   -  person Thorsten    schedule 30.11.2009


Ответы (1)


Правильный способ создания индекса — использовать транзакцию SE11. Это должно быть сделано в системе разработки. И транспортируется в QA и производственные системы.

Обновление комментария:
1. Убедитесь, что вы активировали таблицу после внесения изменений. Перейдите в пункт меню Утилиты=>Версии или что-то в этом роде, чтобы убедиться, что ваши изменения были активированы.
2. Вы можете использовать транзакцию SE14 для принудительного изменения (но я думаю, что это только для устранения неполадок ).
3. Я не помню других действий по устранению неполадок. Вы можете искать заметки на сайте sdn.sap.com или services.sap.com/notes.

person Igal Serban    schedule 28.11.2009
comment
Да, это. Однако из нашей проверки настоящий физический индекс базы данных на самом деле не создается с помощью SE11. И мы не выиграем от индекса с прямым sql-запросом. - person Sake; 29.11.2009
comment
Существует несколько слабая связь между схемой SAP и реальными вещами, происходящими на уровне базы данных. Многое происходит на уровне абстракции, который устраняет различия между различными СУБД, поддерживаемыми SAP R/3. Если я правильно помню, индексы являются одним из них. Таким образом, не обязательно иметь индекс базы данных, потому что вы определили индекс в se11 (даже если он, вероятно, обычно есть). - person Thorsten; 30.11.2009
comment
Я почти уверен, что SE14 должен принудительно индексировать базу данных. (После того, как вы создали его в SE11) - person Esti; 30.11.2009