У меня есть таблица, которая выглядит примерно так:
CREATE TABLE Records
(
ID UNIQUEIDENTIFIER PRIMARY KEY NONCLUSTERED,
owner UNIQUEIDENTIFIER,
value FLOAT,
timestamp DATETIME
)
Для некоторых других столбцов, не относящихся к этому вопросу, существует кластерный индекс из нескольких столбцов.
Таблица в настоящее время содержит около 500 000 000 строк, и мне нужно работать с ней, но она слишком велика, чтобы иметь дело с ней (мне мешает медленное оборудование). Поэтому я решил работать над этим кусками.
Но если я скажу
SELECT ID
FROM records
WHERE ID LIKE '0000%'
План выполнения показывает, что ВСЯ ТАБЛИЦА сканируется. Я думал, что с индексом будут сканироваться только те строки, которые соответствуют исходному условию, пока SQL не достигнет записей «0001». С% вперед я мог ясно видеть, почему он будет сканировать всю таблицу. Но с% в конце, он не должен сканировать всю таблицу.
Я предполагаю, что это работает по-другому с GUID, а не CHAR
или VARCHAR
столбцами.
Итак, мой вопрос таков: как я могу искать подраздел GUID, не сканируя всю таблицу?