Avant de poursuivre le développement de quelques fonctions et procédures stockées, je me pose la question de la différence, en terme de performance, entre appeler directement une table externe ou bien passer par une vue dans la base courante qui pointe vers la table externe. Pour fixer les idées, je m'explique :
L'éditeur, SAP pour ne pas le nommer, restreint strictement les accès en écriture à sa base sous peine de nullité du contrat de support.
J'ai pour habitude de créer mes requêtes dans une autre base et, par commodité, de créer des vues qui répliquent les tables SAP sous la forme REPLIQUE_TABLE pour la table TABLE :
La question est la différence (pour un code évidemment plus complexe que l'exemple, avec de la récursivité en particulier) entre :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 -- REPLIQUE_TABLE = Réplique de TABLE issue de BASE_SAP SELECT * FROM BASE_SAP.dbo.TABLE
et
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 USE BASE_DE_TRAVAIL SELECT * FROM REPLIQUE_TABLE
Les performances sont-elles identiques ou bien qu'elle est la meilleure méthode ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 USE BASE_DE_TRAVAIL SELECT * FROM BASE_SAP.dbo.TABLE
En remerciant par avance, les experts qui voudrons bien éclairer un simple développeur occasionnel.
Partager