У меня есть база данных Sql-Server-2008, которую я регулярно запрашиваю, и которая насчитывает более 30 миллионов записей (радость!).К сожалению, эта база данных не может быть радикально изменена, потому что она все еще используется для R / D.
Когда я запрашиваю из этой базы данных, это занимает НАВСЕГДА.Под этим я подразумеваю, что я не был достаточно терпеливым, чтобы ждать результатов (через 2 минуты я должен отменить, чтобы избежать блокировки отдела исследований и разработок).Даже если я использую короткий диапазон дат (более нескольких месяцев), получить результаты из этого невозможно.Я запрашиваю требования из 4 столбцов и, к сожалению, должен использовать внутреннее соединение для другой таблицы (что, как мне сказали, очень дорого с точки зрения эффективности запросов - но это неизбежно).Эта внутренняя объединенная таблица содержит менее 100 тыс. Записей.
Что мне было интересно, можно ли организовать таблицу так, чтобы она по умолчанию упорядочивалась по дате, чтобы уменьшить количество результатов, по которым нужно искать?
Если это невозможно, могу ли я что-нибудь сделать, чтобы сократить время запроса?Есть ли какая-либо другая полезная информация, которая может помочь мне найти решение?
Я включил образец используемого мной запроса:
SELECT DISTINCT N.TestName
FROM [DalsaTE].[dbo].[ResultsUut] U
INNER JOIN [DalsaTE].[dbo].[ResultsNumeric] N
ON N.ModeDescription = 'Mode 8: Low Gain - Green-Blue'
AND N.ResultsUutId = U.ResultsUutId
WHERE U.DeviceName = 'BO-32-3HK60-00-R'
AND U.StartDateTime > '2011-11-25 01:10:10.001'
ORDER BY N.TestName
Любая помощь или предложения приветствуются!