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

MS SQL Server Discussion :

Create Statistics petite probleme


Sujet :

MS SQL Server

  1. #1
    Membre éprouvé
    Avatar de mihaispr
    Inscrit en
    Décembre 2008
    Messages
    1 025
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 025
    Par défaut Create Statistics petite probleme
    Salut a tous et merci pour lire ma question!

    J'essaye de faire une histogramme en sql server pour bien comprendre le fonctionnement de CREATE STATISTICS(Transact-SQL).

    J'ai regarde le tutoriel d'ici:

    http://msdn.microsoft.com/en-us/library/ms188038.aspx

    Voila ce que j'ai fais:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    --use a histogram for a table
     
    -- CREATE STATISTICS clause
     
    CREATE DATABASE HistogramUseForATable
     
    CREATE TABLE Email1
    (ContactId int IDENTITY(1,1) NOT NULL,
    FirstName varchar(16),
    LastName varchar(16),
    EmailAddress varchar(16)
    )
     
    INSERT INTO Email1 (FirstName,LastName,EmailAddress) 
    VALUES ('Pop', 'Virgil', 'popvirgil@yahoo.com');
     
    INSERT INTO Email1(FirstName,LastName,EmailAddress) 
    VALUES ('Chapuis', 'Remy', 'chapuisremy@yahoo.fr');
     
    INSERT INTO Email1(FirstName,LastName,EmailAddress) 
    VALUES ('Joubert', 'Brian', 'brianjoubert@yahoo.fr')
     
    SELECT * FROM Email1
     
    CREATE STATISTICS ContactMail1
        ON HistogramUseForATable.Email1 (ContactId, EmailAddress)
        WITH SAMPLE 5 PERCENT;
    Erreur a cette ligne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO Email1 (FirstName,LastName,EmailAddress)
    L'erreur c'est:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    The statement has been terminated.
    Merci en avance si vous pouvez m'eclairer.

    La periode d'echantionnage dans ce cas c'est 5 .

  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 : 44
    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
    Par défaut
    Bonjour,

    L'erreur devait être sur la ligne juste au dessus, quelque chose comme "String or binary data would be truncated"

    C'est parce que popvirgil@yahoo.com est plus long que les 16 caractères maximum que tu as "attribués" à la colonne EmailAddress.

    Tu peux voir ici les caractéristiques d'une adresse e-mail, dont la longueur maximale peut atteindre 320 caractères

    @++

  3. #3
    Membre éprouvé
    Avatar de mihaispr
    Inscrit en
    Décembre 2008
    Messages
    1 025
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 025
    Par défaut
    Merci beacoup elsuket pour la reponse mais je recois maintenant a cette ligne de code : (la probleme avec CREATE STATISTICS n'est pas resolue)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    CREATE STATISTICS ContactMail1
        ON HistogramUseForATable.Email1 (ContactID, EmailAddress)
        WITH SAMPLE 5 PERCENT;
    L'erreur suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Msg 1088, Level 16, State 12, Line 1
    Cannot find the object "HistogramUseForATable.Email1" because it does not exist or you do not have permissions.

  4. #4
    Expert confirmé
    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 : 46
    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
    Par défaut
    Est ce que HistogramUseForATable est schéma ?

    Dans le cas contraire essayez :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    CREATE STATISTICS ContactMail1
    ON dbo.Email1 (ContactID, EmailAddress)
    WITH SAMPLE 5 PERCENT;
    ++

  5. #5
    Membre éprouvé
    Avatar de mihaispr
    Inscrit en
    Décembre 2008
    Messages
    1 025
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 025
    Par défaut
    Oui c'est schema.

    Oui ca marche merci beaucoup la derniere etape c'est comment visualiser la histogramme (cree avec statictics ) et puis comment l'eclairer.

    J'ai essaye comme ca mais ca ne marche pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    VIEW STATISTICS ContactMail
     
    et pour l'eclairage de la histrogramme:
     
    DROP STATISTICS ContactMail
    J'attends ton reponse pour la visualisation de la histogramme et l'eclairage et puis je marque comme resolu le sujet!

    Merci encore une fois pour le support a tous!

  6. #6
    Expert confirmé
    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 : 46
    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
    Par défaut
    Il faut utiliser la commande DBCC SHOW_STATISTICS :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DBCC SHOW_STATISTICS('Email1', 'ContactMail');
    Vous aurez toutes les informations nécessaires dont l'histogramme ...

    ++

  7. #7
    Membre éprouvé
    Avatar de mihaispr
    Inscrit en
    Décembre 2008
    Messages
    1 025
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 025
    Par défaut
    Citation Envoyé par mikedavem Voir le message
    Il faut utiliser la commande DBCC SHOW_STATISTICS :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DBCC SHOW_STATISTICS('Email1', 'ContactMail');
    Vous aurez toutes les informations nécessaires dont l'histogramme ...

    ++
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Msg 2767, Level 16, State 1, Line 1
    Could not locate statistics 'ContactMail' in the system catalogs.


    Syntaxe generale:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DROP STATISTICS table.statistics_name
    Donc c'est a mon cas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DROP STATISTICS Email1.ContactMail

    Le probleme c'est dans la visualisation de la histogramme maintenant

  8. #8
    Expert confirmé
    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 : 46
    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
    Par défaut
    Que donne la commande suivante sur votre table Email1 :

    ++

  9. #9
    Membre éprouvé
    Avatar de mihaispr
    Inscrit en
    Décembre 2008
    Messages
    1 025
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 025
    Par défaut
    Merci encore pour avoir pris du temps pour m'aider!

    Voila l'effet: (dans la photo pour la procedure stoque systheme sp_helpstats)

    Pour etre plus precis je veux puis voir la histogramme (mais comme tu veux je recois une erreur) et puis faire un drop statistics ContactMail.

    Voila:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DBCC SHOW_STATISTICS('Email1', 'ContactMail');
    Erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Could NOT locate statistics 'ContactMail' IN the system catalogs.
    J'attache ici le code complet de mon fichier histogramme.sql pour etre plus facile de m'aider:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
    --use a histogram for a table
     
    -- CREATE STATISTICS clause
     
    CREATE DATABASE HistogramUseForATable
     
     
    CREATE TABLE Email1
    (ContactId int IDENTITY(1,1) NOT NULL,
    FirstName varchar(16),
    LastName varchar(16),
    EmailAddress varchar(320) --lungimea maxima a unei adrese de e-mail este 320
    )
     
    INSERT INTO Email1 (FirstName,LastName,EmailAddress) 
    VALUES ('Pop', 'Virgil', 'popvirgil@yahoo.com');
     
    INSERT INTO Email1(FirstName,LastName,EmailAddress) 
    VALUES ('Chapuis', 'Remy', 'chapuisremy@yahoo.fr');
     
    INSERT INTO Email1(FirstName,LastName,EmailAddress) 
    VALUES ('Joubert', 'Brian', 'brianjoubert@yahoo.fr');
     
    SELECT * FROM Email1
     
    CREATE STATISTICS ContactMail1
    ON dbo.Email1 (ContactID, EmailAddress)
    WITH SAMPLE 5 PERCENT;
     
    --vizualizare histograma
     
    DBCC SHOW_STATISTICS('Email1', 'ContactMail');
     
    --stergere histograma
     
    DROP STATISTICS Email1.ContactMail
     
    --VIEW STATISTICS ContactMail -- pt.vizualizare histograma
     
    sp_helpstats Email1
    Pour DROP STATISTICS j'ai trouve ici la documentation:

    http://msdn.microsoft.com/en-us/library/ms175075.aspx
    Images attachées Images attachées  

  10. #10
    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 : 44
    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
    Par défaut
    Tu as écrit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CREATE STATISTICS ContactMail1
    Donc tu ne peux pas écrire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DBCC SHOW_STATISTICS('Email1', 'ContactMail');
    Mais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DBCC SHOW_STATISTICS('Email1', 'ContactMail1');
    @++

  11. #11
    Membre éprouvé
    Avatar de mihaispr
    Inscrit en
    Décembre 2008
    Messages
    1 025
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 025
    Par défaut
    Merci beacoup! C'etait ca!


+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Petit problème de fork
    Par osmose22 dans le forum Linux
    Réponses: 7
    Dernier message: 18/03/2007, 21h10
  2. [TP]petit probleme avec solution
    Par pompompolom dans le forum Turbo Pascal
    Réponses: 1
    Dernier message: 02/12/2004, 19h48
  3. petit probleme avec l'éditeur de builder
    Par qZheneton dans le forum C++Builder
    Réponses: 2
    Dernier message: 28/10/2004, 16h19
  4. petit probleme de requete
    Par nico33307 dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 25/08/2004, 11h36
  5. petit probleme dans une requte POSTGRE SQL
    Par ghis le fou dans le forum Requêtes
    Réponses: 5
    Dernier message: 08/09/2003, 13h51

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