Quantcast
Channel: Forum Getting started with SQL Server
Viewing all articles
Browse latest Browse all 7129

querry running too slow

$
0
0

my query copied below runs too slow when I add the group by to the SQL statement as shown below. I works ok without the group by. I have rebuilt all the indexes involved. Please advise on what should I check?

Thank you for your help in advance

     select TOP 10
       ISNULL(DT.PERIOD_ID, -99) as PERIOD_ID,
       DT.YEAR,
       LKPA.TOTALING_LEVEL_A AS REPORT_TYPE,
       A.ACCT_TYPE AS ACCT_TYPE_ID,
        case when min(A.TB_STATUS) = 0 then 'TRUE' else 'FALSE' end as ACTIVEACCOUNT,
       'USD' as ACCOUNTCURRENCY,
       DT.PERIOD_END_DATE as PERIOD_END_DATE,
	   CASE WHEN LKPA.TOTALING_LEVEL_A = 'BAL SH'
			and LKPA.TOTALING_LEVEL_B = 'TOT LI & SUR'
				THEN CAST((B.PTD_BAL_AMT * -1 )  AS MONEY)
		          ELSE CAST(B.PTD_BAL_AMT AS MONEY)
	     END as GL_ACCT_BAL,

       1 AS TIMEFRAME_ID,
       ISNULL(DC.DIM_ID, -99) AS COMPANY_ID,
       ISNULL(LKPA.DIM_ID, -99) AS CHART_OF_ACCOUNTS_ID,
       LKPA.CCTR AS CCTR_ID
	   ,AD.DIM_ID AS ACCOUNT_DESCRIPTION_ID
	   ,A.ACCT_CODE
       from SOL.VIEW_DIM_TIME DT WITH(NOLOCK),
            [REMOTETEST].[GL].[dbo].[APBL] B WITH(NOLOCK)
       join [REMOTETEST].[GL].[dbo].[ACCT] A  WITH(NOLOCK)
	   on (A.ACCT_INT_CODE = B.ACCT_INT_CODE)
	   Join SOL.[LKP_COA] LKPA WITH(NOLOCK)
	        ON  LKPA.ACCT_CODE = SUBSTRING(A.ACCT_CODE,3,22)
			AND LKPA.TOTALING_LEVEL_A NOT IN ('BEXP', 'SOEXP')
       join [REMOTETEST].[GL].[dbo].[ACTC] C  WITH(NOLOCK)
	   on (substring(A.ACCT_CODE, 3, 7) = C.ACCT_CODE)
       left outer join [REMOTETEST].[GL].[dbo].[BLSK] BAL  WITH(NOLOCK)
	   on (B.BAL_SK = BAL.BAL_SK)
       left outer join [REMOTETEST].[GL].[dbo].[CALP] CAL  WITH(NOLOCK)
	   on (B.CAL_SK = CAL.CAL_SK)
       left outer join [REMOTETEST].[GL].[dbo].[ABRL] RUL  WITH(NOLOCK)
	   on ( BAL.BAL_CODE = RUL.BAL_CODE)
	   LEFT OUTER JOIN SOL.DIM_COMPANY DC  WITH(NOLOCK)
	   ON SUBSTRING(A.ACCT_CODE,1,2) = DC.BUSINESSKEY
	   LEFT OUTER JOIN [SNL].[DIM_ACCOUNT_DESCRIPTION] AD  WITH(NOLOCK)
	   ON ISNULL(NULLIF(A.ACCT_DESC,''), 'UNKNOWN') = AD.[ACCOUNT_DESCRIPTION]

	   where
       A.FLX_PRS_OWNER = 'IIF'
       and A.FLX_PRS_OWNER = 'IIF'
       and B.FLX_PRS_OWNER = 'IIF'
       and C.FLX_PRS_OWNER = 'IIF'
       and BAL.FLX_PRS_OWNER = 'IIF'
       and CAL.FLX_PRS_OWNER = 'IIF'
       and RUL.FLX_PRS_OWNER = 'IIF'
       and ISNULL(A.ACCT_TYPE, -99) <> 5
       and B.BAL_SK = '1'
       and BAL.CURR_TYPE = '0'
       and RUL.BAL_TYPE = '0'
       and CAL.PER_NO <> '400'
	   AND LKPA.TOTALING_LEVEL_A NOT IN ('BEXP', 'SOEXP')
	   and CONVERT(DATE,CAL.PER_END_DATE) BETWEEN DT.PERIOD_START_DATE AND DT.PERIOD_END_DATE
       and CAL.PER_END_DATE <= DT.PERIOD_END_DATE
	   AND DT.YEAR >=2008
	   AND SUBSTRING(A.ACCT_CODE,1,2) = '01'
       and CAST(B.PTD_BAL_AMT AS MONEY) <> 0.00
	   and DT.DIMID = 20160601



       group by
       CAL.PER_END_DATE
       ,LKPA.TOTALING_LEVEL_A
       ,A.ACCT_TYPE
	   ,DC.[DESCRIPTION]
       ,DT.PERIOD_ID
       ,DT.PERIOD_END_DATE
	   ,CAST(B.PTD_BAL_AMT AS MONEY)
       ,DC.DIM_ID
       ,LKPA.DIM_ID
	   ,LKPA.CCTR
       ,DT.YEAR
	   ,AD.DIM_ID
	   ,A.ACCT_CODE
	   ,LKPA.TOTALING_LEVEL_B






Viewing all articles
Browse latest Browse all 7129

Trending Articles