Ceci est un FAIT Table dans un entrepôt de donnéesPerformance indexation BigInt vs VarChar
Il a un indice composite comme suit
ALTER TABLE [dbo].[Fact_Data]
ADD CONSTRAINT [PK_Fact_Data]
PRIMARY KEY CLUSTERED
(
[Column1_VarChar_10] ASC,
[Column2_VarChar_10] ASC,
[Column3_Int] ASC,
[Column4_Int] ASC,
[Column5_VarChar_10] ASC,
[Column6_VarChar_10] ASC,
[Column7_DateTime] ASC,
[Column8_DateTime] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF,
SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, ONLINE = OFF,
ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON
) ON [PRIMARY]
GO
Dans cette structure, tous les varchar 10 colonnes ont valeurs numériques seulement. Serai-je bénéfique pour moi de changer cette structure de 78 millions de lignes pour contenir BIGINT au lieu de VARCHAR en termes d'interrogation et d'indexation?
D'autres avantages/inconvénients que je devrais envisager?
Ceci est une table de faits dans mon entrepôt de données. il n'y a pas de tables utilisant le PK à partir de cela comme un FK. –
@Raj: ah, ok, cela explique quelques petites choses - vous avez oublié de le mentionner. Mais encore: avez-vous des indices non-cluster sur cette table, aussi? Ceux-ci seraient certainement énormément d'avoir une seule clé INT/BIGINT primaire/clustering –
Bigint utilise 64 BITS pas octets, c'est-à-dire qu'il est deux fois plus grand, pas 16 fois. – Yrlec