Exemple Tableau:SQL Server: colonne Date de l'index dans une table de journal
CREATE TABLE Log (
logID int identity
logDate datetime
logText varchar(42)
)
LOGID est déjà indexé car il est une clé primaire, mais si vous deviez interroger ce tableau vous voudrez probablement utiliser LogDate comme une contrainte. Cependant, logID et logDate vont être dans le même ordre car logDate sera toujours défini sur GETDATE().
Est-il logique de placer un index supplémentaire non cluster sur logDate, en tenant compte du fait que pour la table Log, il est important d'avoir des écritures rapides.
Comment implémentez-vous quelque chose comme ça? Déclarez-vous les deux colonnes en tant que clé primaire ou ignorez le PK et créez l'index avec une vérification unique sur logID? – SurroundedByFish
1) Laisser l'ID de journal comme clé primaire (ceci n'est pas un index). 2) Supprimer l'index clusterisé actuel sur IDlog 3) Créer un index clusterisé sur logDate, idID 4) éventuellement créer un index unique sur logID (si vous avez besoin d'accéder à logID) – Arthur
Je ne pouvais pas créer un index clusterisé lorsqu'un PK avait déjà créé automatiquement et je ne pouvais pas laisser tomber l'index tant que le PK existait. Cependant, j'ai réussi à le faire en créant l'index pour les deux coluns avant d'ajouter la contrainte PK sur l'ID. – SurroundedByFish