У меня есть простой таблицы в SQL Server, глядя, как это:Запрос данных из таблицы с более чем один миллиард строк
id | Date | Value
У меня есть кластерный индекс Date
, некластеризованный индекс id
.
В таблице содержится более одного миллиарда строк.
создать простой запрос, который, кажется, как это:
select * from table
where id = x
and date >= date1 and date < date2
Вопрос: почему он принимает только менее чем один или максимум 3 секунды, чтобы найти данные, когда я использую, например date1 01 sept 2013
и date2 14 oct 2013
, но если я меняю дату1 на 01 oct 2013
, она занимает более 50 секунд, и если я возьму 01 jan 2013
, она снова займет меньше 3 секунд?
Я пробовал все, я удаляю кэш и план выполнения SQL базы данных, все тот же ... SQL Server забыл установить индекс в этих строках? Я не знаю, что делать, кажется, что он работает случайным образом.
Спасибо, я обсужу это с моей командой, потому что обновление таблицы займет некоторое время –