¿Vale la pena cambiar una CLAVE PRIMARIA del tipo NVARCHAR al tipo INT?

En nuestra base de datos SQL SERVER 2008 R2 tenemos unCOUNTRIES Tabla referencial que contiene países. losPRIMARY KEY es una columna nvarchar:

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

La clave principal contiene valores como 'FR', 'GER', 'US', 'UK', etc. Esta tabla contiene max. 20 filas.

También tenemos unSALES tabla que contiene datos de ventas:

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

Esta tabla de ventas contiene una columna llamadaCOUNTRY_ID, tambien de tiponvarchar (No es una clave primaria). Esta tabla es mucho más grande, contiene alrededor de 20 millones de filas.

Dentro de nuestra aplicación, al consultar sobre elSALES mesa, filtramos casi cada vez en laCOUNTRY_ID. Incluso así, lleva mucho tiempo realizar la mayoría de las consultas de agregación (incluso con los índices adecuados en su lugar)

Estamos en una fase de desarrollo para mejorar el rendimiento de las consultas en elSALES mesa. Mi pregunta es:

¿Vale la pena cambiar elCOUNTRY_ID escriba desdenvarchar(50) al tipoint? Si la columnaCOUNTRY_ID Se convierte en ambas tablas al tipo.int, ¿puedo esperar un mejor rendimiento al unir las dos tablas?

Respuestas a la pregunta(1)

Su respuesta a la pregunta