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 :

Problème de lenteur : Opération "pompier"


Sujet :

Administration SQL Server

  1. #41
    Membre chevronné

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2007
    Messages
    1 216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

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

    Informations forums :
    Inscription : Août 2007
    Messages : 1 216
    Points : 1 758
    Points
    1 758
    Par défaut
    Effectivement, quelle idee de mettre un like la

  2. #42
    Expert éminent sénior
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ain (Rhône Alpes)

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

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Points : 12 891
    Points
    12 891
    Par défaut
    Aller une petite question dans ce cas (mais je connais la réponse ) :

    Pourquoi les requêtes suivantes dans ce cas (@id = 100) sont aussi performantes l'une que l'autre (en reprenant l'exemple du billet .. j'ai juste changé le nom de la table en T_TEST2)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    DECLARE @id int 
    SET @id = 100
    SET STATISTICS IO ON;
     
    IF EXISTS (SELECT * FROM T_TEST2 WHERE id LIKE  @id)
    SELECT 1
    IF EXISTS (SELECT * FROM T_TEST2 WHERE id = @id)
    SELECT 1
    Résultat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    --Table 'T_TEST2'. Scan count 1, logical reads 3, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.
    --Table 'T_TEST2'. Scan count 1, logical reads 3, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.
    Ci joint plans d'exécutions

    ++
    Images attachées Images attachées  

  3. #43
    Membre chevronné Avatar de Jinroh77
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Février 2006
    Messages
    1 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Février 2006
    Messages : 1 964
    Points : 2 145
    Points
    2 145
    Par défaut
    Selon l'index, l'id est présent sur une fin de page alors que dans l'autre cas l'id (101) nécessite de passer à la page suivante ?
    Alexandre Chemla - Consultant MS BI chez Masao

  4. #44
    Membre émérite

    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
    Points : 2 856
    Points
    2 856
    Par défaut
    Citation Envoyé par mikedavem Voir le message
    Aller une petite question dans ce cas (mais je connais la réponse ) :
    Pourquoi les requêtes suivantes dans ce cas (@id = 100) sont aussi performantes l'une que l'autre (en reprenant l'exemple du billet .. j'ai juste changé le nom de la table en T_TEST2)
    je pense à la distribution (répartition) des données dans la colonne id (type identity)
    Etienne ZINZINDOHOUE
    Billets-Articles

  5. #45
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 768
    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 768
    Points : 52 565
    Points
    52 565
    Billets dans le blog
    5
    Par défaut
    LIKE sans joker est transformé en =

    N'oubliez pas que le moteur relationnel incorpore un algébriseur, dont le rôle est de récrire proprement les requêtes "farfelues".
    Lisez à ce sujet, cet exemple didactique :
    http://blog.developpez.com/sqlpro/p5...lle-intellige/

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

  6. #46
    Membre émérite

    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
    Points : 2 856
    Points
    2 856
    Par défaut
    Citation Envoyé par SQLpro Voir le message
    LIKE sans joker est transformé en =
    N'oubliez pas que le moteur relationnel incorpore un algébriseur, dont le rôle est de récrire proprement les requêtes "farfelues".
    je voudrais juste ajouter que cette réécriture à un coût


    A+
    Etienne ZINZINDOHOUE
    Billets-Articles

  7. #47
    Membre émérite

    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
    Points : 2 856
    Points
    2 856
    Par défaut
    Citation Envoyé par mikedavem Voir le message
    Aller une petite question dans ce cas (mais je connais la réponse ) :
    Pourquoi les requêtes suivantes dans ce cas (@id = 100) sont aussi performantes l'une que l'autre (en reprenant l'exemple du billet .. j'ai juste changé le nom de la table en T_TEST2)
    ++
    Bon Mike, quand est ce que tu nous donnes la réponse ?

    la bonne réponse bien sûr

    A+
    Etienne ZINZINDOHOUE
    Billets-Articles

  8. #48
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 768
    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 768
    Points : 52 565
    Points
    52 565
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par zinzineti Voir le message
    je voudrais juste ajouter que cette réécriture à un coût


    A+
    Oui, mais ce cout ne fait pas partie du coût du plan de requête, puisque l'algébrisation intervient avant, dans la phase de calcul dudit plan.

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

  9. #49
    Membre émérite

    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
    Points : 2 856
    Points
    2 856
    Par défaut
    Citation Envoyé par SQLpro Voir le message
    Oui, mais ce cout ne fait pas partie du coût du plan de requête, puisque l'algébrisation intervient avant, dans la phase de calcul dudit plan.
    A +
    En quoi cette précision est importante ? Il me semble que l'algébrisation est une étape du traitement de la requête. à mon avis, si il y a un coût pour l'algébrisation alors il y a coût sur le traitement de la requête ? Non ?

    A+
    Etienne ZINZINDOHOUE
    Billets-Articles

  10. #50
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 056
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 056
    Points : 1 216
    Points
    1 216
    Par défaut
    En quoi cette précision est importante ? Il me semble que l'algébrisation est une étape du traitement de la requête. à mon avis, si il y a un coût pour l'algébrisation alors il y a coût sur le traitement de la requête ? Non ?
    Cela fait partie du coût du "parsing" (set statistics time on, cf. parse and compile time et execution time) et non pas du coût d'exécution (temps et E/S) de la requête en elle-même.
    Le temps de parsing et le temps d'exécution de la requête s'ajoutent.
    Emmanuel T.

  11. #51
    Membre émérite

    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
    Points : 2 856
    Points
    2 856
    Par défaut
    Citation Envoyé par kagemaru Voir le message
    Cela fait partie du coût du "parsing" (set statistics time on, cf. parse and compile time et execution time) et non pas du coût d'exécution (temps et E/S) de la requête en elle-même.
    Le temps de parsing et le temps d'exécution de la requête s'ajoutent.
    Je suis parfaitement d'accord, je fais bien la distinction entre ces différentes étapes du traitement de la requête.
    Tu remarques que j'utilise le terme traitement de la requête.
    Au fait c'est le "Oui, mais de sqlpro" à propos du coût de traitement de la requête qui me réfléchir... le coût du traitement d'une requête inclut aussi le coût de la phase d'algébrisation ? c'était ça ma question.
    En tout cas merci pour ta réponse

    A+
    Etienne ZINZINDOHOUE
    Billets-Articles

+ Répondre à la discussion
Cette discussion est résolue.
Page 3 sur 3 PremièrePremière 123

Discussions similaires

  1. Problème "LoadModule ssl_module modules/mod_ssl.so"
    Par ldcarpathes dans le forum Apache
    Réponses: 9
    Dernier message: 24/01/2008, 11h07
  2. Formulaires : problème avec les slashes et les quotes
    Par GarGamel55 dans le forum Langage
    Réponses: 1
    Dernier message: 12/10/2005, 15h59

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