> SQL Server
XQuery dans SQL Server 2005

XQuery dans SQL Server 2005

XQuery est un langage d'extraction de données opérant sur du contenu XML, développé par un groupe de travail du W3C (World Wide Web Consortium, SQL Server 2005 implémente une portion déjà stable à l'époque de sa sortie, du document de travail de cette recommandation. Nous avons donc un XQuery très proche du standard, et toute personne familière avec XQuery ou XPath devrait se sentir très rapidement à l'aise.

Cet article, destiné à la communauté SQL Server, s'adresse plutôt aux familiers du langage SQL, à qui ce mode de requêtage peut sembler troublant au premier abord. Notre souhait est de lui faciliter l'entrée dans la pratique, en nous basant beaucoup sur des exemples tout en introduisant la terminologie nécessaire. XQuery est basé sur XPath 2.0, un langage permettant d'exprimer un chemin de navigation à l'intérieur d'une structure XML. XPath permettant de filtrer éléments et attributs, XQuery y ajoute les autres fonctionnalités communes du SELECT : transformation et restructuration du résultat, tri, manipulation de chaînes, calculs, agrégation. Nous le verrons en pratique. Certaines fonctionnalités de XQuery 1.0, plus orientées vers l'établissement d'un langage modulaire complet, ne sont pas implémentées par SQL Server, comme la capacité de créer des fonctions ou des bibliothèques. Pour le reste, nous avons à disposition un langage d'expression de chemin et de requête souple et riche, agrémenté d'additions propres à SQL Server.


Contenu complémentaire :

XML et SQL SERVER


Lire l'article
Une Programmation Efficace pour SQL Server 2005

Une Programmation Efficace pour SQL Server 2005

Avant de commencer l'exécution d'une requête, d'un lot, d'une procédure stockée, d'un déclencheur, d'une instruction préparée ou d'une instruction SQL dynamique sur un SQL Server, le lot est compilé et un plan d’exécution est généré. Le plan est ensuite exécuté pour produire un effet ou des résultats.

Les plans compilés sont enregistrés dans une portion de la mémoire du serveur SQL nommée cache de plan. Le cache de plan est exploré en vue de réutilisations possibles. Si on réutilise un plan pour un lot, on peut éviter les coûts de compilation ou recompilation. Les plans sont mis en cache dans l'éventualité de leurs réutilisations. Si un plan n’est pas mis en cache, la probabilité qu’il soit réutilisé est nulle. Dans cet article, nous décrirons quelques bonnes pratiques de programmation pour l'utilisation efficace du cache de plan.

Contenu complémentaire :

SQL Server 2005 Edition Express disponible gratuitement

Lire l'article
La démocratisation de la performance de l’entreprise avec PerformancePoint Server 2007

La démocratisation de la performance de l’entreprise avec PerformancePoint Server 2007

Le système d’information est devenu depuis quelques années un point central pour la croissance des entreprises. Dans un premier temps ces systèmes ont permis de collecter et de traiter l’information tout en optimisant son stockage. Puis dans un second temps, grâce à l’évolution de la puissance des machines, de la capacité disques grandissante, ces données ont pu être croisées et agrégées à des fins analytiques.Nous voyons aujourd’hui fleurir de nombreux projets autour des problématiques « VLDB » (Very Large Data Base). Le traitement de données de masse n’est plus une barrière au grand bénéfice des projets axés sur la Business Intelligence.


Contenu coplémentaire :

Présentation du produit PerformancePoint Server 2007
Les acteurs du décisionnels : http://www.olapreport.com/

Lire l'article
Service Broker

Service Broker

Service Broker offre la possibilité de travailler en mode asynchrone avec une SQL Server en proposant un service de messagerie fiable entre les instances.

Lire l'article
Un accès sécurisé aux données des rapports

Un accès sécurisé aux données des rapports

Dans les secteurs de la santé et de la finance, où les applications de base de données traitent fréquemment des informations confidentielles, le recours à l’authentification et au cryptage pour sécuriser l’accès aux données est devenu une pratique courante.
En effet, pour les entreprises soumises à des réglementations spécifiques telles que la loi américaine sur la portabilité et la responsabilité d’assurance médicale HIPAA (Health Insurance Portability and Accountability Act), la sécurisation des données des systèmes de reporting constitue une nécessité absolue. En revanche, dans de nombreux autres secteurs, la sécurité des systèmes de reporting et des bases de données auxquelles ils accèdent reste une priorité secondaire sur les listes de tâches des concepteurs et administrateurs de systèmes, en raison de sa complexité apparente.

Pourtant, ce type de travail n’a nul besoin d’être difficile, en particulier si vous utilisez SQL Server Reporting Services (SSRS) comme système de reporting. Fourni avec Windows Server 2003 ou Windows 2000. Voyons comment configurer SSRS afin de sécuriser l’accès à vos données.


Contenu complémentaire :

Le groupe utilisateurs de SQL Server

Lire l'article
Migration des cubes d’Analysis Services 2000 vers Analysis Services 2005

Migration des cubes d’Analysis Services 2000 vers Analysis Services 2005

SQL Server 2005 Analysis Services (SSAS) fournit une multitude de raisons attrayantes en faveur d’une mise à niveau à partir de SSAS 2000.
Parmi les nombreuses améliorations, SSAS 2005 offre une plus grande souplesse d’analyse en exposant plus d’attributs de dimensions sous forme d’objets d’analyse. Mais la décision d’une mise à niveau ne va pas sans défis.


Contenu complémentaire :

Hors série spécial SQL Server 2005
L’analyse décisionnelle à l’honneur dans SQL Server 2005

Lire l'article
Le respect des règles avec Reporting Services

Le respect des règles avec Reporting Services

SQL Server 2005 Reporting Services effectue un travail remarquable pour les rapports chargés d’extraire des données de SQL Server 2005 Analysis Services.
Cet outil connaît son affaire pour fournir l’infrastructure nécessaire au développement de rapports, à la sélection de paramètres et au contrôle des accès aux rapports. Toutefois, Reporting Services a parfois un comportement inattendu ou non souhaité avec les données Analysis Services et vous devez faire preuve d’imagination pour contourner ce type de limitation.

Malheureusement, les solutions de contournement inventives peuvent, dans certains cas, entraîner des modifications du modèle de données ou de la sécurité. Il est préférable de circonscrire autant que possible les exigences sur la couche présentation plutôt que de modifier les modèles de données ou la sécurité simplement afin de faciliter le reporting. Le présent article aborde une situation fréquente au cours de laquelle Reporting Services n’a pas de solution intuitive pour répondre à des exigences particulières concernant un rapport. La solution en trois volets à ce problème fait appel à des fonctionnalités disponibles dans Reporting Services et Analysis Services pour se cantonner entièrement à la couche présentation des rapports.

L’exemple de projet Reporting Services, lequel s’appuie sur la base de données exemple AdventureWorks, est téléchargeable à l’adresse http:// www.itpro.fr (Club Abonnés). Le projet en question comporte deux fichiers .rdl : AW_Sample_Problem.rdl, qui affiche le rapport du problème, et AW_Sample.rdl, qui présente la solution. J’aimerais en profiter pour remercier Al Ludlow, développeur spécialiste des data warehouses chez CIBER, pour avoir aimablement créé la majeure partie de la solution.


Contenu Complémentaire :
Tout sur Reporting Services
Le groupe utilisateur de SQL Server

Lire l'article
Scripting de schéma SQL Server 2005

Scripting de schéma SQL Server 2005

Vous est-il déjà arrivé d’avoir à scripter le schéma de base de données aux fins d’archivage ? Ou votre patron vous a peut-être demandé avec insistance de mieux documenter vos bases de données afin de respecter les exigences de la loi américaine SOX (Sarbanes-Oxley), laquelle impose aux sociétés de certifier leurs comptes auprès de l’autorité de régulation des marchés boursiers américains (SEC). L’API SMO (SQL Management Options) dans SQL Server 2005 facilite la tâche consistant à scripter les tables, procédures stockées, vues, fonctions définies par l’utilisateur (UDF) et autres objets de schéma au sein de vos bases de données.

Le présent article décrit un utilitaire en mode console Windows simple, intitulé SchemaCollector. Celui-ci est écrit en C# au moyen du .NET Framework et vous permet de collecter le schéma de base de données.
Vous spécifiez une instance SQL Server chargée d’exécuter l’utilitaire par rapport à un argument de ligne de commande et le programme de collecteur de schéma génère les différents fichiers de sortie de schéma pour les tables, procédures stockées, vues, fonctions et rôles dans les sous-répertoires appropriés d’une arborescence de répertoires. Il est possible de télécharger le code source complet de l’utilitaire SchemaCollector à l’adresse http://www.itpro.fr, Club Abonnés.

Contenu complémentaire :

Article : Révisez vos bases de la conception avec SQL Diagrammer
Article : Fonctionnalité SQL Server 2005 facilement ignorées

Lire l'article
Le cache de plan SQL dévoilé

Le cache de plan SQL dévoilé

DB2 for i5/OS simplifie la vie des administrateurs et programmeurs System i. En particulier, par la gestion automatique des plans d’accès que produit l’optimiseur de requêtes. Au fur et à mesure que l’environnement système et la base de données changent, DB2 for i5/OS détecte ces changements et met à jour le plan d’accès.
Sur beaucoup d’autres serveurs de bases de données, l’administrateur doit effectuer ces tâches manuellement et régulièrement. Bien au contraire, DB2 a été chargé de la gestion du plan de requêtes depuis que SQL a été introduit sur l’AS/400.


Contenu complémentaire :

Article iTPro.fr : ASP.NET 2.0 :Investissez dans les performances
Groupe Utilisateur : Groupe des Utilisateurs francophones de Microsoft SQL Server – GUSS

Lire l'article
Christian Robert : l’administration du serveur est facile avec SQL Server 2008

Christian Robert : l’administration du serveur est facile avec SQL Server 2008

Christian Robert nous parle de la communauté SQL Server et revient sur les nouveautés de l’année 2009



Christian Robert est secrétaire de GUSS, Groupe des Utilisateurs francophones de SQL Server et MVP SQL Server.



Dans le même thème, retrouvez aussi les vidéos suivantes :

Leaders de communautés IT

 

Fabrice Barbin, MVP Groove et Président de la Communauté Groove francophone

 





Arnaud Alcabez, MVP Exchange Server, Président du Groupe des Utilisateurs Francophones de Microsoft Exchange Server

 





Cédric Bravo, MVP Virtualisation, Co-Président du groupe utilisateur sur la virtualisation

 





Laurent Miltgen, MVP Windows Desktop Experience, fondateur du Groupe utilisateur de Windows Server et du Groupe U

Lire l'article
Lionel Billon : faire de SQL Server la première application pour les développements

Lionel Billon : faire de SQL Server la première application pour les développements

Que nous réserve SQL Server 2008 dans l'avenir ? Quelle est la stratégie BI de Microsoft ? Lionel Billon nous éclaire sur les dernières annonces.



Lionel Billon est chef de produit SQL Server, Microsoft France


Dans le même thème retrouvez la vidéo suivante :

Microsoft France
 

Eric Mittelette, responsable de l'équipe relation technique avec les développeurs en charge du contenu des Microsoft TechDays 2009

Lire l'article
Sécurité SQL

Sécurité SQL

IBM a intégré en douceur la sécurité SQL à la panoplie de sécurité System i existante. Ces fonctions SQL ne se contentent pas d’imiter les mesures de sécurité existantes : elles les étendent et les renforcent. SQL connaît une rapide croissance et devient un langage de plus en plus incontournable pour tous les développeurs System i. Cet article actualise vos connaissances en sécurité SQL.
La sécurité SQL repose sur deux piliers : les deux instructions GRANT et REVOKE. En termes très simples, ces instructions SQL correspondent aux commandes CL Grant Object Authority (GRTOBJAUT) et Revoke Object Authority (RVKOBJAUT). Quand vous exécutez une instruction SQL GRANT ou REVOKE, vous utilisez des mots-clés pour octroyer ou révoquer des privilèges à un objet SQL. Sous le capot, le fait d’octroyer des privilèges SQL revient à octroyer une ou plusieurs autorités i5/OS à un ou plusieurs objets i5/OS.

Contenu complémentaire :

Automatisez vos audits de sécurité
Construisez vos propres systèmes de sécurité automatisés
Sécuriser votre base de données avec le point de sortie Open Database File

Lire l'article
Construisez un système ETL simple avec SSIS

Construisez un système ETL simple avec SSIS

Vous savez probablement que vous pouvez utiliserun entrepôt de données (data warehouse).Mais comment allez-vous procéder ? À quoi ressemble une application ETL ?SSIS se targue de proposer tellement de nouveautés que les nouveaux venus ont l’impression d’avoir déballé un puzzle sur leur bureau. Il est difficile d’assembler les pièces sans avoir sous les yeux une vue d’ensemble du résultat final, notamment lorsque les pièces d’autres puzzles viennent jouer les trouble-fêtes ou lorsque certains éléments manquent !

L’objectif de cet article est justement de fournir la vue d’ensemble nécessaire : nous allons aborder les opérations élémentaires de conception et de construction de packages SSIS, et ainsi fournir les bases pour l’étude ultérieure des techniques de chargement incrémentiel concernant les dimensions et faits, ainsi que les variables, les scripts et l’audit de base des processus.

Lire l'article
Les compléments d’exploration de données SQL Server 2005 pour Office 2007

Les compléments d’exploration de données SQL Server 2005 pour Office 2007

De nombreux outils d’analyse s’intègrent à SQL Server 2005 offrent des fonctionnalités puissantes pour l’analyse des données, mais c’est seulement depuis peu que Microsoft propose des outils standard pour apporter les possibilités du data mining sur le poste de travail.En février 2007, l’éditeur de Redmond a lancé les compléments d’exploration de données pour Office 2007. Ceux-ci permettent d’exploiter les fonctions d’analyse prédictive de SQL Server 2005 dans Excel 2007 et Microsoft Office Visio 2007. Dans cet article, nous allons examiner l’installation et la configuration de ces compléments et développer un exemple complet. Nous nous attarderons plus spécifiquement sur l’un des outils complémentaires, à savoir le client d’exploration de données pour Excel (Data Mining Client for Excel).

Contenu complémentaire :

- Développez votre connaissance de l'analyse décisionnelle
- Data Mining Reloaded

Lire l'article
Placez les données de vos cubes sur le devant de la scène

Placez les données de vos cubes sur le devant de la scène

une autre perspective de leurs données. Cette capacité peut s’avérer importante lorsque les rapports doivent afficher un grand nombre de mesures et se servent des dimensions en tant que tranches de données.

Par exemple, un rapport qui présente plusieurs mesures pour un seul employé ou produit n’a pas besoin de reprendre cette même information sur les lignes ou dans les colonnes. Par conséquent, nous allons voir comment placer les mesures sur les lignes et une autre dimension, Time, dans les colonnes, tout en réalisant les tranches à partir d’une autre dimension. Nous allons également expliquer comment paramétrer une requête MDX et appliquer un formatage aux valeurs.

Lire l'article
Guide pour traiter les erreurs de SQL imbriqué

Guide pour traiter les erreurs de SQL imbriqué

Dès lors que SQL se généralise dans les applications de production, il importe de bien vérifier et traiter les erreurs des instructions SQL imbriquées. Quand vous codez des instructions SQL imbriquées dans un langage évolué, tel que ILE RPG ou ILE Cobol, vous devez toujours vérifier la bonne fin de chaque instruction SQL exécutable, puis traiter comme il se doit les éventuelles conditions inattendues. Cet article fournit quelques conseils, techniques et profils de coding qui facilitent considérablement cette tâche.
En matière de programmation SQL imbriquée, il faut observer une règle simple : vérifier la valeur SQL state aussitôt après chaque instruction SQL exécutable du programme. Quand le SQL runtime revient à votre programme après avoir tenté d’exécuter une instruction SQL, le runtime définit une variable de programme nommée SQLState pour la valeur SQL state. (Les instructions déclaratives imbriquées, telles que Declare Cursor, et les directives de précompilateur, telles que Set Option, ne sont pas exécutées par le SQL runtime, et donc elles ne contribuent jamais à définir SQL state.)

SQL state est un code de cinq caractères présentant la structure suivante : XXYYY, où
• XX désigne la classe
• YYY désigne la sous-classe

Les significations des valeurs classe sont les suivantes :
• 00 – instruction correctement exécutée sans condition
• 01 – instruction correctement exécutée avec avertissement
• 02 – l’instruction n’a traité aucune donnée
• 03 à ZZ – l’instruction a échoué à cause d’une erreur

A propos de ces classes, on peut noter plusieurs choses. La classe « 00 » ne contient que la valeur SQL state « 00000 », donc on peut tester la chaîne entière plutôt que la seule classe.

Pour plusieurs des valeurs SQL state dans la classe « 01 », divers avertissements et erreurs column-level peuvent être indiqués par une valeur positive dans la variable d’indicateur null associée à une variable hôte. Les erreurs column-level potentielles incluent la troncature de chaîne et de date heure, les erreurs arithmétiques, les erreurs de conversion de caractères et les erreurs de mapping de données. Le sujet « References to host variable » du manuel SQL Reference fournit une description complète des paramètres de variables indicateurs. S’agissant de conditions spécifiques aux colonnes, il faut coder les tests pour qu’ils conviennent à l’application en plus de la vérification d’erreurs au niveau instruction montrée dans cet article.

La classe « 02 » inclut le SQL state « 02000 », lequel indique généralement que (1) aucune ligne n’a été renvoyée sur une opération d’entrée, (2) aucune ligne n’a été ajoutée par une opération Insert qui utilise un subselect pour spécifier de nouvelles lignes, ou (3) aucune ligne n’a satisfait à la condition de recherche d’une instruction Update ou Delete. Que l’une de ces conditions soit une erreur ou une condition escomptée, dépend de l’application ; c’est un aspect que votre code de vérification d’erreurs devrait prendre en considération.

La figure 1 fournit une liste complète des valeurs de classe. Le dernier manuel V5 SQL Messages and Codes fournit une liste complète des valeurs SQL state. Ces valeurs se veulent homogènes dans toute la famille IBM DB2 et sont fondées sur le standard SQL 1999. Pour plus d’informations à ce sujet, voir l’encadré « Où trouver des valeurs SqlState et SqlCode ».

Contenu complémentaire :
--> Lire l'article
Le service notification

Le service notification

Avec le service de notification, base de données, ou bien dans un deuxième temps en utilisant l’ajout/suppression de programme du panneau de configuration.

Lire l'article
Coordination de la migration de DTS vers SSIS

Coordination de la migration de DTS vers SSIS

De combien de lots DTS (également appelés packages dans SSIS) êtes vous responsable ? Peut-être 10 ? Ou alors 50 ? Lorsque j’ai posé cette question au cours d’une conférence l’an dernier, quelques auditeurs m’ont franchement surpris en affirmant que leur environnement disposait de plus de 2000 lots DTS ! Etait-il irresponsable de ma part de leur souhaiter bonne chance pour leurs opérations de migration ? Peut-être. Néanmoins, si vous avez des centaines de lots DTS, vous devez savoir que vous n’êtes pas seul. DTS est réputé pour sa simplicité et son utilité et, en fait, de nombreuses organisations l’ont adopté pour sa capacité à générer rapidement et simplement des traitements de données.
Que vous ayez 10 lots DTS ou plusieurs centaines, vous allez probablement vous préparer à une migration inévitable vers SQL Server 2005 Integration Services (SSIS). Toutefois, au cours de vos tests et de vos recherches, les points d’achoppement sont devenus apparents : l’architecture du produit diffère de celle de SQL Server 2000 DTS, d’où une procédure de migration plus complexe qu’une simple mise à niveau, et même après la migration de quelques packages, vous pouvez vous retrouver avec un gain minime de performances. Et qu’en est-il si vous examinez des dizaines ou des centaines de lots ? Vous allez vous préparer de nombreuses nuits sans sommeil. Pourtant, vous trouverez une lumière au bout du tunnel, et celle-ci sera rayonnante. L’atteindre ne sera peut-être pas aussi difficile que vous le croyez. En fait, maintenant que SQL Server 2005 a plus d’un an de service, les ressources et les connaissances disponibles pour vous aider au cours du processus sont plus étoffées. (Pour obtenir un b.-a.-ba utile sur la question, consultez l’article « Ascension vers SQL Server 2005 », sur le site http://www.itpro.fr Club Abonnés, Hors Série SQL Server 2005, novembre 2005 ainsi que l’encadré « Votre première étape » de cet article.) Mais ne vous contentez pas de prévoir une simple migration des lots DTS vers SSIS. Apprêtez-vous plutôt à exploiter pleinement les fonctionnalités améliorées de SSIS.

IT Technical center : SQL Server 2005 - Guide des ressources complémentaires

Lire l'article
Automatisez vos audits de sécurité

Automatisez vos audits de sécurité

SQL Server ? Fort heureusement, il existe des mesures permettant de réduire sensiblement les risques. Vous pouvez prévenir (ou au moins limiter) de nombreuses attaques SQL simplement en vérifiant initialement que vos bases de données et serveurs sont sécurisés comme il se doit.
La configuration de tous les ports d’écoute est-elle appropriée ? Avez-vous désactivé l’ensemble des bibliothèques réseau superflues ? Avez-vous pensé à supprimer les anciens fichiers de configuration SQL Server ? Et la liste ne s’arrête pas là.
Admettons-le, il faut du temps pour sécuriser tous les points de contrôle jusqu’au dernier et pour conserver une longueur d’avance sur les personnes malintentionnées. Chaque jour apporte son lot de nouvelles vulnérabilités concernant la sécurité, d’où la nécessité d’ajouter de nouveaux contrôles et d’effectuer une surveillance fréquente pour rester à l’abri des mauvaises surprises.
Dans ces circonstances, il serait épatant de pouvoir automatiser quelque peu toutes ces tâches d’audit longues et fastidieuses. C’est désormais possible si vous appliquez les techniques simples exposées dans cet article et si vous adaptez le code fourni à votre situation spécifique.

Lire l'article
Optimisation des bases de données MS SQL Server : les requêtes

Optimisation des bases de données MS SQL Server : les requêtes

En théorie, quelle que soit la façon d'écrire une requête, le SGBDR doit être capable de trouver le moyen le plus efficace de traiter la demande, grâce à l'optimiseur. Mais parce qu'il y a loin de la théorie à la pratique, différentes écritures et différents styles de résolution, alliés à la qualité de l'indexation peuvent donner des temps d'exécution très variés.
C'est pourquoi la maîtrise de la conception de requêtes est un des points clefs de la performance d'une base de données bien conçue. Voyons quels en sont les principes basiques.
Dans un cours que je donne aux Arts & Métiers, je montre comment une bonne indexation alliée à la qualité de l'écriture des requêtes, peut faire varier dans une proportion de plus de 300 le temps d'exécution d'une requête. Je commence l'exercice par une demande simple : écrire une requête SQL permettant de répondre à une question basique, mais en prenant soin d'exprimer différentes solutions, même les plus bizarres.

Outre la solution simpliste, certains y arrivent par une union, d'autres avec des sous requêtes, d'autres encore avec des jeux de CASE... L'exécution brute de toutes ces solutions, donne un coût d'exécution allant du simple au triple. La pose d'un premier index trivial ne donne rien, par manque de sélectivité. Après élimination de cette première tentative, la pose d'un nouvel index montre que les requêtes les plus coûteuses au départ deviennent les plus rapides, alors que celles qui étaient les moins coûteuses à l'origine n'ont rien gagné. Un nouvel essai d'indexation remet toutes les requêtes au même rang qu'au départ, chacune gagnant dans la même proportion et plus que l'indexation précédente.

Enfin, la dernière tentative d'indexation étant la bonne, toutes les requêtes bénéficient d'un gain important, mais certaines bien plus que d'autres. Le clou est enfoncé lorsque l'on choisit de dénormaliser avec une vue. Là, le gain devient gigantesque. Il est voisin de 13 000. Mais il ne prend pas en compte l'effort supplémentaire à faire pour les mises à jour (INSERT, UPDATE, DELETE...).

Cet exercice nous apprend trois choses :
• différentes écritures d'une même requête ne donneront pas forcément les mêmes performances, bien que dans l’absolu, ce devrait être le cas [1]
• rien ne sert de poser un index s'il ne sert pas la requête
• une même requête écrite de différentes manières ne bénéficiera pas des mêmes gains lorsque l’on pose un index J’ajouterai que tout ceci évolue en fonction de la volumétrie des données et des données mêmes !

Tant est si bien qu’il est difficile de trouver de prime abord ce qu’est l’écriture d’une bonne requête. Affirmons cependant qu’une bonne requête est une requête qui sait tirer partie du moteur de requête pour le forcer à calculer un plan de requête dont les étapes sont les plus courtes à traiter.

[1] En fait, nous croyons souvent et naïvement que certaines écritures de requêtes sont identiques. Mais nous oublions souvent l’influence du marqueur NULL, dont le comportement particulier dans différents prédicats oblige le moteur SQL à des constructions parfois fort différentes.

Lire l'article