У меня есть таблица records
с тремя полями:Как улучшить запрос диапазона временных меток SQL?
id - the row id
value - the row value
source - the source of the value
timestamp - the time when the row was inserted (should this be a unix timestamp or a datetime?)
И я хочу, чтобы выполнить запрос следующим образом:
SELECT timestamp, value FROM records WHERE timestamp >= a AND timestamp <= b
Однако в таблице с миллионами записей, этот запрос является очень неэффективным !
Я использую Azure SQL Server в качестве СУБД. Можно ли это оптимизировать?
Если да, вы можете предоставить пошаговое руководство для этого (пожалуйста, не пропустите «маленькие» шаги)? Создавать индексы, переделывать запрос, переделывать таблицу (разбиение?) ...
Спасибо!
Казалось бы, вам нужен индекс на 'record (timestamp, value)'. –
Какой тип индекса будет работать лучше всего по этому запросу? – PedroD
Проведите некоторое исследование индексов. Прося каждый отдельный шаг, вы показываете, что не проводили никаких исследований по настройке запросов. – dfundako