Il est possible de demander à Oracle de collecter des statistiques étendues au niveau du plan d'éxécution. Il est ensuite possible de voir quelles opérations sont les plus couteuses et celles qui sont loin des estimations de l'optimiseur (ecarts entre la colonne E-ROWS et A-ROWS) :
Pour pouvoir obtenir un tel plan, il faut spécifier un hint gather_plan_statitics et appeler ensuite le package dbms_xplan et le procedure display_cursor en utilisant l'option de détail 'ALLSTATS LAST' :
SQL>SELECT /*+gather_plan_statistics*/ COUNT(*) FROM soh_dev.sx3_gaccentry p, soh_dev.sx3_gaccentryd d, soh_dev.sx3_gaccentrya a WHERE p.NUM_0 = a.NUM_0 AND d.NUM_0 = a.NUM_0 AND p.NUM_0= d.NUM_0; SQL> SELECT * FROM TABLE(dbms_xplan.display_cursor(NULL,NULL,'ALLSTATS LAST')); -- ou encore plus détaillé : SQL> SELECT * FROM TABLE(dbms_xplan.display_cursor(NULL,NULL,'ADVANCED LAST +IOSTATS +MEMSTATS'));
SELECT ROWIDTOCHAR(ROWID) row_id, ora_rowscn, num_0 FROM soh_dev.sx3_pinvoice WHERE ROWNUM < 6 ORDER BY ora_rowscn DESC;
renvoi
ROW_ID ORA_ROWSCN NUM_0
AAAR6nAAJAAAAQUAAF 18553598 OFAF07030000578
AAAR6nAAJAAAAQVAAJ 18553598 OFAF07030000914
AAAR6nAAJAAAAQVAAI 18553598 OFAF07030000913
AAAR6nAAJAAAAQVAAH 18553598 OFAF07030000767
AAAR6nAAJAAAAQVAAG 18553598 OFAF07030000765
Le SGDB estampille chaque ligne avec un ora_rowscn à chaque modification de la ligne. La précision est d'environ 3 secondes entre 2 SCNs consécutifs.
En utilisant cette colonne pour n'extraire que les lignes en sources avec un ora_rowscn supérieur ou égal au dernier ora_rowscn utilisé dans le dernier traitement d'extraction pour une table il serait donc possible de récupérer uniquement les lignes ayant subit une modification depuis le dernier traitement.
Cela impliquerait de mettre en place une nouvelle table de paramètres pour conserver le dernier ora_rowscn de chaque table traitée.
Le mécanisme d'extraction sera légèrement plus complexe qu'avec une date de dernier traitement commune à toutes les tables car il faudra :
La nouvelle base de données de SAP, HANA, nouveau cheval de bataille de l'éditeur allemand est disponible en version Cloud pour quelques partenaires et clients testeurs. Cette base de données approche le stockage avec une technologie "In-Memory" pour une atteindre une performance d'accès aux données améliorée. Certifiée pour certaines machines avec une configuration OS et Hardware optimisée, cette base de données prend donc logiquement l'appelation convoitée "d'Appliance" : à savoir un ensemble Hard+Soft combiné et paramétré pour des performances optimales.
SAP annonce le stockage de données BIG DATA sur cette base et des temps de réponses encore jamais vu. Pour en avoir le coeur net et pour pimenter l'essai j'ai intégré des données du réseau social professionnel LinkedIn dans cette base de données via un connecteur spécialisé pour Informatica PowerCenter, transformant ainsi le test HANA en un test multiple de connectivités.
Le socle ETL est une VM sous Windows 2008 R2 avec Informatica PowerCenter 9.1 64 bits SE.
Cotésconnecteurs :
- Les drivers ODBC 32 et 64 bits pour SAP HANA
- Le connecteur Informatica PowerExchange pour LinkedIn 9.1
Lire la suite : Charger des données LinkedIn dans SAP HANA avec Informatica PowerCenter
Définition :
Les partitions permettent de découper les objets de base en petites parties plus faciles à manipuler.
Dans des requêtes de type datawarehouse, le partitionnement de table à plusieurs grands avantages :
Lire la suite : Oracle : Partitionnement et performance
Articles traitant de l'intégration de données
Des tutoriaux et cours gratuits sur Oracle
Tutoriaux sur Unix et les shells scripts