Eu tenho uma tabela de fatos CardTransactionFact
Estrutura da Tabela
TABLE [dbo].[CardTransactionFact]
[CardTransactionID] [int] IDENTITY(1,1) NOT NULL,
[TransactionTerminalID] [int] NOT NULL,
[SourceAccountTypeID] [int] NULL,
[DestinationAccountTypeID] [int] NULL,
[RimNo] [varchar](15) NULL,
[CaptureCodeID] [int] NOT NULL,
[RoutingCodeID] [int] NOT NULL,
[ProcessingCodeID] [int] NOT NULL,
[ActionCodeID] [int] NOT NULL,
[NetworkCodeID] [int] NOT NULL,
[ProductCodeID] [int] NOT NULL,
[AcquiringCountryCodeID] [int] NOT NULL,
[IssuingCountryCodeID] [int] NOT NULL,
[TransactionCurrencyCodeID] [int] NOT NULL,
[AmountBD] [decimal](18, 3) NOT NULL,
[LocalCurrencyCodeID] [int] NOT NULL,
[CardIssuerBank] [int] NOT NULL,
[CardTypeID] [int] NOT NULL,
[SuspectTransactionFlag] [char](1) NOT NULL,
[ReversalTransactionFlag] [char](1) NOT NULL,
[LocalTransactionDateKey] [int] NOT NULL,
[LocalTransactionHourKey] [int] NOT NULL,
[BBKRole] [char](1) NOT NULL,
[AmountRangeKey] [int] NULL,
[CustomerKey] [int] NULL
Tamanho: 11 GB Número de linhas: 56.959.828
Tornou-se muito difícil acessar esta tabela agora, um simples Select count(*) from CardTransactionFact
leva horas para ser executado.
a maioria das colunas na tabela são apenas números inteiros, é por isso que não fiz nenhuma indexação.
O que você acha que devo fazer para melhorar esta tabela e aumentar a velocidade das consultas a esta tabela
- Se estiver indexando quais colunas devo indexar e por quê
- É uma boa ideia particionar a tabela
- Qualquer outra sugestão