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

Développement SQL Server Discussion :

Plan de requête différent : MSSQL7


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 26
    Par défaut Plan de requête différent : MSSQL7
    Bonjour,

    J'ai une requête dans un applicatif qui est devenue depuis aujourd'hui trés lente (38s).
    Les indexes sont reorganisés chaque WE.
    Lorsque que je la lance via l'analyseur de requête sont plan d'execution est abérant (alors que ce n'était pas le cas avant)

    lorsque je la lance plusieurs fois de suite pas de changement (le cache n'y change rien)

    lorsque je la lance avec l'option FORCE ORDER elle reprends le bon plan d'éxécution et est instantanée.

    Lorsque j'intégre cette requête (sans FORCE ORDER ) dans une procs stock elle reprends le bon plan d'éxécution et est instantanée.

    Les indexes ne sont pas fragmentés et les tables sont de faible fragmentation (table de travail)
    Mais alors pourquoi le plan n'est pas le même en fonction de la méthode (sous procédure stockée ou pas sous procédure stockée).

    PS : je suis sous SQL 7.0

    Merci

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 998
    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 998
    Billets dans le blog
    6
    Par défaut
    sans le code difficile de voir.
    Quelle méthode de defrag utilisez vous pour vos index ? Car cela peut être un problème de stat non à jour.
    Une procédure est plus persistante en cache pour l'ensemble des objets qui y figure, y compris plan de requête.

    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/ * * * * *

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 26
    Par défaut
    Bonjour,

    Ok pour le cache sur les procédures, je ne savai pas.

    Chaque WE à lieu un DBCC DBREINDEX.
    Les stats sont à jour.

    Je comprends bien que sans le code ...,mais il fait parti d'un module trés sensible dont je ne peux diffuser sur la toile.
    Globalement c'est une vielle requête (sans inner join et avec un *=) en jointure sur 10 tables avec deux paramétres de date de passés.

    Donc la procédure en fait de même.
    Ce qui explique que je ne comprenne pas qu'elle ne prenne pas le même plan d'execution.

    J'ai donc fait évoluer l'appli pour qu'elle utilise la procs et j'en ai profité pour reconditionner la requête.
    Je continu à chercher car aujourd'hui la requête reprends le bon plan d'execution, alors que là il n'y a pas de nouveau defrag !!!

    Merci quand même.

    A +

Discussions similaires

  1. Réponses: 11
    Dernier message: 08/08/2017, 22h08
  2. SQL 2005 - Même requête - différent plan d'exécution
    Par Philippe Robert dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 20/06/2008, 14h50
  3. Ouverture d'un formulaire avec des requêtes différentes
    Par Jérémy VAUTIER dans le forum Access
    Réponses: 3
    Dernier message: 02/03/2006, 07h31
  4. [MySQL] Résultat de requête différent sur 2 serveurs identiques
    Par schlitters dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 17/12/2005, 00h24
  5. Réunion de colonnes issues de requêtes différentes
    Par ben53 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 25/11/2005, 09h40

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