Vale a pena mudar uma PRIMARY KEY do tipo NVARCHAR para o tipo INT?

Em nosso banco de dados SQL SERVER 2008 R2, temos umCOUNTRIES tabela referencial que contém países. oPRIMARY KEY é uma coluna nvarchar:

create table COUNTRIES(
   COUNTRY_ID nvarchar(50) PRIMARY KEY,
   ... other columns
)

A chave primária contém valores como "FR", "GER", "US", "UK", etc. Essa tabela contém no máximo 20 linhas.

Nós também temos umSALES tabela contendo dados de vendas:

create table SALES(
    ID int PRIMARY KEY
    COUNTRY_ID nvarchar(50),
    PRODUCT_ID int,
    DATE datetime,
    UNITS decimal(18,2)        
    ... other columns
)

Essa tabela de vendas contém uma coluna chamadaCOUNTRY_IDtambém do tiponvarchar (não é uma chave primária). Esta tabela é muito maior, contendo cerca de 20 milhões de linhas.

Dentro do nosso aplicativo, ao consultar noSALES mesa, filtramos quase todas as vezes noCOUNTRY_ID. Mesmo assim, leva muito tempo para executar a maioria das consultas de agregação (mesmo com os índices apropriados no lugar)

Estamos em uma fase de desenvolvimento para melhorar o desempenho da consulta noSALES mesa. Minha pergunta é:

Vale a pena mudar oCOUNTRY_ID digite denvarchar(50) para o tipoint? Se a colunaCOUNTRY_ID é convertido em ambas as tabelas para o tipoint, posso esperar um melhor desempenho ao ingressar nas duas tabelas?

questionAnswers(1)

yourAnswerToTheQuestion