抓住我的头。我已经测试了几个不同的索引,似乎无法摆脱这种排序运算符。它超过500万行的成本的53%。它需要花费很长时间才能运行,因此我希望索引可以提供帮助。
查询:
select Client_ID
, first_value(LOB_Code) over(partition by Service_VisitID order by member_dim_key desc) as LOB_Code
, MMI
, Service_Date
, Service_YearMonth
, Service_Billing_Provider_ID
, isnull(Service_Billing_Provider_TIN,'') as service_Billing_Provider_TIN
, Service_Rendering_Provider_ID
, isnull(Service_Rendering_Provider_TIN,'') as Service_Rendering_Provider_TIN
, Service_Key
, Diagnosis_Group_Key
, Service_VisitID
, NPI
, row_number() over(partition by Service_VisitID order by service_total_paid_amt desc) as Row_N
from #SpecAttrib
我在Service_VisitID和Member_Dim_Key上创建了一个索引,它消除了一个问题排序,并认为相同的策略适用于这个。
我已经尝试了以下两个 - 我期望的第一个工作,第二个只是为了它的地狱:
create nonclustered index ix_specattrib_visit_paid on #specAttrib ([Service_VisitID] asc,[Service_Total_Paid_amt] desc)
create nonclustered index ix_specattrib_visit_paid on #specAttrib ([Service_Total_Paid_amt] desc, [Service_VisitID] asc)
以下是排序运算符的属性。