У меня есть таблица с 6 столбцами, где один столбец является Id (большой int, primary) и один столбец CreatedDate (datetime), и в нем есть строки более одного миллиона.
при извлечении данных из этой таблицы с использованием приведенного ниже запроса требуется более 1 минуты.
select * from MyTable where CreatedDate between '2019-05-01' and '2019-05-30'
Я также использовал запрос ниже, но это также занимает более 1 минуты.
declare @minId bigint, @maxId bigint
select @minId = min(Id) from MyTable where CreatedDate > = '2019-05-01'
select @maxId = max(id) from MyTable where CreatedDate <= '2019-05-30'
select @minId, @maxId
select * from MyTable where Id between @minId and @maxId
Он имеет только один индекс (Id - первичный ключ), и я предполагаю, что добавление индекса в CreatedDate может повлиять на операции вставки / обновления.
Я хочу объединить этот результат с другой таблицей, чтобы некоторые данные отчета отображались в сетке, но при выполнении этого запроса возникает тайм-аут.
Как быстро получить данные?