Autres Nouveautés V5R20.
Data Access Primitives
SQE, contrairement à CQE ne fait pas de statistiques, de sondages sur les différentes valeurs et leur nombre, ces fonctions sont réalisées par l'OS.
SQE ne créé pas d'index temporaires, mais il réalise mieux les balayages de table et les traitements de la clause DISTINCT.
Il ne créé plus de tables temporaires pour les requêtes complexes, mais un objet interne (niveau microcode), plus léger.
V5R30
- réduction de la taille des objets temporaires
- meilleure utilisation de la mémoire, tenant compte de la taille attribuée à chaque job dans le pool système. Si votre requete en utilise beaucoup, utilisez un pool système dédié, et toujours avec PAGING(*CALC)
- Si une table possède des contraintes de domaine : CHECK (appel_code between 50 AND 100) , SQE en tient compte.
- Les jointures peuvent utiliser une nouvelle technique d'optimisation
LookAhead Predicate Generation ou LPG
la requete suivante :
SELECT * FROM vins, producteurs WHERE vins.pr_code = producteurs.pr_code AND appel_code = 179
est ré-écrite par SQE :
WITH HASHTABLE (Select * from producteurs where appel_code = 179) SELECT * from HAST-TABLE, VINS WHERE HASHTABLE.pr_code = VINS.pr_code and appel_code IN (SELECT DISTINCT appel_code from HASHTABLE)
le résultat de la sous requete est placé dans une table de Haschage (objet temporaire), en s'appuyant sur différentes techniques, dont les index EVI, afin de faire la jointure sur le plus petit nombre de lignes
|
Cette technique est itérative
: En cas de jointure sur trois fichiers, on créé un table de haschage
sur le résultat de la première jointure, afin de faciliter la jointure avec le
3 ème fichier, etc...
Cette technique s'applique très bien sur des bases décisionnelles
(on a souvent une table centrale, liée à des tables paramètres) et sera
utilisée systématiquement dans ce cas.
les paramètres STAR_JOIN et FORCE_JOIN_ORDER de QAAQQINI
ne sont plus utilisé QUE par CQE.
Visual Explain indique si cette technique LPG
a été utilisée.
Plan Cache
les plans d'accès SQE sont désormais conservés (dans un cache)
- jusqu'à IPL ou jusqu'à une certaine taille (non indiquée) les plus anciens et les moins utilisés sont alors détruit.
les SQL Package existent toujours (ainsi que le cache niveau JOB), ils stockent toujours les paramètres systèmes et les requêtes, mais ils utilisent les plans d'accès du cache système.
- on mémorise jusqu'à 5 plans par requêtes (avec ou sans index, avec ALWCPYDTA(*ALWAYS ou *OPTIMZE), etc..)
- on peut espérer, lors d'une requête,(sauf suite à IPL) rencontrer un plan d'accès déja validé et ainsi gagner du temps.
- il n'existe pas de possibilité de visualisation de ce cache.
- la V5R30 implémente de nouveaux types de plans d'accès (compression)
|