Audit de performance sql server dans un cadre BI
-
Secteur d'activité
Industrie -
Contexte client
Les alimentations quotidiennes prennent la nuit entière et débordent sur la mâtinée en bloquant le reporting des utilisateurs. Certaines alimentations hebdomadaires en mode complet durent plus de 15 heures. Malgré une première campagne de performance ayant apporté des améliorations beaucoup trop de traitements d'alimentation restent longs. Les utilisateurs se plaignent de ne pas pouvoir avoir accès à leur reporting dans les temps. Ce phénomène est accentué en période de clôture période pendant laquelle les chiffres sont attendus avec impatience. La crédibilité du projet et des équipes IT est remise en cause. -
Enjeux client
Auditer les interfaces de chargement pour déterminer les principales causes des lenteurs de chargement et proposer des solutions pour améliorer à la fois le chargement mais aussi les restitutions -
Contexte technologique
- SGBD : MS SQL Server 2008 R2 EE
- ETL : SAP BODS, jobs SQL Server et procédures stockées
- Sources : SAP ECC, Fichiers plats
- Reporting : SAP BO On Premise
-
Délais
20 jours -
Résultat
Après une formation spécialisée sur le tuning SQL, les équipes internes ont réduit les temps d'alimentation de 50% en utilisant les préconisations de l'audit, les techniques liées au partitionnement sql server et leur nouvelles compétences acquises en formation. Toutefois les lacunes de l'infrastructure et le potentiel des nouvelles versions MSSQL ont conduit le client à poursuivre l'audit par une mission d'architecture et de migration.
Dans ce cas d’audit de performance sql server les équipes utilisent un mixe de jobs SAP BODS, de jobs sql server et surtout des procédures stockées pour alimenter les données.
Quels sont les principaux freins à la performance des alimentations ETL dans leur cas :
Lorsque l’on descend dans le code, quelles sont les traitements qui sont lourds et comment est-il possible de les améliorer ?
Bref un audit de performance sql server classique comme on aime.
Analyses des performances
Nous avons appliqués notre méthodologie d’audit, à savoir l’étude préalable des couches basses : hardware, configuration OS et database aux travers des traces perfmon.
Les diagrammes suivants illustrent cette partie de l’étude : consommation cpu, stress mémoire, consommation I/Os disques :
Il est ensuite intéressant de se pencher sur les attentes constatées par la base de données :
Il est également important d’étudier le volume des données, au moment de l’audit et d’avoir une idée de la croissance de ce volume. L’étude de la fragmentation des index est également au programme :
Pour finir la partie analyse, ce sont les requêtes qui sont étudiées. D’abords analysées de manière brute via des indicateurs de performances, une étape de classement manuelle s’avère ici nécessaire afin d’y voir plus clair.
Optimisations
Suite à du tuning de tables et de codes on peut observer les premières améliorations:
Finalement, cet audit de performance SQL Server aura permit de déterminer les procédures les plus lourdes. Ainsi une nouvelle stratégie d’alimentation est revisitée grâce au partitionnement des grandes tables et des optimisations systématiques.
Toutefois les l’audit de performance sql server a montrer de fortes lacunes dans l’infrastructure.
Le potentiel des nouvelles versions MSSQL et notamment les index en colonnes sont également vu comme des facteurs de progrès importants.
Ces deux faits ont conduit le client à poursuivre l’audit par une mission d’architecture et de migration.