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 :

Statistiques non créées


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 Statistiques non créées
    Je repose ma question

    Je constate que le moteur de base de données décide de ne pas créer de statistiques sur la colonne creation_date de la table T_TEST !
    Sur les autres colonnes, les statistiques sont bien crées !
    1.) Comment justifier ce choix du moteur ?
    2.) Dans quel(s) cas le moteur de base de données ferme les yeux sur la création des statistiques sur une colonne ?

    Voici la table T_TEST
    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
    --Création de la table
    SET NOCOUNT ON 
    IF OBJECT_ID('dbo.T_TEST') IS NOT NULL 
    DROP TABLE dbo.T_TEST 
    CREATE TABLE dbo.T_TEST 
    ( 
      id int identity(1,1), 
      val varchar(10), 
      creation_date datetime 
    )
     
    --Chargement d'1 million de lignes dans la table 
    DECLARE @counter int; 
    SET @counter = 1; 
    WHILE @counter <= 1000000 
      BEGIN 
      INSERT INTO T_TEST(val,creation_date) VALUES(convert(varchar(10),(LEFT(convert(bigint,RAND()*10000000),6))),getdate()); 
      SET @counter = @counter + 1 
    END;

    Pour mettre en évidence l’absence de statistiques sur la colonne creation_date je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DBCC SHOW_STATISTICS ('dbo.T_TEST',creation_date)
    et SSMS me renvoie le message d'erreur 2767:
    Msg 2767, Level 16, State 1, Line 1
    Impossible de localiser les statistiques 'create_date' dans le catalogue système.
    Exécution de DBCC terminée. Si DBCC vous a adressé des messages d'erreur, contactez l'administrateur système.


    Merci de m'éclairer
    Etienne ZINZINDOHOUE
    Billets-Articles

  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
    22 002
    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 : 22 002
    Billets dans le blog
    6
    Par défaut
    Les stats ne sont créées que si des requêtes vont portées sur cette colonne.

    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 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 SQLpro Voir le message
    Les stats ne sont créées que si des requêtes vont portées sur cette colonne.
    A +
    Des requêtes concernant cette colonne sont bien exécuter mais cela ne change rien. j'ai toujours le même d'erreur
    Msg 2767, Level 16, State 1, Line 1
    Impossible de localiser les statistiques 'create_date' dans le catalogue système.
    Exécution de DBCC terminée. Si DBCC vous a adressé des messages d'erreur, contactez l'administrateur système.
    A l'exécution de la commande

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DBCC SHOW_STATISTICS ('dbo.T_TEST',create_date)
    Etienne ZINZINDOHOUE
    Billets-Articles

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 002
    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 : 22 002
    Billets dans le blog
    6
    Par défaut
    Les statistiques auto créée ne portent pas le nom de la colonne, mais un nom en "_WA_Sys_00000004_00000005"
    Tu peut les voir avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM sys.stats
    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/ * * * * *

  5. #5
    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 SQLpro Voir le message
    Les statistiques auto créée ne portent pas le nom de la colonne, mais un nom en "_WA_Sys_00000004_00000005"
    Tu peut les voir avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM sys.stats
    A +
    D'accord, mais comment savoir qu'un _WA_Sys_0000..... concerne tel ou tel autre colonne ?


    Et pourquoi mon

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DBCC SHOW_STATISTICS ('dbo.T_TEST',creation_date)
    me renvoie un message d'erreur ?

    Alors que pour les autres colonnes tout se passe bien ?
    Etienne ZINZINDOHOUE
    Billets-Articles

  6. #6
    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 zinzineti Voir le message
    D'accord, mais comment savoir qu'un _WA_Sys_0000..... concerne tel ou tel autre colonne ?
    J'ai répondu très vite, voici comment obtenir les statistiques auto et leur colonne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT OBJECT_NAME(s.object_id) AS [Nom_Table]
        ,COL_NAME(sc.object_id, sc.column_id) AS [Nom_Colonne]
        ,s.name AS [Nom_Statistique]
        , STATS_DATE (s.object_id,s.stats_id) 	AS [Date MAJ des statistiques]
    FROM sys.stats s INNER JOIN sys.stats_columns sc ON s.object_id = sc.object_id AND s.stats_id = sc.stats_id 
    WHERE OBJECTPROPERTY(s.object_id, 'IsUserTable') = 1 
    AND s.name like '_WA%' -- Statistique automatique 
    ORDER BY [Nom_Table];
    Mais ma question initiale demeure.
    Pourquoi la commande :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DBCC SHOW_STATISTICS ('dbo.T_TEST',create_date)
    me renvoie cette erreur :
    Msg 2767, Level 16, State 1, Line 1
    Impossible de localiser les statistiques 'create_date' dans le catalogue système.
    Exécution de DBCC terminée. Si DBCC vous a adressé des messages d'erreur, contactez l'administrateur système.
    Pourquoi le moteur ne crée pas des stats sur la colonne create_date ?
    Etienne ZINZINDOHOUE
    Billets-Articles

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

Discussions similaires

  1. JPA Hibernate Index non crée dans Mysql
    Par fvisticot dans le forum JPA
    Réponses: 5
    Dernier message: 24/10/2010, 04h35
  2. Optimiseur et statistiques non rafraîchies
    Par pacmann dans le forum Administration
    Réponses: 4
    Dernier message: 06/11/2008, 17h47
  3. Oracle 10gR2 : vue systables non crées
    Par rourou dans le forum Oracle
    Réponses: 8
    Dernier message: 22/08/2008, 11h50
  4. [debutant] Hibernate : table non crée
    Par lilou77 dans le forum Hibernate
    Réponses: 10
    Dernier message: 06/01/2006, 16h32
  5. Impossible d'accéder aux tables non créées par dbo
    Par Pete dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 07/10/2005, 14h01

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