У меня есть таблица, которая имеет 4 колонкиОптимизация запросов с миллионами строки в таблице
PKID, OutMailID, JobMailingDate, InsertDatetime Это, как данные OT вставляется в таблицу PKID является первичным ключом таблицы для одного outMailID с JObMailingDate есть на avg 3 записи присутствуют в таблице с разные даты вставки даты. Таблица имея миллионы записей
У меня есть много другой таблицы, которая имеет одни и те же данные, но те, как partaining к другой категории
Теперь я хотел бы выяснить 1) Найти все OutMailID Чьей InsertDatetime в между данными параметров диапазона 2) После того, как у меня есть список OutMailID Я хотел бы найти минимум InsertDatetime для всех этих OutMailID Где эта мин Дата падает между Param 1 и Param2
данные для таблицы, как это
Select 1 as PKID,1 as OutMailID,'2010/01/01' as JobMailingDate,'2010/01/01' as InsertDatetime
UNION ALL
Select 2 as PKID,1 as OutMailID,'2010/01/01' as JobMailingDate,'2010/01/02' as InsertDatetime
UNION ALL
Select 3 as PKID,1 as OutMailID,'2010/01/01' as JobMailingDate,'2010/01/03' as InsertDatetime
UNION ALL
Select 4 as PKID,1 as OutMailID,'2010/01/01' as JobMailingDate,'2010/01/04' as InsertDatetime
Все вышеупомянутые 2 шага я хочу, чтобы выполнить в одном запросе так что мой запрос somethig как этот
Select
OutMailID,Min(InsertDatetime)
from
Table T
INNER JOIN
(
Select
OutMailID
from
Table
Where
InsertDatetime Between @Param1 and @Param2
) as T1 On (T1.OutMailID = T.outMailID)
Group by
OutMailID
Having Min(InsertDatetime) Between Between @Param1 and @Param2
Но это не очень хорошо. может кто-нибудь предложить мне хороший способ сделать это?
Вторая проблема заключается в том, что как только у меня будет выход первого запроса, то я использую тот же самый запрос для другой категории, чтобы узнать min InsertDatatime в этой категории и один раз есть вся мин даты для всех категории, то я должен найти Min вставки дату среди всех категории
Может ли вы помочь мне в этом
Благодарности Атула
Я бы пошел с инструкцией 'with' для выполнения более высокой производительности на этом –
Отметьте свой вопрос в базе данных, которую вы используете. Как можно было бы подозревать, фактический двигатель важен как соображение эффективности. –
Вы также должны добавить определение используемых таблиц (как 'create table') все индексы, определенные (как' create index') и план выполнения (в виде простого текста, пожалуйста, скриншоты скрывают слишком много деталей) –