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 :

[performances] datetime dans clé primaire, optimisation ?


Sujet :

MS SQL Server

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2004
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 47
    Points : 25
    Points
    25
    Par défaut [performances] datetime dans clé primaire, optimisation ?
    Bonjour,
    Voila j'ai une table qui contiendra a terme des millions d'enregistrement. Il s'agit en fait de relevés de mesures pris sur différents capteurs à intervalle réguliers (en l'occurence toutes les 10min).
    La clé primaire est donc composée de 2 champs : un champ datetime qui précise la date du relevé de la mesure, et un champ IdCapteur qui stipule c'est quel capteur dont la mesure est relevée.
    En gros ca donne
    clé primaire : DateHeure, IdCapteur
    Champs : Mesure max, mesure min, moyenne, etat de la donnée etc...

    Et la je voulais savoir, étant donné que je ferais régulièrement des tris sur ces données pour pouvoir faire des graphiques statistiques etc, est il plus performant d'avoir une clé primaire composée de ces 2 champs, ou bien vaut il mieux créer un IdMesure pour identifier un relevé de mesure et de mettre le IdCapteur en clé etrangère ?

    Il serait plus "logique" je pense d'avoir une clé composée, car c'est par ce biais qu'on identifie la mesure, mais j'ai entendu dire qu'un datetime dans une clé primaire était moins performant.


    Je précise que dans les requêtes qui seront implémentées, on aura de toute facon des recherches ciblées sur la date et le IdCapteur, donc je ne sais pas si au final ca changera quelque choes.

    Des idées ?


    Merci

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 249
    Points : 1 745
    Points
    1 745
    Par défaut article de sql pro.
    il semble que la clef numerique autoincremente soit recommande...
    http://sqlpro.developpez.com/cours/clefs/

  3. #3
    Membre éprouvé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 730
    Points : 923
    Points
    923
    Par défaut
    pour ma part je stockerais la date au format integer
    exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select datediff(minute,getdate(),0)
    ensuite ta primary key serait sur 2 integers ( )

    et tu aurais ta précision !
    Errare humanum est, perseverare diabolicum (Sénèque)

Discussions similaires

  1. passage d'un format varchar a datetime dans un lot DTS
    Par phildos dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 27/04/2006, 09h43
  2. [VB.NET] champ datetime dans un datagrid
    Par HULK dans le forum Windows Forms
    Réponses: 10
    Dernier message: 02/12/2005, 14h26
  3. [C#] Passage d'un DateTime dans un Session
    Par julio84 dans le forum ASP.NET
    Réponses: 4
    Dernier message: 05/04/2005, 16h22
  4. utilisation de "LIKE" avec un type datetime dans r
    Par ericmart dans le forum Langage SQL
    Réponses: 8
    Dernier message: 06/11/2003, 14h58
  5. Réponses: 3
    Dernier message: 23/09/2003, 09h12

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