Table de logs, clé primaire et index
Bonjour,
J'ai une base de données SQL Serveur 2019 dans laquelle je mets les logs de mon application.
Elle peut rapidement être volumineuse donc une "purge" est déjà envisagée à l'échelle du mois ou de l'année (pas encore tranché).
Toujours est-il que s'est posée la question de mettre une clé primaire (ce qui ne parait pas pertinent semble-t-il) mais ce qui parait pertinent est de mettre un index sur le champ d'horodatage du log.
1 - Me trompe-je pour la clé primaire ?
2 - Comment fonctionne les index sous SQL Server
Voici un extrait de la conversation eyu avec CinéPhil sur le chat :
Citation:
11:06 [ypelissier]: Et pour des logs d'activité, doit-on mettre une clé primaire ? Il me semble que non pour ce cas là... Me trompe-je ?
11:32 [CinePhil]: La clé primaire n'est jamais obligatoire. Il faut se poser la question de l'utilité d'une clé primaire sur une table de log... Je suppose qu'il y aura une colonne horo-datée ?
11:32 [CinePhil]: Et que la recherche dans cette table se fera sur cet horo-datage ?
11:33 [ypelissier]: Oui mais je pense que l'horadatage ne sera pas primaire d'où l'absence de clé primaire
11:33 [ypelissier]: Oui, la recherche se fera avec un horodatage
11:34 [ypelissier]: En tout cas index sur la date
11:35 [CinePhil]: Après je ne sais pas comment fonctionnent les index sur SQL Server. Je suppose qu'il utilise un numéro interne de ligne ou un pointeur pour l'associer à la colonne d'index ? Auquel cas la clé primaire n'est peut-être pas utile sur cette table.
11:35 [CinePhil]: Peut-être y a t-il un renseignement là-dessus chez SQLPro. Ou lui demander son avis par message privé...
11:36 [CinePhil]: Parce qu'ici ça devient désert !
11:37 [ypelissier]: Alors là, pour moi aussi... Mais je vais demander à SQLPro, il passe par ici de temps en temps ? Ou plutôt directement en message privée sur le forum ? Ou mieux, sur le forum directement ?
11:42 [CinePhil]: Sur le forum ce serait mieux. Tout le monde en profite. Il ne passe ici que rarement.
Merci d'avance