Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server > Développement
Développement Forum d'entraide sur le Transact-SQL, le CLR, les procédures stockées, les triggers, les requêtes SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/09/2011, 14h09   #1
Invité de passage
 
Femme
Inscription : janvier 2011
Messages : 7
Détails du profil
Informations personnelles :
Sexe : Femme

Informations forums :
Inscription : janvier 2011
Messages : 7
Points : 2
Points : 2
Par défaut indexage des datetime

Bonjour,

est-ce que quelqu'un pourrait me renseigner sur la manière dont SQL Server indexe les datetime?

Par exemple, si je fais un select sur le mois de février de l'année 2011, est-ce que tous les datetime de ma table vont être parcourus ou seulement ceux de l'année 2011?

Merci d'avance.
Yini13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/09/2011, 14h24   #2
Rédacteur/Modérateur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 10 959
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 10 959
Points : 17 791
Points : 17 791
seulement ceux de février 2011.

A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/09/2011, 14h33   #3
Invité de passage
 
Femme
Inscription : janvier 2011
Messages : 7
Détails du profil
Informations personnelles :
Sexe : Femme

Informations forums :
Inscription : janvier 2011
Messages : 7
Points : 2
Points : 2
Merci.

Est-ce que tu aurais un lien vers une source officielle à ce sujet, je n'ai pas réussi à trouver?
Yini13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/09/2011, 15h10   #4
Modérateur

 
Avatar de elsuket
 
Homme Nicolas Souquet
Administrateur de base de données
Inscription : janvier 2005
Messages : 4 669
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Souquet
Âge : 30
Localisation : Thaïlande

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : janvier 2005
Messages : 4 669
Points : 8 729
Points : 8 729
Bonjour,

Que cherchez-vous exactement ? Je ne vois pas non plus de lien qui montre directement le gain sur l'indexation, mais après quelques années de SQL Server, je peux vous dire (et je ne suis pas le seul !) que l'indexation, c'est l'optimisation la plus simple à mettre en place, et qu'elle procure un gain énorme.

Vous pouvez facilement vous en rendre compte de plusieurs façons, en exécutant une fois la même requête, l'une sans et l'autre après avoir ajouté l'index :

- Comparez les plans de requêtes et le nombre réel de lignes manipulées à l'aide du plan réel d'exécution (CTRL + M avant l'exécution de la requête sous SQL Server Management Studio)
- Comparez tout simplement le temps d'exécution
- Comparez le nombre de pages lues à l'aide de l'option de session SET STATISTICS IO ON (à positionner avant la requête)
- Comparez le temps CPU consommé par la requête à l'aide de l'option de session SET STATISTICS TIME ON ( (à positionner avant la requête)

@++
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes.
Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012
elsuket est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 28/09/2011, 16h01   #5
Invité de passage
 
Femme
Inscription : janvier 2011
Messages : 7
Détails du profil
Informations personnelles :
Sexe : Femme

Informations forums :
Inscription : janvier 2011
Messages : 7
Points : 2
Points : 2
Merci pour votre réponse.

Je dispose en fait d'une table avec une grande volumétrie de données, et une majorité des select effectués dessus le sont par rapport à une colonne de type datetime.
Je cherche à savoir s'il serait interessant en terme de performances d'éclater cette colonne en colonnes indexées (année, mois, jour) sur lesquelles faire les requêtes.
Yini13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/09/2011, 17h26   #6
Rédacteur/Modérateur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 10 959
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 10 959
Points : 17 791
Points : 17 791
Citation:
Envoyé par Yini13 Voir le message
Je cherche à savoir s'il serait interessant en terme de performances d'éclater cette colonne en colonnes indexées (année, mois, jour) sur lesquelles faire les requêtes.
Tout dépend de l'utilisation, mais c'est généralement une très mauvaise idée.

Un seul index directement sur la colonne sera très perfromant.

Le moyen le plus simple de le prouver est de prendre toutes vos requêtes, les mettre dans une fenêtre SQL de SSMS, et commencez à prendre les statistiques d'IO sans l'index à l'aide de :
SET STATISTICS IO ON
Puis de faire de même après avoir créé l'index (si possible dans une autre fenêtre pour soutenir le comparaison).

A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est actuellement connecté   Envoyer un message privé Réponse avec citation 20
Vieux 28/09/2011, 18h14   #7
Invité de passage
 
Femme
Inscription : janvier 2011
Messages : 7
Détails du profil
Informations personnelles :
Sexe : Femme

Informations forums :
Inscription : janvier 2011
Messages : 7
Points : 2
Points : 2
Je testerai ça, merci encore.
Yini13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h12.


 
 
 
 
Partenaires

Hébergement Web