| Author |
Topic |
|
disha
Starting Member
34 Posts |
Posted - 2009-03-29 : 00:21:33
|
| please help em increase the per4formance of the below query Select Record_Type,SUBCATEGORY1,Event_End1,Event_End,ISNULL(Count1,0) AS Count1FROM (Select TOP 12'Incident Records' As Record_Type,'CTS' AS SUBCATEGORY1,Query1.Event_End1,Query1.Event_End,Query2.Count1 from (Select TOP 12 Event_End1, Event_End from (selectREPLACE(RIGHT(CONVERT(VARCHAR(11), (dateadd(mm,0,getdate())), 106), 8), ' ', '-') Event_End1,CONVERT(CHAR(6),(dateadd(mm,-0,getdate())), 112) Event_EndUNION ALLselectREPLACE(RIGHT(CONVERT(VARCHAR(11), (dateadd(mm,-1,getdate())), 106), 8), ' ', '-') Event_End1,CONVERT(CHAR(6),(dateadd(mm,-1,getdate())), 112) Event_EndUNION ALLselectREPLACE(RIGHT(CONVERT(VARCHAR(11), (dateadd(mm,-2,getdate())), 106), 8), ' ', '-') Event_End1,CONVERT(CHAR(6),(dateadd(mm,-2,getdate())), 112) Event_EndUNION ALLselectREPLACE(RIGHT(CONVERT(VARCHAR(11), (dateadd(mm,-3,getdate())), 106), 8), ' ', '-') Event_End1,CONVERT(CHAR(6),(dateadd(mm,-3,getdate())), 112) Event_EndUNION ALLselectREPLACE(RIGHT(CONVERT(VARCHAR(11), (dateadd(mm,-4,getdate())), 106), 8), ' ', '-') Event_End1,CONVERT(CHAR(6),(dateadd(mm,-4,getdate())), 112) Event_EndUNION ALLselectREPLACE(RIGHT(CONVERT(VARCHAR(11), (dateadd(mm,-5,getdate())), 106), 8), ' ', '-') Event_End1,CONVERT(CHAR(6),(dateadd(mm,-5,getdate())), 112) Event_EndUNION ALLselectREPLACE(RIGHT(CONVERT(VARCHAR(11), (dateadd(mm,-6,getdate())), 106), 8), ' ', '-') Event_End1,CONVERT(CHAR(6),(dateadd(mm,-6,getdate())), 112) Event_EndUNION ALLselectREPLACE(RIGHT(CONVERT(VARCHAR(11), (dateadd(mm,-7,getdate())), 106), 8), ' ', '-') Event_End1,CONVERT(CHAR(6),(dateadd(mm,-7,getdate())), 112) Event_EndUNION ALLselectREPLACE(RIGHT(CONVERT(VARCHAR(11), (dateadd(mm,-8,getdate())), 106), 8), ' ', '-') Event_End1,CONVERT(CHAR(6),(dateadd(mm,-8,getdate())), 112) Event_EndUNION ALLselectREPLACE(RIGHT(CONVERT(VARCHAR(11), (dateadd(mm,-9,getdate())), 106), 8), ' ', '-') Event_End1,CONVERT(CHAR(6),(dateadd(mm,-9,getdate())), 112) Event_EndUNION ALLselectREPLACE(RIGHT(CONVERT(VARCHAR(11), (dateadd(mm,-10,getdate())), 106), 8), ' ', '-') Event_End1,CONVERT(CHAR(6),(dateadd(mm,-10,getdate())), 112) Event_EndUNION ALLselectREPLACE(RIGHT(CONVERT(VARCHAR(11), (dateadd(mm,-11,getdate())), 106), 8), ' ', '-') Event_End1,CONVERT(CHAR(6),(dateadd(mm,-11,getdate())), 112) Event_End) zorder by Event_End) Query1Left outer join(Select TOP 12'Incident Records' As Record_Type,'CTS' AS SUBCATEGORY1,Event_End1,Event_End,Count1From(Select 'Incident Records' As Record_Type,(CASE WHEN APPSLIST IN ('CTS-NG-PROD','CTS-NG-PROD-ORACLE') THEN 'CTS' ELSE ' ' END) AS SUBCATEGORY1 ,REPLACE(RIGHT(CONVERT(VARCHAR(11), IR.Event_End, 106), 8), ' ', '-') AS Event_End1 ,CONVERT(CHAR(6),IR.Event_End, 112) AS Event_End ,Count(LOGENTRY_ID) As Count1FROM ITSMDW.dbo.vmetric_ssr_ir_compliance IRWHERE Status ='Closed'AND PARENT_LE_ID is NULLAND APPSLIST IN ('CTS-NG-PROD','CTS-NG-PROD-ORACLE')AND Event_End Between dateadd(mm,-12,getdate()) and getdate() group by (CASE WHEN APPSLIST IN ('CTS-NG-PROD','CTS-NG-PROD-ORACLE') THEN 'CTS' ELSE ' ' END) ,REPLACE(RIGHT(CONVERT(VARCHAR(11), IR.Event_End, 106), 8), ' ', '-') ,CONVERT(CHAR(6),IR.Event_End, 112)) aOrder by Event_End) Query2on Query1.Event_End1 = Query2.Event_End1UNION ALLSelect TOP 12'Incident Records' As Record_Type,'NRG' AS SUBCATEGORY1,Query1.Event_End1,Query1.Event_End,Query2.Count1 from (Select TOP 12 Event_End1, Event_End from (selectREPLACE(RIGHT(CONVERT(VARCHAR(11), (dateadd(mm,0,getdate())), 106), 8), ' ', '-') Event_End1,CONVERT(CHAR(6),(dateadd(mm,-0,getdate())), 112) Event_EndUNION ALLselectREPLACE(RIGHT(CONVERT(VARCHAR(11), (dateadd(mm,-1,getdate())), 106), 8), ' ', '-') Event_End1,CONVERT(CHAR(6),(dateadd(mm,-1,getdate())), 112) Event_EndUNION ALLselectREPLACE(RIGHT(CONVERT(VARCHAR(11), (dateadd(mm,-2,getdate())), 106), 8), ' ', '-') Event_End1,CONVERT(CHAR(6),(dateadd(mm,-2,getdate())), 112) Event_EndUNION ALLselectREPLACE(RIGHT(CONVERT(VARCHAR(11), (dateadd(mm,-3,getdate())), 106), 8), ' ', '-') Event_End1,CONVERT(CHAR(6),(dateadd(mm,-3,getdate())), 112) Event_EndUNION ALLselectREPLACE(RIGHT(CONVERT(VARCHAR(11), (dateadd(mm,-4,getdate())), 106), 8), ' ', '-') Event_End1,CONVERT(CHAR(6),(dateadd(mm,-4,getdate())), 112) Event_EndUNION ALLselectREPLACE(RIGHT(CONVERT(VARCHAR(11), (dateadd(mm,-5,getdate())), 106), 8), ' ', '-') Event_End1,CONVERT(CHAR(6),(dateadd(mm,-5,getdate())), 112) Event_EndUNION ALLselectREPLACE(RIGHT(CONVERT(VARCHAR(11), (dateadd(mm,-6,getdate())), 106), 8), ' ', '-') Event_End1,CONVERT(CHAR(6),(dateadd(mm,-6,getdate())), 112) Event_EndUNION ALLselectREPLACE(RIGHT(CONVERT(VARCHAR(11), (dateadd(mm,-7,getdate())), 106), 8), ' ', '-') Event_End1,CONVERT(CHAR(6),(dateadd(mm,-7,getdate())), 112) Event_EndUNION ALLselectREPLACE(RIGHT(CONVERT(VARCHAR(11), (dateadd(mm,-8,getdate())), 106), 8), ' ', '-') Event_End1,CONVERT(CHAR(6),(dateadd(mm,-8,getdate())), 112) Event_EndUNION ALLselectREPLACE(RIGHT(CONVERT(VARCHAR(11), (dateadd(mm,-9,getdate())), 106), 8), ' ', '-') Event_End1,CONVERT(CHAR(6),(dateadd(mm,-9,getdate())), 112) Event_EndUNION ALLselectREPLACE(RIGHT(CONVERT(VARCHAR(11), (dateadd(mm,-10,getdate())), 106), 8), ' ', '-') Event_End1,CONVERT(CHAR(6),(dateadd(mm,-10,getdate())), 112) Event_EndUNION ALLselectREPLACE(RIGHT(CONVERT(VARCHAR(11), (dateadd(mm,-11,getdate())), 106), 8), ' ', '-') Event_End1,CONVERT(CHAR(6),(dateadd(mm,-11,getdate())), 112) Event_End) zorder by Event_End) Query1Left outer join(Select TOP 12'Incident Records' As Record_Type,'NRG' AS SUBCATEGORY1,Event_End1,Event_End,Count1From(Select 'Incident Records' As Record_Type,(CASE WHEN APPSLIST = 'Agency Portal' THEN 'NRG' ELSE ' ' END) AS SUBCATEGORY1 ,REPLACE(RIGHT(CONVERT(VARCHAR(11), IR.Event_End, 106), 8), ' ', '-') AS Event_End1 ,CONVERT(CHAR(6),IR.Event_End, 112) AS Event_End ,Count(LOGENTRY_ID) As Count1FROM ITSMDW.dbo.vmetric_ssr_ir_compliance IRWHERE Status ='Closed'AND PARENT_LE_ID is NULLAND APPSLIST = 'Agency Portal'AND Event_End Between dateadd(mm,-12,getdate()) and getdate() group by (CASE WHEN APPSLIST = 'Agency Portal' THEN 'NRG' ELSE ' ' END) ,REPLACE(RIGHT(CONVERT(VARCHAR(11), IR.Event_End, 106), 8), ' ', '-') ,CONVERT(CHAR(6),IR.Event_End, 112)) aOrder by Event_End) Query2on Query1.Event_End1 = Query2.Event_End1UNION ALLSelect TOP 12'Incident Records' As Record_Type,'TIBCO' AS SUBCATEGORY1,Query1.Event_End1,Query1.Event_End,Query2.Count1 from (Select TOP 12 Event_End1, Event_End from (selectREPLACE(RIGHT(CONVERT(VARCHAR(11), (dateadd(mm,0,getdate())), 106), 8), ' ', '-') Event_End1,CONVERT(CHAR(6),(dateadd(mm,-0,getdate())), 112) Event_EndUNION ALLselectREPLACE(RIGHT(CONVERT(VARCHAR(11), (dateadd(mm,-1,getdate())), 106), 8), ' ', '-') Event_End1,CONVERT(CHAR(6),(dateadd(mm,-1,getdate())), 112) Event_EndUNION ALLselectREPLACE(RIGHT(CONVERT(VARCHAR(11), (dateadd(mm,-2,getdate())), 106), 8), ' ', '-') Event_End1,CONVERT(CHAR(6),(dateadd(mm,-2,getdate())), 112) Event_EndUNION ALLselectREPLACE(RIGHT(CONVERT(VARCHAR(11), (dateadd(mm,-3,getdate())), 106), 8), ' ', '-') Event_End1,CONVERT(CHAR(6),(dateadd(mm,-3,getdate())), 112) Event_EndUNION ALLselectREPLACE(RIGHT(CONVERT(VARCHAR(11), (dateadd(mm,-4,getdate())), 106), 8), ' ', '-') Event_End1,CONVERT(CHAR(6),(dateadd(mm,-4,getdate())), 112) Event_EndUNION ALLselectREPLACE(RIGHT(CONVERT(VARCHAR(11), (dateadd(mm,-5,getdate())), 106), 8), ' ', '-') Event_End1,CONVERT(CHAR(6),(dateadd(mm,-5,getdate())), 112) Event_EndUNION ALLselectREPLACE(RIGHT(CONVERT(VARCHAR(11), (dateadd(mm,-6,getdate())), 106), 8), ' ', '-') Event_End1,CONVERT(CHAR(6),(dateadd(mm,-6,getdate())), 112) Event_EndUNION ALLselectREPLACE(RIGHT(CONVERT(VARCHAR(11), (dateadd(mm,-7,getdate())), 106), 8), ' ', '-') Event_End1,CONVERT(CHAR(6),(dateadd(mm,-7,getdate())), 112) Event_EndUNION ALLselectREPLACE(RIGHT(CONVERT(VARCHAR(11), (dateadd(mm,-8,getdate())), 106), 8), ' ', '-') Event_End1,CONVERT(CHAR(6),(dateadd(mm,-8,getdate())), 112) Event_EndUNION ALLselectREPLACE(RIGHT(CONVERT(VARCHAR(11), (dateadd(mm,-9,getdate())), 106), 8), ' ', '-') Event_End1,CONVERT(CHAR(6),(dateadd(mm,-9,getdate())), 112) Event_EndUNION ALLselectREPLACE(RIGHT(CONVERT(VARCHAR(11), (dateadd(mm,-10,getdate())), 106), 8), ' ', '-') Event_End1,CONVERT(CHAR(6),(dateadd(mm,-10,getdate())), 112) Event_EndUNION ALLselectREPLACE(RIGHT(CONVERT(VARCHAR(11), (dateadd(mm,-11,getdate())), 106), 8), ' ', '-') Event_End1,CONVERT(CHAR(6),(dateadd(mm,-11,getdate())), 112) Event_End) zorder by Event_End) Query1Left outer join(Select TOP 12'Incident Records' As Record_Type,'TIBCO' AS SUBCATEGORY1,Event_End1,Event_End,Count1From(Select 'Incident Records' As Record_Type,(CASE WHEN APPSLIST = 'ETS-TIBCO' THEN 'TIBCO' ELSE ' ' END) AS SUBCATEGORY1 ,REPLACE(RIGHT(CONVERT(VARCHAR(11), IR.Event_End, 106), 8), ' ', '-') AS Event_End1 ,CONVERT(CHAR(6),IR.Event_End, 112) AS Event_End ,Count(LOGENTRY_ID) As Count1FROM ITSMDW.dbo.vmetric_ssr_ir_compliance IRWHERE Status ='Closed'AND PARENT_LE_ID is NULLAND APPSLIST = 'ETS-TIBCO'AND Event_End Between dateadd(mm,-12,getdate()) and getdate() group by (CASE WHEN APPSLIST = 'ETS-TIBCO' THEN 'TIBCO' ELSE ' ' END) ,REPLACE(RIGHT(CONVERT(VARCHAR(11), IR.Event_End, 106), 8), ' ', '-') ,CONVERT(CHAR(6),IR.Event_End, 112)) aOrder by Event_End) Query2on Query1.Event_End1 = Query2.Event_End1UNION ALLSelect TOP 12'Incident Records' As Record_Type,'ALLIANCE' AS SUBCATEGORY1,Query1.Event_End1,Query1.Event_End,Query2.Count1 from (Select TOP 12 Event_End1, Event_End from (selectREPLACE(RIGHT(CONVERT(VARCHAR(11), (dateadd(mm,0,getdate())), 106), 8), ' ', '-') Event_End1,CONVERT(CHAR(6),(dateadd(mm,-0,getdate())), 112) Event_EndUNION ALLselectREPLACE(RIGHT(CONVERT(VARCHAR(11), (dateadd(mm,-1,getdate())), 106), 8), ' ', '-') Event_End1,CONVERT(CHAR(6),(dateadd(mm,-1,getdate())), 112) Event_EndUNION ALLselectREPLACE(RIGHT(CONVERT(VARCHAR(11), (dateadd(mm,-2,getdate())), 106), 8), ' ', '-') Event_End1,CONVERT(CHAR(6),(dateadd(mm,-2,getdate())), 112) Event_EndUNION ALLselectREPLACE(RIGHT(CONVERT(VARCHAR(11), (dateadd(mm,-3,getdate())), 106), 8), ' ', '-') Event_End1,CONVERT(CHAR(6),(dateadd(mm,-3,getdate())), 112) Event_EndUNION ALLselectREPLACE(RIGHT(CONVERT(VARCHAR(11), (dateadd(mm,-4,getdate())), 106), 8), ' ', '-') Event_End1,CONVERT(CHAR(6),(dateadd(mm,-4,getdate())), 112) Event_EndUNION ALLselectREPLACE(RIGHT(CONVERT(VARCHAR(11), (dateadd(mm,-5,getdate())), 106), 8), ' ', '-') Event_End1,CONVERT(CHAR(6),(dateadd(mm,-5,getdate())), 112) Event_EndUNION ALLselectREPLACE(RIGHT(CONVERT(VARCHAR(11), (dateadd(mm,-6,getdate())), 106), 8), ' ', '-') Event_End1,CONVERT(CHAR(6),(dateadd(mm,-6,getdate())), 112) Event_EndUNION ALLselectREPLACE(RIGHT(CONVERT(VARCHAR(11), (dateadd(mm,-7,getdate())), 106), 8), ' ', '-') Event_End1,CONVERT(CHAR(6),(dateadd(mm,-7,getdate())), 112) Event_EndUNION ALLselectREPLACE(RIGHT(CONVERT(VARCHAR(11), (dateadd(mm,-8,getdate())), 106), 8), ' ', '-') Event_End1,CONVERT(CHAR(6),(dateadd(mm,-8,getdate())), 112) Event_EndUNION ALLselectREPLACE(RIGHT(CONVERT(VARCHAR(11), (dateadd(mm,-9,getdate())), 106), 8), ' ', '-') Event_End1,CONVERT(CHAR(6),(dateadd(mm,-9,getdate())), 112) Event_EndUNION ALLselectREPLACE(RIGHT(CONVERT(VARCHAR(11), (dateadd(mm,-10,getdate())), 106), 8), ' ', '-') Event_End1,CONVERT(CHAR(6),(dateadd(mm,-10,getdate())), 112) Event_EndUNION ALLselectREPLACE(RIGHT(CONVERT(VARCHAR(11), (dateadd(mm,-11,getdate())), 106), 8), ' ', '-') Event_End1,CONVERT(CHAR(6),(dateadd(mm,-11,getdate())), 112) Event_End) zorder by Event_End) Query1Left outer join(Select TOP 12'Incident Records' As Record_Type,'ALLIANCE' AS SUBCATEGORY1,Event_End1,Event_End,Count1From(Select 'Incident Records' As Record_Type,(CASE WHEN APPSLIST IN ('Alliance Agency','Alliance CIC','Alliance Consumer','Alliance Education','Alliance IA') THEN 'ALLIANCE' ELSE ' ' END) AS SUBCATEGORY1 ,REPLACE(RIGHT(CONVERT(VARCHAR(11), IR.Event_End, 106), 8), ' ', '-') AS Event_End1 ,CONVERT(CHAR(6),IR.Event_End, 112) AS Event_End ,Count(LOGENTRY_ID) As Count1FROM ITSMDW.dbo.vmetric_ssr_ir_compliance IRWHERE Status ='Closed'AND PARENT_LE_ID is NULLAND APPSLIST IN ('Alliance Agency','Alliance CIC','Alliance Consumer','Alliance Education','Alliance IA')AND Event_End Between dateadd(mm,-12,getdate()) and getdate() group by (CASE WHEN APPSLIST IN ('Alliance Agency','Alliance CIC','Alliance Consumer','Alliance Education','Alliance IA') THEN 'ALLIANCE' ELSE ' ' END) ,REPLACE(RIGHT(CONVERT(VARCHAR(11), IR.Event_End, 106), 8), ' ', '-') ,CONVERT(CHAR(6),IR.Event_End, 112)) aOrder by Event_End) Query2on Query1.Event_End1 = Query2.Event_End1UNION ALLSelect TOP 12'Incident Records' As Record_Type,'ETS-EDMS' AS SUBCATEGORY1,Query1.Event_End1,Query1.Event_End,Query2.Count1 from (Select TOP 12 Event_End1, Event_End from (selectREPLACE(RIGHT(CONVERT(VARCHAR(11), (dateadd(mm,0,getdate())), 106), 8), ' ', '-') Event_End1,CONVERT(CHAR(6),(dateadd(mm,-0,getdate())), 112) Event_EndUNION ALLselectREPLACE(RIGHT(CONVERT(VARCHAR(11), (dateadd(mm,-1,getdate())), 106), 8), ' ', '-') Event_End1,CONVERT(CHAR(6),(dateadd(mm,-1,getdate())), 112) Event_EndUNION ALLselectREPLACE(RIGHT(CONVERT(VARCHAR(11), (dateadd(mm,-2,getdate())), 106), 8), ' ', '-') Event_End1,CONVERT(CHAR(6),(dateadd(mm,-2,getdate())), 112) Event_EndUNION ALLselectREPLACE(RIGHT(CONVERT(VARCHAR(11), (dateadd(mm,-3,getdate())), 106), 8), ' ', '-') Event_End1,CONVERT(CHAR(6),(dateadd(mm,-3,getdate())), 112) Event_EndUNION ALLselectREPLACE(RIGHT(CONVERT(VARCHAR(11), (dateadd(mm,-4,getdate())), 106), 8), ' ', '-') Event_End1,CONVERT(CHAR(6),(dateadd(mm,-4,getdate())), 112) Event_EndUNION ALLselectREPLACE(RIGHT(CONVERT(VARCHAR(11), (dateadd(mm,-5,getdate())), 106), 8), ' ', '-') Event_End1,CONVERT(CHAR(6),(dateadd(mm,-5,getdate())), 112) Event_EndUNION ALLselectREPLACE(RIGHT(CONVERT(VARCHAR(11), (dateadd(mm,-6,getdate())), 106), 8), ' ', '-') Event_End1,CONVERT(CHAR(6),(dateadd(mm,-6,getdate())), 112) Event_EndUNION ALLselectREPLACE(RIGHT(CONVERT(VARCHAR(11), (dateadd(mm,-7,getdate())), 106), 8), ' ', '-') Event_End1,CONVERT(CHAR(6),(dateadd(mm,-7,getdate())), 112) Event_EndUNION ALLselectREPLACE(RIGHT(CONVERT(VARCHAR(11), (dateadd(mm,-8,getdate())), 106), 8), ' ', '-') Event_End1,CONVERT(CHAR(6),(dateadd(mm,-8,getdate())), 112) Event_EndUNION ALLselectREPLACE(RIGHT(CONVERT(VARCHAR(11), (dateadd(mm,-9,getdate())), 106), 8), ' ', '-') Event_End1,CONVERT(CHAR(6),(dateadd(mm,-9,getdate())), 112) Event_EndUNION ALLselectREPLACE(RIGHT(CONVERT(VARCHAR(11), (dateadd(mm,-10,getdate())), 106), 8), ' ', '-') Event_End1,CONVERT(CHAR(6),(dateadd(mm,-10,getdate())), 112) Event_EndUNION ALLselectREPLACE(RIGHT(CONVERT(VARCHAR(11), (dateadd(mm,-11,getdate())), 106), 8), ' ', '-') Event_End1,CONVERT(CHAR(6),(dateadd(mm,-11,getdate())), 112) Event_End) zorder by Event_End) Query1Left outer join(Select TOP 12'Incident Records' As Record_Type,'ETS-EDMS' AS SUBCATEGORY1,Event_End1,Event_End,Count1From(Select 'Incident Records' As Record_Type,(CASE WHEN APPSLIST = 'ETS-EDMS' THEN 'ETS-EDMS' ELSE ' ' END) AS SUBCATEGORY1 ,REPLACE(RIGHT(CONVERT(VARCHAR(11), IR.Event_End, 106), 8), ' ', '-') AS Event_End1 ,CONVERT(CHAR(6),IR.Event_End, 112) AS Event_End ,Count(LOGENTRY_ID) As Count1FROM ITSMDW.dbo.vmetric_ssr_ir_compliance IRWHERE Status ='Closed'AND PARENT_LE_ID is NULLAND APPSLIST = 'ETS-EDMS'AND Event_End Between dateadd(mm,-12,getdate()) and getdate() group by (CASE WHEN APPSLIST = 'ETS-EDMS' THEN 'ETS-EDMS' ELSE ' ' END) ,REPLACE(RIGHT(CONVERT(VARCHAR(11), IR.Event_End, 106), 8), ' ', '-') ,CONVERT(CHAR(6),IR.Event_End, 112)) aOrder by Event_End) Query2on Query1.Event_End1 = Query2.Event_End1) Final |
|
|
GilaMonster
Master Smack Fu Yak Hacker
4507 Posts |
Posted - 2009-03-29 : 03:17:21
|
| Please post table definitions, index definitions and, if this is SQL 2005, the execution plan saved as a .sqlplan file, zipped and attached.--Gail ShawSQL Server MVP |
 |
|
|
disha
Starting Member
34 Posts |
Posted - 2009-03-30 : 04:48:01
|
| for security reasons i cant do it .but can u guide me on how can i improve performance of my query |
 |
|
|
GilaMonster
Master Smack Fu Yak Hacker
4507 Posts |
Posted - 2009-03-30 : 05:05:01
|
| Without seeing at least the exec plan, I really can't help you much. The query's massive and without seeing how it's running I'm guessing as to where the problems might be.Maybe try breaking the subqueries out, inserting their results into temp tables, indexing those temp tables and joining then for the final query. It might help.--Gail ShawSQL Server MVP |
 |
|
|
darkdusky
Aged Yak Warrior
591 Posts |
|
|
matty
Posting Yak Master
161 Posts |
Posted - 2009-03-30 : 05:34:36
|
| The UNION ALL portion of your code can be replaced with the following code.It might improve performance.Select Event_End1, Event_End from ( SELECT REPLACE(RIGHT(CONVERT(VARCHAR(11), (dateadd(mm,-number,getdate())), 106), 8), ' ', '-') Event_End1, CONVERT(CHAR(6),(dateadd(mm,-number,getdate())), 112) Event_End FROM master..spt_values m WHERE type='P' AND number BETWEEN 0 AND 11)t |
 |
|
|
Transact Charlie
Master Smack Fu Yak Hacker
3451 Posts |
Posted - 2009-03-30 : 06:12:06
|
quote: Originally posted by GilaMonster Without seeing at least the exec plan, I really can't help you much. The query's massive and without seeing how it's running I'm guessing as to where the problems might be.Maybe try breaking the subqueries out, inserting their results into temp tables, indexing those temp tables and joining then for the final query. It might help.--Gail ShawSQL Server MVP
From personal experience that can either help amazingly or hurt horriblyIf this code isn't executed very often and takes a while to run then the temp table idea will probably help a lot.If the code gets executed a lot then the temp table approach will probably introduce a lot of query plan recompiles that can really hurt you.You haven't told us the mean time it takes to run or how much data it is processing. Apart from the query itself you've really told us nothing at all about what your database is like -- how much data you are dealing with. Both of those are vitally important!Charlie===============================================================Msg 3903, Level 16, State 1, Line 1736The ROLLBACK TRANSACTION request has no corresponding BEGIN TRANSACTION |
 |
|
|
darkdusky
Aged Yak Warrior
591 Posts |
Posted - 2009-03-30 : 06:53:21
|
| I've put the current query cleaned up a little below. It is basically 5 main UNION ALLs which I've spit up with ------ lines. You can use UNPIVOT to combine these into a single query.declare @DT datetimeset @DT = @DTSelect Record_Type,SUBCATEGORY1,Event_End1,Event_End,ISNULL(Count1,0) AS Count1FROM (Select TOP 12'Incident Records' As Record_Type,'CTS' AS SUBCATEGORY1,Query1.Event_End1,Query1.Event_End,Query2.Count1 from (Select TOP 12 Event_End1, Event_End from (--...see matty's post) Query1Left outer join(Select TOP 12'Incident Records' As Record_Type,'CTS' AS SUBCATEGORY1,Event_End1,Event_End,Count1From(Select 'Incident Records' As Record_Type,(CASE WHEN APPSLIST IN ('CTS-NG-PROD','CTS-NG-PROD-ORACLE')THEN 'CTS'ELSE ' ' END) AS SUBCATEGORY1 ,REPLACE(RIGHT(CONVERT(VARCHAR(11), IR.Event_End, 106), 8), ' ', '-') AS Event_End1,CONVERT(CHAR(6),IR.Event_End, 112) AS Event_End,Count(LOGENTRY_ID) As Count1FROM ITSMDW.dbo.vmetric_ssr_ir_compliance IRWHERE Status ='Closed'AND PARENT_LE_ID is NULLAND APPSLIST IN ('CTS-NG-PROD','CTS-NG-PROD-ORACLE')AND Event_End Between dateadd(mm,-12,@DT) and @DT group by(CASE WHEN APPSLIST IN ('CTS-NG-PROD','CTS-NG-PROD-ORACLE')THEN 'CTS'ELSE ' ' END),REPLACE(RIGHT(CONVERT(VARCHAR(11), IR.Event_End, 106), 8), ' ', '-') ,CONVERT(CHAR(6),IR.Event_End, 112)) aOrder by Event_End) Query2on Query1.Event_End1 = Query2.Event_End1UNION ALL---------------------------------------------------------------------------------------------------------------------------------------------Select TOP 12'Incident Records' As Record_Type,'NRG' AS SUBCATEGORY1,Query1.Event_End1,Query1.Event_End,Query2.Count1 from (Select TOP 12 Event_End1, Event_End from (--.... see matty's post) Query1Left outer join(Select TOP 12'Incident Records' As Record_Type,'NRG' AS SUBCATEGORY1,Event_End1,Event_End,Count1From(Select 'Incident Records' As Record_Type,(CASE WHEN APPSLIST = 'Agency Portal'THEN 'NRG'ELSE ' ' END) AS SUBCATEGORY1 ,REPLACE(RIGHT(CONVERT(VARCHAR(11), IR.Event_End, 106), 8), ' ', '-') AS Event_End1,CONVERT(CHAR(6),IR.Event_End, 112) AS Event_End,Count(LOGENTRY_ID) As Count1FROM ITSMDW.dbo.vmetric_ssr_ir_compliance IRWHERE Status ='Closed'AND PARENT_LE_ID is NULLAND APPSLIST = 'Agency Portal'AND Event_End Between dateadd(mm,-12,@DT) and @DT group by(CASE WHEN APPSLIST = 'Agency Portal'THEN 'NRG'ELSE ' ' END),REPLACE(RIGHT(CONVERT(VARCHAR(11), IR.Event_End, 106), 8), ' ', '-') ,CONVERT(CHAR(6),IR.Event_End, 112)) aOrder by Event_End) Query2on Query1.Event_End1 = Query2.Event_End1---------------------------------------------------------------------------------------------------------------------------------------------UNION ALLSelect TOP 12'Incident Records' As Record_Type,'TIBCO' AS SUBCATEGORY1,Query1.Event_End1,Query1.Event_End,Query2.Count1 from (Select TOP 12 Event_End1, Event_End from (--..) Query1Left outer join(Select TOP 12'Incident Records' As Record_Type,'TIBCO' AS SUBCATEGORY1,Event_End1,Event_End,Count1From(Select 'Incident Records' As Record_Type,(CASE WHEN APPSLIST = 'ETS-TIBCO'THEN 'TIBCO'ELSE ' ' END) AS SUBCATEGORY1 ,REPLACE(RIGHT(CONVERT(VARCHAR(11), IR.Event_End, 106), 8), ' ', '-') AS Event_End1,CONVERT(CHAR(6),IR.Event_End, 112) AS Event_End,Count(LOGENTRY_ID) As Count1FROM ITSMDW.dbo.vmetric_ssr_ir_compliance IRWHERE Status ='Closed'AND PARENT_LE_ID is NULLAND APPSLIST = 'ETS-TIBCO'AND Event_End Between dateadd(mm,-12,@DT) and @DT group by(CASE WHEN APPSLIST = 'ETS-TIBCO'THEN 'TIBCO'ELSE ' ' END),REPLACE(RIGHT(CONVERT(VARCHAR(11), IR.Event_End, 106), 8), ' ', '-') ,CONVERT(CHAR(6),IR.Event_End, 112)) aOrder by Event_End) Query2on Query1.Event_End1 = Query2.Event_End1---------------------------------------------------------------------------------------------------------------------------------------------UNION ALLSelect TOP 12'Incident Records' As Record_Type,'ALLIANCE' AS SUBCATEGORY1,Query1.Event_End1,Query1.Event_End,Query2.Count1 from (Select TOP 12 Event_End1, Event_End from (--...) Query1Left outer join(Select TOP 12'Incident Records' As Record_Type,'ALLIANCE' AS SUBCATEGORY1,Event_End1,Event_End,Count1From(Select 'Incident Records' As Record_Type,(CASE WHEN APPSLIST IN ('Alliance Agency','Alliance CIC','Alliance Consumer','Alliance Education','Alliance IA')THEN 'ALLIANCE'ELSE ' ' END) AS SUBCATEGORY1 ,REPLACE(RIGHT(CONVERT(VARCHAR(11), IR.Event_End, 106), 8), ' ', '-') AS Event_End1,CONVERT(CHAR(6),IR.Event_End, 112) AS Event_End,Count(LOGENTRY_ID) As Count1FROM ITSMDW.dbo.vmetric_ssr_ir_compliance IRWHERE Status ='Closed'AND PARENT_LE_ID is NULLAND APPSLIST IN ('Alliance Agency','Alliance CIC','Alliance Consumer','Alliance Education','Alliance IA')AND Event_End Between dateadd(mm,-12,@DT) and @DT group by(CASE WHEN APPSLIST IN ('Alliance Agency','Alliance CIC','Alliance Consumer','Alliance Education','Alliance IA')THEN 'ALLIANCE'ELSE ' ' END),REPLACE(RIGHT(CONVERT(VARCHAR(11), IR.Event_End, 106), 8), ' ', '-') ,CONVERT(CHAR(6),IR.Event_End, 112)) aOrder by Event_End) Query2on Query1.Event_End1 = Query2.Event_End1---------------------------------------------------------------------------------------------------------------------------------------------UNION ALLSelect TOP 12'Incident Records' As Record_Type,'ETS-EDMS' AS SUBCATEGORY1,Query1.Event_End1,Query1.Event_End,Query2.Count1 from (Select TOP 12 Event_End1, Event_End from (--..) Query1Left outer join(Select TOP 12'Incident Records' As Record_Type,'ETS-EDMS' AS SUBCATEGORY1,Event_End1,Event_End,Count1From(Select 'Incident Records' As Record_Type,(CASE WHEN APPSLIST = 'ETS-EDMS'THEN 'ETS-EDMS'ELSE ' ' END) AS SUBCATEGORY1 ,REPLACE(RIGHT(CONVERT(VARCHAR(11), IR.Event_End, 106), 8), ' ', '-') AS Event_End1,CONVERT(CHAR(6),IR.Event_End, 112) AS Event_End,Count(LOGENTRY_ID) As Count1FROM ITSMDW.dbo.vmetric_ssr_ir_compliance IRWHERE Status ='Closed'AND PARENT_LE_ID is NULLAND APPSLIST = 'ETS-EDMS'AND Event_End Between dateadd(mm,-12,@DT) and @DT group by(CASE WHEN APPSLIST = 'ETS-EDMS'THEN 'ETS-EDMS'ELSE ' ' END),REPLACE(RIGHT(CONVERT(VARCHAR(11), IR.Event_End, 106), 8), ' ', '-') ,CONVERT(CHAR(6),IR.Event_End, 112)) aOrder by Event_End) Query2on Query1.Event_End1 = Query2.Event_End1) Final |
 |
|
|
disha
Starting Member
34 Posts |
Posted - 2009-03-30 : 06:56:06
|
| Thanks a lot .I will try this out and let you know.miilion thanks i9na advance |
 |
|
|
darkdusky
Aged Yak Warrior
591 Posts |
Posted - 2009-03-30 : 09:54:12
|
| Looking at individual UNION blocks - there seems to be quite a bit of superfluous code with constants put into Record_Type and SUBCATEGORY1 in lower-level subqueries which are not selected in upper query but again have the same constant put into it. I've included one section and commented out some repetition. e.g.---------------------------------------------------------------------------------------------------------------------------------------------Select TOP 12'Incident Records' As Record_Type,'NRG' AS SUBCATEGORY1,Query1.Event_End1,Query1.Event_End,Query2.Count1 from (Select TOP 12 Event_End1, Event_End from (--.... see matty's post) Query1Left outer join(Select TOP 12--'Incident Records' As Record_Type,--'NRG' AS SUBCATEGORY1,Event_End1,Event_End,Count1From(Select --'Incident Records' As Record_Type,--(CASE WHEN APPSLIST = 'Agency Portal'--THEN 'NRG'--ELSE ' ' END) AS SUBCATEGORY1 ,REPLACE(RIGHT(CONVERT(VARCHAR(11), IR.Event_End, 106), 8), ' ', '-') AS Event_End1,CONVERT(CHAR(6),IR.Event_End, 112) AS Event_End,Count(LOGENTRY_ID) As Count1FROM ITSMDW.dbo.vmetric_ssr_ir_compliance IRWHERE Status ='Closed'AND PARENT_LE_ID is NULLAND APPSLIST = 'Agency Portal'AND Event_End Between dateadd(mm,-12,@DT) and @DT group by(CASE WHEN APPSLIST = 'Agency Portal'THEN 'NRG'ELSE ' ' END),REPLACE(RIGHT(CONVERT(VARCHAR(11), IR.Event_End, 106), 8), ' ', '-') ,CONVERT(CHAR(6),IR.Event_End, 112)) aOrder by Event_End) Query2on Query1.Event_End1 = Query2.Event_End1----------------------------------------------- |
 |
|
|
|
|
|