Допустим, у нас есть следующая таблица:
CREATE TABLE T (
ID INT,
String1 nvarchar(400),
String2 nvarchar(400)
)
И запрос:
select String1, String2, count(*)
from T
group by String1, String2
Если T был проиндексирован с помощью индекса хранилища столбцов , этот запрос на группировку обычно будет выполняться при сканировании индекса не кластеризованного хранилища столбцов.
Если индекс хранилища столбцов хранит строки в формате столбец за столбцом, и каждый столбец сортируется индивидуально, как он может предоставить несколько столбцов для строки одновременно? Это кажется невозможным потому что отдельные столбцы сортируются в разных порядках сортировки. Я не могу придумать способа объединить отдельные столбцы обратно в полную строку, содержащую оба столбца (в этом примере String1, String2).
Как это работает внутри?