У меня есть таблица со следующей структурой:
primary+foreignkey1
primary+foreignkey2
primary+foreignkey3
primary+foreignkey4
primary+foreignkey5
primary+foreignkey6
string
int
varbinary
Она очень похожа на таблицу фактов, в которой внешние ключи ссылаются на измерения.Размеры очень маленькие, около 2000 рядов каждый.Однако таблица основных фактов содержит 500 миллионов строк.
В настоящее время производительность очень и очень плохая.Простые запросы занимают много времени.Данные меняются каждые 2 года, поэтому они очень статичны.
В настоящее время у нас есть только кластеризованный индекс для всех значений pk:
CREATE TABLE table(
[id1] [int] NOT NULL,
[id2] [int] NOT NULL,
[id2] [int] NOT NULL,
[id4] [int] NOT NULL,
[id5] [int] NOT NULL,
[id6] [int] NOT NULL,
[location] [varchar](50) NOT NULL,
[year] smallint NOT NULL,
[text] [decimal](10, 4) NULL,
[hash] [varbinary](50) NOT NULL,
CONSTRAINT [pk_1] PRIMARY KEY CLUSTERED
(
id1 ASC,
id2 ASC,
id3 ASC,
id4 ASC,
id5 ASC,
id6 ASC,
location ASC,
year asc
)
Может кто-нибудь посоветовать мне индекс наилучшей практики для оптимизации производительности при запросе таблицы?
Спасибо!