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 :

Réécriture de requêtes SQL


Sujet :

Administration SQL Server

  1. #1
    Membre habitué Avatar de olivtone
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2010
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2010
    Messages : 242
    Points : 153
    Points
    153
    Par défaut Réécriture de requêtes SQL
    Bonjour a Tous,

    Je galéré énormément a trouver un site ou un livre Dédié pour les réécritures de requête SQL complexe...

    Je ne parle pas des prédicats SARGABLE ou non SARGABLE de F.Brouard qui est d'ailleurs très bien expliqué sur le site.

    Je parle plus des différentes façons de réécrire des requêtes sous différentes manières, pour gagner enormément en performance.

    Avez vous des Sites, ou des livres Dédies concernant des fameuses reecritures , qui est pour moi extrêmement important et très enrichissant

    Merci a Vous et bonne journée

  2. #2
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Bonjour,

    Il semble difficile d'écrire un tel ouvrage, puisque la complexité des requêtes est très variée.
    Et puis il y a deux natures de requêtes complexes : celles sur un modèle conçu suivant les règles de l'art, et celles sur un jeu de tables vu comme des fichiers Excel, la deuxième étant bien plus répandue.

    Mais je crois que ce que vous cherchez est l'optimisation des requêtes, c'est à dire comment trouver la cause d'un problème de performances par l'examen du plan de requête.
    Si c'est le cas, vous pouvez commencer par l'ouvrage de Grant Fritchey, qui est évolutif, détaillé et concis, gratuit, mais écrit en Anglais. Pour approfondir, vous pouvez vous en remettre à l'ouvrage de Benjamin Nevarez, qui a les mêmes même qualités.

    Pour vous aider, j'explique dans ce billet comment capturer manuellement des plans de requête, et les analyser à l'aide de l'outil gratuit SQL Sentry Plan Explorer.

    Si vous préférez le Français, je ne peux que vous conseiller la lecture du livre que j'ai co-écrit avec Frédéric Brouard, et qui est référencé dans ma signature.
    Les chapitres 13, 14, 15 et 19 vous donneront les détails de ce que vous recherchez, notamment les outils pour réaliser un audit de performances, et les pièges à éviter.

    Bonne lecture !

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 772
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 772
    Points : 52 732
    Points
    52 732
    Billets dans le blog
    5
    Par défaut
    Il y a aussi le livre de Peter Gultzan et Trudy Pelzer (je crois chez Morgan Kaufman ed.) "SQL Performance Tuning" qui, bien que datant un peu, reste un must...

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  4. #4
    Membre habitué Avatar de olivtone
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2010
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2010
    Messages : 242
    Points : 153
    Points
    153
    Par défaut
    merci pour votre retour

    J'ai acheté le livre "SQL Performance Tuning", j'attends de voir ce que ca donne

    En fait je suis assez a l'aise maintenant avec les plans d'executions, les Index etc...

    ce que je voulais dire c'est par Exemple cette requete qui durait plus d'1 minute 30 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    SELECT DISTINCT TF_FAI_Faits.FAI_Periode Valeur
    , UPPER(LEFT(Datename(Month,CONVERT(date, CAST(FAI_Periode AS varchar(6))+'01',112)),1))
    + Right(Datename(Month,CONVERT(date, CAST(FAI_Periode AS varchar(6))+'01',112)), len(Datename(Month,CONVERT(date, CAST(FAI_Periode AS varchar(6))+'01',112)))-1) 
    + ' ' + LEFT(CAST(FAI_Periode AS varchar(6)), 4) Label
    FROM            TOTO INNER JOIN
                             TR_COL_Colonne ON TF_FAI_Faits.COL_Code = TR_COL_Colonne.COL_Code
    WHERE        TR_COL_Colonne.COL_Libelle <> '13 Mois'
    ORDER BY TF_FAI_Faits.FAI_Periode DESC

    PAr cette requete qui met 4 secondes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    select Valeur, UPPER(LEFT(Datename(Month,CONVERT(date, CAST(Valeur AS varchar(6))+'01',112)),1))
    + Right(Datename(Month,CONVERT(date, CAST(Valeur AS varchar(6))+'01',112)), len(Datename(Month,CONVERT(date, CAST(Valeur AS varchar(6))+'01',112)))-1) 
    + ' ' + LEFT(CAST(Valeur AS varchar(6)), 4) Label from (
    select DISTINCT TF_FAI_Faits.FAI_Periode Valeur
    FROM            TOTO INNER JOIN
                             TR_COL_Colonne ON TF_FAI_Faits.COL_Code = TR_COL_Colonne.COL_Code
    WHERE        TR_COL_Colonne.COL_Libelle <> '13 Mois') az
    ORDER BY Valeur DESC

Discussions similaires

  1. [ DB2 ] [ AS400] requête sql
    Par zinaif dans le forum DB2
    Réponses: 6
    Dernier message: 23/08/2008, 19h42
  2. Utilisation de MAX dans une requête SQL
    Par Evil onE dans le forum Langage SQL
    Réponses: 7
    Dernier message: 15/06/2004, 18h38
  3. A propos d'une requête SQL sur plusieurs tables...
    Par ylebihan dans le forum Langage SQL
    Réponses: 2
    Dernier message: 14/09/2003, 16h26
  4. PB requète SQL avec Interbase
    Par missllyss dans le forum InterBase
    Réponses: 2
    Dernier message: 15/07/2003, 11h37
  5. Requête SQL
    Par Leludo dans le forum Langage SQL
    Réponses: 2
    Dernier message: 17/02/2003, 16h44

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