Таблица из трех полей с естественным ключом по всем полям.
Надо ее индексировать так, что бы при любом запросе (при четком указании полей) было максимально быстро.
И вот что у меня получилось
Только таблица стала весить в 4 раза больше.
Может есть варианты получше (без columnstore)?
А еще если сделать вот так
Ты мы экономим место(в 3 раза увеличится только, вместо 4ех), так еще и в скорости получаем прирост на некоторых запросах.
Но конечно с этим очень не удобно работать.
Надо ее индексировать так, что бы при любом запросе (при четком указании полей) было максимально быстро.
И вот что у меня получилось
CREATE table Table1 (ref1 int, ref2 int, ref3 int, primary key clustered(ref1, ref2, ref3)) CREATE index IX_Table1_ref2 on Table1 (ref2, ref3) CREATE index IX_Table1_ref3 on Table1 (ref3) select * from Table1 where ref1=0 select * from Table1 where ref2=0 select * from Table1 where ref3=0 select * from Table1 where ref1=0 and ref2 = 0 select * from Table1 where ref1=0 and ref3 = 0 select * from Table1 where ref2=0 and ref3 = 0
Только таблица стала весить в 4 раза больше.
Может есть варианты получше (без columnstore)?
А еще если сделать вот так
CREATE table Table1 (ref1 int, ref2 int, ref3 int, primary key clustered(ref1, ref2, ref3)) CREATE table Table2 (ref2 int, ref3 int, ref1 int, primary key clustered(ref2, ref3, ref1)) CREATE table Table3 (ref3 int, ref1 int, ref2 int, primary key clustered(ref3, ref1, ref2)) select * from Table1 where ref1=0 select * from Table2 where ref2=0 select * from Table3 where ref3=0 select * from Table1 where ref1=0 and ref2 = 0 select * from Table3 where ref1=0 and ref3 = 0 select * from Table2 where ref2=0 and ref3 = 0
Ты мы экономим место(в 3 раза увеличится только, вместо 4ех), так еще и в скорости получаем прирост на некоторых запросах.
Но конечно с этим очень не удобно работать.