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

Développement SQL Server Discussion :

indexage des datetime


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Femme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 7
    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.

  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 010
    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 010
    Billets dans le blog
    6
    Par défaut
    seulement ceux de février 2011.

    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 régulier
    Femme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 7
    Par défaut
    Merci.

    Est-ce que tu aurais un lien vers une source officielle à ce sujet, je n'ai pas réussi à trouver?

  4. #4
    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,

    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)

    @++

  5. #5
    Membre régulier
    Femme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 7
    Par défaut
    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.

  6. #6
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 010
    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 010
    Billets dans le blog
    6
    Par défaut
    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
    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/ * * * * *

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

Discussions similaires

  1. SUM sur des DATETIME pour calculer durée
    Par cana13 dans le forum Développement
    Réponses: 7
    Dernier message: 10/06/2009, 15h10
  2. Indexage des blocs ToWorkspace
    Par tonylataupe dans le forum Simulink
    Réponses: 3
    Dernier message: 29/02/2008, 16h29
  3. Comment additionner des datetime
    Par TrollTop dans le forum VC++ .NET
    Réponses: 4
    Dernier message: 02/10/2007, 16h02
  4. Ajouter un .0 a la fin des DATETIME
    Par kedare dans le forum Langage
    Réponses: 4
    Dernier message: 26/05/2006, 16h12
  5. [Dates] Additionner des datetimes
    Par Jim_Nastiq dans le forum Langage
    Réponses: 9
    Dernier message: 12/05/2006, 15h57

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