Using SQL Server 2008.
I have a temp table with 500,000 records. I have to insert those to a physical table which has been truncated earlier. I dropped any indexes
on the target table before starting the insert and also created a non clustered index on the temp table.
The insert is running for over two and a half hours now and still going. How can I make the insert faster.
Copying my insert statement for review.
CREATE NONCLUSTERED INDEX #D_Report_NCI1
ON #D_Report (p_id,pr_id,domain_name)
INCLUDE (start_date, end_date)Insert into PP_Code_Map ([P_ID],[Pr_ID] ,[B_code],[B_proc_code_mod],[B_Domain_value] ,[B_service_start_dt] ,[B_service_end_dt] ,[H_code] ,[H_proc_code_mod],[H_value],[H_service_start_dt],[H_service_end_dt] ,[L_code],[L_proc_code_mod],[L_value],[L_service_start_dt],[L_service_end_dt] ,[BM_code],[BM_proc_code_mod],[BM_value],[BM_service_start_dt],[BM_service_end_dt] ,[FE_code],[FE_proc_code_mod],[FE_value],[FE_service_start_dt],[FE_service_endt_dt] ,[EE_code],[EE_proc_code_mod],[EE_value],[EE_service_start_dt],[EE_service_end_dt] ,[SS_code],[SS_Proc_code_mod],[SS_value],[SS_service_start_dt],[SS_service_end_dt] ,[H_Obs_Value],[B_Obs_Value],[L_Obs_Value],[BM_Obs_Value]) Select A.P_ID, A.Pr_ID , B.code as B_code, B.code_mod as B_code_mod, B.Domain_value as B_Domain_value, B.start_date as B_service_start_dt, B.end_date as B_service_end_dt , C.code as H_code, C.code_mod as H_code_mod, C.Domain_value as H_Domain_value, C.start_date as H_service_start_dt, C.end_date as H_service_end_dt , D.code as L_code, D.code_mod as L_code_mod, D.Domain_value as L_Domain_value, D.start_date as L_service_start_dt, D.end_date as L_service_end_dt , E.code as BM_code, E.code_mod as BM_code_mod, E.Domain_value as BM_Domain_value, E.start_date as BM_service_start_dt, E.end_date as BM_service_end_dt , F.code as FE_code, F.code_mod as FE_code_mod, F.Domain_value as FE_value, F.start_date as FE_service_start_dt, F.end_date as FE_service_endt_dt , G.code as EE_code, G.code_mod as EE__code_mod, G.Domain_value as EE_value, G.start_date as EE_service_start_dt, G.end_date as EE_service_end_dt , H.code as SS_code, H.code_mod as SS_code_mod, H.Domain_value as SS_value, H.start_date as SS_service_start_dt, H.end_date as SS_service_end_dt , C.observation_value_num as H_Obs_Value, B.observation_value_num as B_Obs_Value, D.observation_value_num as L_Obs_Value, E.observation_value_num as BM_Obs_Value from #D_Report A left Join #D_Report B on A.P_ID = B.P_ID and A.Pr_ID = B.Pr_ID and B.domain_name like ('bP%') left Join #D_Report C on A.P_ID = C.P_ID and A.Pr_ID = C.Pr_ID and C.domain_name like ('Hb%') left Join #D_Report D on A.P_ID = D.P_ID and A.Pr_ID = D.Pr_ID and D.domain_name like ('LD%') left Join #D_Report E on A.P_ID = E.P_ID and A.Pr_ID = E.Pr_ID and E.domain_name like ('BM%') left Join #D_Report F on A.P_ID = F.P_ID and A.Pr_ID = F.Pr_ID and F.domain_name like ('Ft%') left Join #D_Report G on A.P_ID = G.P_ID and A.Pr_ID = G.Pr_ID and G.domain_name like ('Ee%') left Join #D_Report H on A.P_ID = H.P_ID and A.Pr_ID = H.Pr_ID and H.domain_name like ('sk%') Group by A.P_ID, A.Pr_ID ,B.domain_name, B.code, B.code_mod, B.Domain_value, B.start_date , B.end_date ,C.domain_name, C.code, C.code_mod, C.Domain_value, C.start_date , C.end_date ,D.domain_name, D.code, D.code_mod, D.Domain_value , D.start_date , D.end_date ,E.domain_name, E.code, E.code_mod, E.Domain_value , E.start_date , E.end_date ,F.domain_name, F.code, F.code_mod, F.Domain_value , F.start_date , F.end_date ,G.domain_name, G.code, G.code_mod, G.Domain_value , G.start_date , G.end_date ,H.domain_name, H.code, H.code_mod, H.Domain_value , H.start_date , H.end_date ,C.observation_value_num, B.observation_value_num, D.observation_value_num, E.observation_value_num