У меня есть таблица фактов, содержащая 50 миллионов записей с именем AccountLines, разделенных на Posting_Date_New. Когда я фильтрую записи по определенному многораздельному столбцу, тогда мой запрос работает нормально и сканирует только ограниченные данные в заданном диапазоне. Но когда я сделал объединение с таблицей измерений на основе столбца Posting_Date_New и отфильтровал по финансовому году, он сканирует всю таблицу. Как я могу решить эту проблему? Мне нужно объединить мою таблицу фактов с таблицей измерений и отфильтровать столбцы таблицы измерений без сканирования всей таблицы. Пожалуйста помоги.
Мои запросы следующие.
- Запрос выполнен (истекло 5,542 с, обработано 244,37 МБ)
select ah.ChargeGroup, sum(Amount) Amount from SSIS_STAGING.AccountLine acc
inner join SSIS_STAGING.Dim_Times_BI_Clustering dd on dd.Posting_Date_New = acc.Posting_Date_New
inner join SSIS_STAGING.BranchHierarchy br on br.CostCenterId = acc.BookingBranchID
inner join SSIS_STAGING.Accounts_Hierarchy ah on ah.Account = acc.G_L
where acc.Posting_Date_New between '2018-04-01' and '2019-03-31' and ZoneName = 'BU-North'
group by ah.ChargeGroup
- Запрос завершен (прошло 16,530 с, обработано 5,51 ГБ)
select ah.ChargeGroup, sum(Amount) Amount from SSIS_STAGING.AccountLine acc
inner join SSIS_STAGING.Dim_Times_BI_Clustering dd on dd.Posting_Date_New = acc.Posting_Date_New
inner join SSIS_STAGING.BranchHierarchy br on br.CostCenterId = acc.BookingBranchID
inner join SSIS_STAGING.Accounts_Hierarchy ah on ah.Account = acc.G_L
where dd.FinancialYear = '2018-19' and ZoneName = 'BU-North'
group by ah.ChargeGroup