Ramon Quintana

Ramon Quintana

  • NA
  • 404
  • 65.4k

How to minimize runtime in a Query

Sep 16 2019 8:07 AM
Hi, some clause to minimize the runtime in this query??
 
it is taking more than 5 minutes to read one table of 5 millions of records and show only 2.5 millons of then after the join and where´s included on it.. 
  1. SELECT  
  2. Query_Base.Calculo_Tasa AS [PC Euros]  
  3. ,Query_Base.profit_center_local_currency AS [PC Local Currency]  
  4. ,Query_Base.Controlling_Area_Controlling_Area_Desc AS [Country]  
  5. ,Query_Base.Fiscal_Year AS [FY]  
  6. ,Query_Base.Period AS [Period]  
  7. ,Query_Base.[Business _Area_Origen] AS [BA]  
  8. ,Query_Base.[Business _Line_Origen] AS [BL]  
  9. ,Query_Base.Tipo_de_costo AS [COA1 Origin]  
  10. ,q1.COA_Level_2 AS COA2  
  11. ,q1.COA_Level_3 AS COA3  
  12. ,CASE  
  13. WHEN Query_Base.Tipo_de_costo = 'NULL'  
  14. THEN CASE  
  15. WHEN q1.COA_Level_2 = 'Financial income, net Split'  
  16. AND Query_Base.Trading_Partner <> '0'  
  17. THEN 'Financial income, net Below Profit'  
  18. WHEN q1.COA_Level_2 = 'Financial income, net Split'  
  19. AND Query_Base.Trading_Partner = '0'  
  20. THEN 'Financial income, net'  
  21. ELSE q1.COA_Level_2  
  22. END  
  23. ELSE Query_Base.Tipo_de_costo  
  24. END AS [Key Figures]  
  25. ,Query_Base.Tipo_de_costo_Partner AS [COA1 Partner]  
  26. ,Query_Base.Average AS [FX Average]  
  27. ,Query_Base.SPOT AS [FX Spot]  
  28. ,Query_Base.Cuentas_Maestro_Numero_cuenta AS [Account Number]  
  29. ,Query_Base.Descripcion_cuenta AS [Account Desc.]  
  30. ,Query_Base.Cuentas_Maestro_Controlling_Area AS [ARE]  
  31. ,Query_Base.Cuentas_Maestro_Profit_Center AS [Profit Center]  
  32. ,Query_Base.[Nombre_ Profit _Center_Origen] AS [PC Desc.]  
  33. ,Query_Base.Partner_Profit_Ctr AS [Profit Center Partner]  
  34. ,Query_Base.[Nombre_ Profit _Center_Partner] AS [PC Partner Desc.]  
  35. ,Query_Base.Elimination_PrCtr AS [Profit Center Elim.]  
  36. ,Query_Base.[Nombre_ Profit _Center_Elimination] AS [PC Elim. Desc.]  
  37. ,Query_Base.Functional_Area AS [Functional Area]  
  38. ,Query_Base.Functional_area_Desc AS [Functional Area Desc.]  
  39. ,Query_Base.Partner_Func_Area AS [Functional Area Partner]  
  40. ,Query_Base.Functional_area_Desc_Partner AS [Functional Area Desc. Partner]  
  41. ,Query_Base.Funcionalidad_Origen AS [PC Functionality]  
  42. ,Query_Base.Funcionalidad_Partner AS [PC Partner Functionality]  
  43. ,Query_Base.[Spiridon _2019_Origen] AS [Depth Structure SAP]  
  44. ,Query_Base.[Business _Subsegment_Origen] AS [Depth Structure ESPRIT]  
  45. ,Query_Base.[Short _Text_Origen] AS [BL Short Text Origin]  
  46. ,Query_Base.[Cross _Div _Biz_Origen] AS [Cross Div. Biz.]  
  47. ,Query_Base.[Cross _Div _Biz_Partner] AS [Cross Div. Biz. Partner]  
  48. ,Query_Base.[TransactionAS [Transaction]  
  49. ,Query_Base.Trans_Type_Desc AS [Transaction Type Desc.]  
  50. ,Query_Base.Origin_Object_num AS [Origin Object]  
  51. ,Query_Base.Origin_Object_description AS [Origin Object Desc.]  
  52. ,Query_Base.Receiver_object_type AS [Receiver Object]  
  53. ,Query_Base.Origin_Object_description_Receiver AS [Receiver Object Desc.]  
  54. ,Query_Base.[Short _Text_Partner] AS [BL Short Text Partner]  
  55. ,Query_Base.[Business _Area_Partner] AS [BA Partner]  
  56. ,Query_Base.[Business _Line_Partner] AS [BL Partner]  
  57. ,Query_Base.[Spiridon _2019_Partner] AS [Depth Structure SAP Partner]  
  58. ,Query_Base.[Business _Subsegment_Partner] AS [Depth Structure ESPRIT Partner]  
  59. ,Query_Base.[Short _Text_Elimination] AS [BL Short Text Elim.]  
  60. ,Query_Base.[Cross _Div _Biz_Elimination] AS [Cross Div. Biz. Elim.]  
  61. ,Query_Base.[Business _Area_Elimination] AS [BA Elim.]  
  62. ,Query_Base.[Business _Line_Elimination] AS [BL Elim.]  
  63. ,Query_Base.[Spiridon _2019_Elimination] AS [Depth Structure SAP Elim.]  
  64. ,Query_Base.[Business _Subsegment_Elimination] AS [Depth Structure ESPRIT Elim.]  
  65. ,Query_Base.Funcionalidad_Elimination AS [PC Elim. Functionality]  
  66. ,Query_Base.Plant AS [Plant] /*,Query_Base.Cuentas_Maestro_Curr_key as [Currency Key]*/  
  67. ,Query_Base.Curr1key1of1PrCtr1LC AS [Currency Key]  
  68. ,Query_Base.Debit_Credit_Ind AS [C/D Indicator]  
  69. ,Query_Base.Cuentas_MaestroTransType AS [Transaction Type]  
  70. ,Query_Base.Trading_Partner AS [Trading Partner]  
  71. ,Query_Base.Periodo AS [Periodo]  
  72. FROM [1RQ_BPCSQL1].[dbo].[Query_Base]  
  73. LEFT OUTER JOIN [1RQ_BPCSQL1].[dbo].[Account_Master_Group2] Q1 ON [1RQ_BPCSQL1].dbo.Query_Base.Cuentas_Maestro_Numero_cuenta >= q1.inicio  
  74. AND [1RQ_BPCSQL1].dbo.Query_Base.Cuentas_Maestro_Numero_cuenta <= Q1.fin  
  75. WHERE [1RQ_BPCSQL1].dbo.Query_Base.Cuentas_Maestro_Numero_cuenta IN (  
  76. 'R1110110'  
  77. ,'R1111300'  
  78. ,'R3310000' /*,'R9999900'*/  
  79. )  
  80. AND [1RQ_BPCSQL1].dbo.Query_Base.Fiscal_Year >= 2010  
  81. AND [1RQ_BPCSQL1].dbo.Query_Base.period BETWEEN 1  
  82. AND 12  
  83. OR [1RQ_BPCSQL1].dbo.Query_Base.Cuentas_Maestro_Numero_cuenta LIKE ('S6%')  
  84. AND [1RQ_BPCSQL1].dbo.Query_Base.Fiscal_Year >= 2010  
  85. AND [1RQ_BPCSQL1].dbo.Query_Base.period BETWEEN 1  
  86. AND 12  
  87. UNION  
  88. SELECT Query_Base.Calculo_Tasa AS [PC Euros]  
  89. ,Query_Base.profit_center_local_currency AS [PC Local Currency]  
  90. ,Query_Base.Controlling_Area_Controlling_Area_Desc AS [Country]  
  91. ,Query_Base.Fiscal_Year AS [FY]  
  92. ,Query_Base.Period AS [Period]  
  93. ,Query_Base.[Business _Area_Origen] AS [BA]  
  94. ,Query_Base.[Business _Line_Origen] AS [BL]  
  95. ,Query_Base.Tipo_de_costo AS [COA1 Origin]  
  96. ,CASE  
  97. WHEN Q.COA_Level_2 = 'Financial income, net Split'  
  98. AND Query_Base.Trading_Partner <> '0'  
  99. THEN 'Financial income, net Below Profit'  
  100. WHEN Q.COA_Level_2 = 'Financial income, net Split'  
  101. AND Query_Base.Trading_Partner = '0'  
  102. THEN 'Financial income, net'  
  103. ELSE Q.COA_Level_2  
  104. END AS COA2  
  105. ,Q.COA_Level_3 AS COA3  
  106. ,CASE  
  107. WHEN Query_Base.Cuentas_Maestro_Numero_cuenta >= '50000000'  
  108. AND Query_Base.Cuentas_Maestro_Numero_cuenta <= '59999999'  
  109. THEN 'Own Business (Rev outside SHS)'  
  110. ELSE CASE  
  111. WHEN Query_Base.Tipo_de_costo = 'NULL'  
  112. THEN CASE  
  113. WHEN Q.COA_Level_2 = 'Financial income, net Split'  
  114. AND Query_Base.Trading_Partner <> '0'  
  115. THEN 'Financial income, net Below Profit'  
  116. WHEN Q.COA_Level_2 = 'Financial income, net Split'  
  117. AND Query_Base.Trading_Partner = '0'  
  118. THEN 'Financial income, net'  
  119. ELSE Q.COA_Level_2  
  120. END  
  121. ELSE Query_Base.Tipo_de_costo  
  122. END  
  123. END AS [Key Figures]  
  124. ,Query_Base.Tipo_de_costo_Partner AS [COA1 Partner]  
  125. ,Query_Base.Average AS [FX Average]  
  126. ,Query_Base.SPOT AS [FX Spot]  
  127. ,Query_Base.Cuentas_Maestro_Numero_cuenta AS [Account Number]  
  128. ,Query_Base.Descripcion_cuenta AS [Account Desc.]  
  129. ,Query_Base.Cuentas_Maestro_Controlling_Area AS [ARE]  
  130. ,Query_Base.Cuentas_Maestro_Profit_Center AS [Profit Center]  
  131. ,Query_Base.[Nombre_ Profit _Center_Origen] AS [PC Desc.]  
  132. ,Query_Base.Partner_Profit_Ctr AS [Profit Center Partner]  
  133. ,Query_Base.[Nombre_ Profit _Center_Partner] AS [PC Partner Desc.]  
  134. ,Query_Base.Elimination_PrCtr AS [Profit Center Elim.]  
  135. ,Query_Base.[Nombre_ Profit _Center_Elimination] AS [PC Elim. Desc.]  
  136. ,Query_Base.Functional_Area AS [Functional Area]  
  137. ,Query_Base.Functional_area_Desc AS [Functional Area Desc.]  
  138. ,Query_Base.Partner_Func_Area AS [Functional Area Partner]  
  139. ,Query_Base.Functional_area_Desc_Partner AS [Functional Area Desc. Partner]  
  140. ,Query_Base.Funcionalidad_Origen AS [PC Functionality]  
  141. ,Query_Base.Funcionalidad_Partner AS [PC Partner Functionality]  
  142. ,Query_Base.[Spiridon _2019_Origen] AS [Depth Structure SAP]  
  143. ,Query_Base.[Business _Subsegment_Origen] AS [Depth Structure ESPRIT]  
  144. ,Query_Base.[Short _Text_Origen] AS [BL Short Text Origin]  
  145. ,Query_Base.[Cross _Div _Biz_Origen] AS [Cross Div. Biz.]  
  146. ,Query_Base.[Cross _Div _Biz_Partner] AS [Cross Div. Biz. Partner]  
  147. ,Query_Base.[TransactionAS [Transaction]  
  148. ,Query_Base.Trans_Type_Desc AS [Transaction Type Desc.]  
  149. ,Query_Base.Origin_Object_num AS [Origin Object]  
  150. ,Query_Base.Origin_Object_description AS [Origin Object Desc.]  
  151. ,Query_Base.Receiver_object_type AS [Receiver Object]  
  152. ,Query_Base.Origin_Object_description_Receiver AS [Receiver Object Desc.]  
  153. ,Query_Base.[Short _Text_Partner] AS [BL Short Text Partner]  
  154. ,Query_Base.[Business _Area_Partner] AS [BA Partner]  
  155. ,Query_Base.[Business _Line_Partner] AS [BL Partner]  
  156. ,Query_Base.[Spiridon _2019_Partner] AS [Depth Structure SAP Partner]  
  157. ,Query_Base.[Business _Subsegment_Partner] AS [Depth Structure ESPRIT Partner]  
  158. ,Query_Base.[Short _Text_Elimination] AS [BL Short Text Elim.]  
  159. ,Query_Base.[Cross _Div _Biz_Elimination] AS [Cross Div. Biz. Elim.]  
  160. ,Query_Base.[Business _Area_Elimination] AS [BA Elim.]  
  161. ,Query_Base.[Business _Line_Elimination] AS [BL Elim.]  
  162. ,Query_Base.[Spiridon _2019_Elimination] AS [Depth Structure SAP Elim.]  
  163. ,Query_Base.[Business _Subsegment_Elimination] AS [Depth Structure ESPRIT Elim.]  
  164. ,Query_Base.Funcionalidad_Elimination AS [PC Elim. Functionality]  
  165. ,Query_Base.Plant AS [Plant] /*,Query_Base.Cuentas_Maestro_Curr_key as [Currency Key]*/  
  166. ,Query_Base.Curr1key1of1PrCtr1LC AS [Currency Key]  
  167. ,Query_Base.Debit_Credit_Ind AS [C/D Indicator]  
  168. ,Query_Base.Cuentas_MaestroTransType AS [Transaction Type]  
  169. ,Query_Base.Trading_Partner AS [Trading Partner]  
  170. ,Query_Base.Periodo AS [Periodo]  
  171. FROM [1RQ_BPCSQL1].[dbo].[Query_Base]  
  172. LEFT OUTER JOIN [1RQ_BPCSQL1].[dbo].[Account_Master_Group] Q ON [1RQ_BPCSQL1].dbo.Query_Base.Cuentas_Maestro_Numero_cuenta >= Q.inicio  
  173. AND [1RQ_BPCSQL1].dbo.Query_Base.Cuentas_Maestro_Numero_cuenta <= Q.fin  
  174. WHERE isnull(TRY_CAST([1RQ_BPCSQL1].dbo.Query_Base.Cuentas_Maestro_Numero_cuenta AS INT), 0) BETWEEN 50000000  
  175. AND 89999999  
  176. AND [1RQ_BPCSQL1].dbo.Query_Base.Fiscal_Year >= 2010  
  177. AND [1RQ_BPCSQL1].dbo.Query_Base.period BETWEEN 1  
  178. AND 12  
Thanks for some help... 

Answers (2)