IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration SQL Server Discussion :

Searchable Arguments ou clause WHERE optimisée


Sujet :

Administration SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert

    Homme Profil pro
    Chargé de Développement et d'Analyse de données
    Inscrit en
    Mars 2010
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé de Développement et d'Analyse de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 278
    Par défaut Searchable Arguments ou clause WHERE optimisée
    Hello !
    Permettez-moi de revenir sur ce sujet qui est déjà largement creusé.
    Il s'agit des S-ARGs ou Clause WHERE optimisée.
    Voici les articles que j'ai lu sur le sujet :
    SQLPro

    Elsuket

    Mes questions :

    1.) Existe-t-il un document officiel (de Microsoft par exemple) sur les conditions de SEARCHABLITÉ d'une clause WHERE ?
    En d'autre terme est-il possible d'avoir une liste exhaustive des expressions (ou situations) de NON SEARCHABLITÉ ?

    2.) Est ce que ces expressions (ou situations) de de SEARCHABLITÉ varient selon les moteurs SQL Server (2000, 2005 et 2008) ?

    Merci de m'éclairer sur ce sujet qui ne date pas d'hier
    Etienne ZINZINDOHOUE
    Billets-Articles

  2. #2
    Membre Expert

    Homme Profil pro
    Chargé de Développement et d'Analyse de données
    Inscrit en
    Mars 2010
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé de Développement et d'Analyse de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 278
    Par défaut
    Hello
    Je reformule ma question initiale concernant l'utilisation des index par le moteur SQL Server.
    Je viens de publier un papier qui met en évidence comment on peut contraindre le moteur SQL Server (au travers d'une vue indexée) d'utiliser les index même si la requête à exécuter est Non SARGeable VOIR DEMO
    D'où ma question :
    Dans quels autres cas, le moteur SQL utilise bien les index quand bien même la requête écrite ne répond pas aux critères de SARGeabilté ?

    Merci de m'éclairer
    Etienne ZINZINDOHOUE
    Billets-Articles

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Février 2008
    Messages
    758
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 758
    Par défaut
    Tu peux donner un exemple ?

    David B.

  4. #4
    Membre Expert

    Homme Profil pro
    Chargé de Développement et d'Analyse de données
    Inscrit en
    Mars 2010
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé de Développement et d'Analyse de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 278
    Par défaut
    Citation Envoyé par dbaffaleuf Voir le message
    Tu peux donner un exemple ?
    David B.
    Hello David

    J'ai fait une petite démo sur mon blog ICI
    Etienne ZINZINDOHOUE
    Billets-Articles

  5. #5
    Membre émérite
    Profil pro
    Inscrit en
    Février 2008
    Messages
    758
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 758
    Par défaut
    Je l'ai lue mais je ne vois pas où tu veux en venir. Dans la dernière étape l'optimiseur choisit de passer par la vue indexée parce que les données sont déjà matérialisées, et parce que le coût d'accès par la VI est plus faible que de refaire la jointure entre SalesOrderHeader et SalesOrderDetail. Donc rien d'anormal.

    David B.

  6. #6
    Membre Expert

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2003
    Messages
    733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2003
    Messages : 733
    Billets dans le blog
    8
    Par défaut
    1.) Existe-t-il un document officiel (de Microsoft par exemple) sur les conditions de SEARCHABLITÉ d'une clause WHERE ?
    En d'autre terme est-il possible d'avoir une liste exhaustive des expressions (ou situations) de NON SEARCHABLITÉ ?
    Le seul document, que j’ai trouvé, émanant de MicroSoft et qui traite du sujet SARG et Non-SARG est le suivant :
    http://msdn.microsoft.com/en-us/library/ms172984.aspx

    A+

  7. #7
    Membre Expert

    Homme Profil pro
    Chargé de Développement et d'Analyse de données
    Inscrit en
    Mars 2010
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé de Développement et d'Analyse de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 278
    Par défaut
    Citation Envoyé par dbaffaleuf Voir le message
    Je l'ai lue mais je ne vois pas où tu veux en venir. Dans la dernière étape l'optimiseur choisit de passer par la vue indexée parce que les données sont déjà matérialisées, et parce que le coût d'accès par la VI est plus faible que de refaire la jointure entre SalesOrderHeader et SalesOrderDetail. Donc rien d'anormal.
    David B.
    C'est justement ces genres d'exceptions qui m'intéressent.

    D'où ma question initiale qui est de savoir s'il existe une liste exhaustive des

    cas où le moteur SQL Server bypass les règles de Non SARGeabilité.

    Le premier réflexe quand on voit une requête du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT ....
    FROM ...
    WHERE colonne  LIKE '%00'
    est tenté de dire (les mains dans les poches bien sûr )

    Requête Non SARGeable => le moteur n'utilisera pas les index => Problème de performances ....

    Par ailleurs quand on évoque les règles de SARGeabilité, qu'en est-il de la clause HAVING par exemple ? existe-il des exceptions pour les JOIN ?

    C'est pour trouver des réponses à toutes ces questions que j'ai demandé s'il existe un document complet qui traitement de façon plus fine le sujet.

    J'avoue que j'ai passé des heures à fouiller dans les Books Online, mais rien

    Merci de m'éclairer

    A+
    Etienne ZINZINDOHOUE
    Billets-Articles

Discussions similaires

  1. [OPTIMISATION] Date en tant que variable dans les clauses WHERE
    Par dens19 dans le forum Développement
    Réponses: 11
    Dernier message: 18/09/2009, 08h57
  2. Réponses: 1
    Dernier message: 05/10/2007, 09h49
  3. Problème clause WHERE
    Par Invité dans le forum Langage SQL
    Réponses: 3
    Dernier message: 11/06/2004, 15h07
  4. probleme avec le caractere 'Z' dans ma clause WHERE
    Par dibox dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 01/04/2004, 12h21
  5. [ character en simple cote ] clause Where
    Par hocinema dans le forum DB2
    Réponses: 3
    Dernier message: 20/02/2004, 10h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo