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:
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 :
et SSMS me renvoie le message d'erreur 2767:Code:DBCC SHOW_STATISTICS ('dbo.T_TEST',creation_date)
Citation:
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