> Tech > Souplesse de l’interrogation et du reporting

Souplesse de l’interrogation et du reporting

Tech - Par iTPro - Publié le 24 juin 2010
email

En business intelligence, il est fréquent de demander des rapports contenant seulement les x premiers articles. Il peut s'agir, par exemple, des cinq produits les plus vendus aux Etats-Unis : nul besoin dans ce cas d'une longue liste contenant tous les produits. Ici, la V5R1 ajoute la clause Fetch First

Souplesse de l’interrogation et du reporting

n Rows Only, de sorte que l’on peut obtenir ce type de rapport avec une seule instruction SQL. Voici un exemple d’utilisation de cette nouvelle clause pour obtenir les cinq produits les plus vendus :

Select     ProductItem,
           Count(*) As ItemCount
  From     Orders
  Where    Territory = ‘US'
  Group By Product_Item
  Order By ItemCount Desc
  Fetch First 5 Rows Only

Fetch First n Rows Only fournit un jeu de résultats plus petit. Ce qui favorise les performances des applications client ODBC et JDBC, puisque moins de données sont envoyées sur le réseau.

Un nouveau support de Right Outer Join accroît également la souplesse de développement de rapports analytiques. La requête suivante utilise un Right Outer Join pour renvoyer les classes auxquelles un professeur est affecté, ainsi que celles auxquelles un professeur n’est pas affecté. Pour ces dernières, un Right Outer Join renverra des valeurs nulles pour le nom et le titre du professeur :

Select T.Name, T.Title, C.Subject
 From Teachers As T
        Right Out Join
      Classes  As C
        On T.name = C.TeacherName

En complément de cette nouvelle fonctionnalité de jointure (join), IBM a également amélioré l’optimiseur de requête afin de mieux optimiser les requêtes jointes complexes qui contiennent un mélange de jointures externes et internes. Cette meilleure optimisation des jointures accélèrera l’exécution des requêtes.

Un subselect scalaire est une instruction Select imbriquée qui renvoie une valeur scalaire (c’est-à -dire, une ligne avec exactement une colonne). Dans les releases antérieures, on ne pouvait imbriquer des subselect scalaires que dans une clause Where ou Having. Avec la V5R1, on peut également utiliser une sous-requête scalaire sur la clause Select. Voici un exemple d’utilisation d’un subselect scalaire pour donner la liste de tous les détails d’un département situé à  Rochester :

Select  D.DeptNo,
        D.DeptName
       ( Select  Max( Salary )
           From  Emp As E
           Where E.DeptNo = D.Dept.no )
                 As MaxSalary
  From  Dept As D
  Where D.Location = ‘Rochester'

Dans cet exemple, tout département de Rochester n’ayant pas d’employés apparaîtra dans le jeu de résultats avec une valeur nulle pour son salaire maximum. C’est différent de l’exemple suivant, qui effectue une requête semblable avec une jointure plus traditionnelle. Dans ce cas, les départements sans employés ne sont pas inclus dans le jeu de résultats :

Select     D.DeptNo,
           D.DeptName
           Max( E.Salary ) As MaxSalary
  From     Dept As D,
           Emp  As E
  Where    D.DeptNo   = E.DeptNo
    And    D.Location = ‘Rochester'
  Group By D.DeptNo, D.DeptName

Lorsque beaucoup de rapports doivent effectuer des recherches floues avec la clause Like, la V5R1 procure une plus grande souplesse. On peut désormais utiliser des expressions sur la clause Like et la définition de caractère escape. La requête SQL suivante utilise une expression avec concaténation (½½) pour trouver tous les employés habitant dans la même rue que John Doe :

Select  OtherEmp.Name
  From  Employee  As OtherEmp
  Where OtherEmp.Address Like =  ‘John Doe'
    And OtherEmp.name <> ‘John Doe'
    And MainEmp.Address
                Like ‘%' ½½ S.Street ½½ '%'
    And OtherEmp.Address
                Like ‘%' ½½ S.Street ½½ '%'

IBM a également amélioré les performances de deux manières. Tout d’abord, l’implémentation système du traitement Like a été modifiée de manière à  ne plus utiliser un ODP (open data path) non réutilisable pour des requêtes Like complexes. Ensuite, l’optimiseur de requête peut désormais utiliser un index pour rendre une recherche plus performante quand la clause Like fait référence à  des données double octet (donnée unicode, par exemple).

Téléchargez gratuitement cette ressource

HP Elite Slice G2 : optimisez la collaboration… et votre budget !

HP Elite Slice G2 : optimisez la collaboration… et votre budget !

Téléchargez cette étude Forrester et découvrez comment booster la collaboration tout en dégageant un excellent R.O.I grâce au système de vidéoconférence HP Elite Slice G2 avec Microsoft Teams !

Tech - Par iTPro - Publié le 24 juin 2010