2009-11-28 8 views
0

Actuellement, nous interfaçons notre application avec SAP. Nous rencontrons beaucoup de problèmes de performance avec l'approche bapi/rfc. Alors récemment, nous essayons "directe SQL" approche pour récupérer des données de SAP. Malheureusement, nous avons constaté que certaines tables SAP ne sont pas équipées d'indices appropriés pour notre scénario.Comment créer un index dans SAP?

Nous avons essayé de créer un index avec SAPGUI, mais nous avons constaté que le véritable "index de base de données" n'était pas réellement créé. L'index créé avec le DDL direct causera plus tard des problèmes avec le mécanisme de transport SAP.

Quelle est la bonne façon de créer un index dans la base de données SAP?

(Nous utilisons SAP R3 sur la base de données Oracle)

+0

n'est-il pas possible de créer simplement un index dans Oracle? en fin de journée, les données sont juste des tables .. et le programme ABAP utilise simplement les tables .. et les index ne modifient pas les structures de tables (l'index de base de données est une structure de données améliorant la vitesse des opérations de récupération de données). ? – miku

+0

Oui. C'est possible. Nous l'avons déjà fait et c'est en fait du travail. Mais SAP a une particularité de pouvoir "transporter" la configuration d'une machine à l'autre, comme par exemple du système de test au système de production. Et notre consultation nous a dit que notre indice peut disparaître sur le processus de transport. – Sake

+1

Pouvez-vous expliquer quels problèmes vous essayez de résoudre en passant à "SQL direct"? C'est une sorte de "dernier effort", et je suis sûr qu'il y aura d'autres choses à essayer pour améliorer la performance de vos appels RFC/BAPI. (Utilisez une autre question pour cela!) – Thorsten

Répondre

2

La bonne façon de créer un index est d'utiliser la transaction SE11. Cela devrait être fait dans le système de développement. Et transporté à l'assurance qualité et les systèmes de production.

Mise à jour pour commenter:
1. Assurez-vous que vous avez activé la table après le changement. Aller à l'élément de menu Utilitaires => Versions ou quelque chose comme ça pour vous assurer que vos changements ont été activés.
2. Vous pouvez utiliser la transaction SE14 pour forcer le changement (mais je pense que c'est seulement pour le dépannage).
3. Il existe d'autres étapes de dépannage dont je ne me souviens pas. Vous pouvez rechercher des notes int sdn.sap.com ou services.sap.com/notes.

+0

Oui c'est. Cependant, d'après notre inspection, l'index réel de la base de données physique n'a pas été créé avec SE11. Et nous ne bénéficierons pas de l'index avec une requête SQL directe. – Sake

+0

Il existe une connexion quelque peu lâche entre le "schéma SAP" et les choses qui se passent réellement au niveau de la base de données. Il se passe beaucoup de choses dans une couche d'abstraction qui «supprime» les différences entre les différents SGBDR pris en charge par SAP R/3. Si je me souviens bien, les index sont l'un d'entre eux. Il n'est donc pas nécessaire d'avoir un index de base de données car vous avez défini un index dans se11 (même s'il y en a probablement d'habitude). – Thorsten

+0

Je suis tout à fait certain que SE14 devrait forcer l'index à la base de données. (Après l'avoir créé dans SE11) – Esti