Bonjour,
J'ai une table qui contient les activitées Internet des employés de ma compagnie. À chaque soir je charge environ 1 millions d'enregistrements dans cette table.
J'ai présentement tous le mois d'avril de contenu dans cette table ainsi que le mois de mai et la table fait contient maintenant 42 millions d'enregistrements. Je dois garder un historique de 6 mois dans la table donc si on fait un calcul rapide la table va contenir environ 200 millions de ligne à sa pleine capacité.
Voici le script de création de la table en question :
CREATE TABLE [Optimized_WebProxyReport] (
[ClientIP] [int] NULL ,
[ClientUserName] [int] NULL ,
[ClientAgent] [int] NULL ,
[ClientAuthenticate] [int] NULL ,
[logDate] [datetime] NULL ,
[logTime] [datetime] NULL ,
[service] [int] NULL ,
[servername] [int] NULL ,
[referredserver] [int] NULL ,
[DestHost] [int] NULL ,
[DestHostIP] [int] NULL ,
[DestHostPort] [int] NULL ,
[processingtime] [int] NULL ,
[bytesrecvd] [int] NULL ,
[bytessent] [int] NULL ,
[protocol] [int] NULL ,
[transport] [int] NULL ,
[operation] [int] NULL ,
[uri] [varchar] (255) COLLATE French_CI_AS NULL ,
[mimetype] [int] NULL ,
[objectsource] [int] NULL ,
[resultcode] [int] NULL ,
[CacheInfo] [int] NULL ,
[rule#1] [int] NULL ,
[rule#2] [int] NULL ,
[NoAuto] [int] IDENTITY (1, 1) NOT NULL ,
CONSTRAINT [PK_Optimized_WebProxyReport] PRIMARY KEY CLUSTERED
(
[NoAuto]
) ON [PRIMARY]
) ON [PRIMARY]
GO
J'ai mis un index sur la date, le clientIP et le ClientUserName car je dois sortir des rapports pour des dates précises (pour une semaine du mois) pour des adresses IP spécifique (ClientIP).
Je me demande est-ce que je serais mieux de garder seulement le mois courant dans cette table et de sauvegarder l'historique des 5 mois précédent dans une 5 tables question de réduire le volume de chaque table et ainsi que les requêtes se fassent toujours sur des tables d'environ 30 millions de lignes.
Où si mes indexes sont bien montées faire une requête sur une table de 200 millions d'enregistrements va être aussi rapide que sur une table de 30 millions ?
Merci
Partager