S Q L / 4 0 0 Nouveautés V2R20 Extension des tailles limites: Fichiers V2R1 V2R2 Membres 2 Go 248 Go nb d'enregistrements 16 millions 2 milliards index 1 Go 4 Go lg de clé 120 oct 2.000 oct SQL nb de colonnes dans ORDER BY 256 10.000 lg totale dans ORDER BY 256 oct 10.000 oct lg totale dans GROUP BY 120 oct 2.000 oct Divers SAVF 3 Go 256 Go SNADS reste à 16 Mo --- |
SQL permet maintenant de manipuler plusieurs enregistrements à la fois par l'intermèdiaire de tableaux de structure: - en RPG : DATA STRUCTURE à occurences multiples - en COBOL : Table (OCCURS) Utilisation: ° INSERT--INTO --nom--------------------VALUES :var-host ! ! ! ! !--X------ROWS---! !-var--! ° FETCH--nom-curseur----------------------------INTO :var-host ! ! ! ! !-FOR---X------ROWS---! !-var--! |
SQLCA: SQLERRD(3) = nb d'enregistrements (lu ou insérés) SQLERRD(4) = lg enreg SQLERRD(5) = indicateur signalant si le dernier poste de la structure a été rempli par FETCH. En parallèle: Il est possible d'indiquer un facteur d'optimisation) (= OPTIMIZE sur OPNQRYF) SELECT ------------idem-----------------------------------------> ! ! !--OPTIMIZE-FOR x ROWS---------! (Pour un traitement par sous-fichier , indiquer SFLPAG.) |
CURSEURS FLOTTANTS : SQL donne la possibilité de se repositionner dans un curseur. DECLARE-------idem---------------------------------CURSOR--------> ! ! !----------------SCROLL-----! !-DYNAMIQUE-! SCROLL seul = en lecture pure DYNAMIQUE SCROLL = en mise à jour. (FOR UPDATE). ce qui permet d'utiliser FETCH de la manière suivante: FETCH--------------------------------curseur-------> !--NEXT--------------------! !--PRIOR-------------------! !--FIRST-------------------! !--LAST--------------------! !--BEFORE------------------! !--AFTER-------------------! !--CURRENT-----------------! !--RELATIVE----entier------! !-var-host--! |
Tout cela devrait permettre de mieux gérer les sous-fichiers avec SQL. Autres nouveautés: Nouvelles fonctions STDDEV (déviance standard) VAR (variance) ABSVAL valeur absolue TRANSLATE cvt min --> MAJ SQRT racine carrée ZONED cvt en décimal étendu et d'autres fonctions mathématiques identiques à OPNQRYF. Les expressions sont autorisées avec LIKE. WHERE SUBSTR(nom, 1, 3) LIKE 'A_B' |
SQL/400 et performances Voir SELECT / OPTIMIZE + l'optimisation est basée sur ° le modèle AS/400 ° la taille du pool système + le DATA BASE MANAGER - éxamine TOUS les indexs disponibles ! (la pré-compilation peut être plus longue) - Des indexs sont utilisés si une clé est référencée par OR ou IN (en plus de ORDER BY) - amélioration en cas de jointure --> la redondance de sélection dans la clause WHERE n'est plus nécessaire ! |
SQL/400 et DRDA LABEL ON et COMMENT ON autorisés sur SQLPKG. CONNECT--- RDB--------------------------------------------> ! ! !--USER--nom----------------------------! !var-host-! ! ! !--USING--pwd---! !-:var-! Pour plus de précisions voir le cours DRDA. |