Hallo,
ich hab hier 2abfragen:
und
die abfrage dauert extrem lange (bei 3min hab i aufgebrochen), gibt es irgendwelche optimierungen womit das ganze schneller geht?
schonmal besten dank im voraus!!
ich hab hier 2abfragen:
Code:
DECLARE @Monatstart DATETIME; SET @Monatstart = DATEADD(s,0,DATEADD(mm, DATEDIFF(m,0,getdate())-1,0)) DECLARE @Monatende DATETIME; SET @Monatende = DATEADD(s,-1,DATEADD(mm, DATEDIFF(m,0,GETDATE()),0)) SELECT CAST(FLOOR(CAST(IWrkgrpQueueStats.dIntervalStart AS FLOAT)) AS DATETIME) AS Datum, DATEADD(s,0,DATEADD(mm, DATEDIFF(m,0,getdate())-1,0)) AS Monatsstart, DATEADD(s,-1,DATEADD(mm, DATEDIFF(m,0,GETDATE()),0)) AS Monatsende, "IWrkgrpQueueStats"."cName" AS Servicegruppe, {fn IFNULL(SUBQ.MaxAgentenLoggedIn,0)} AS MaxAgentLoggedIn, SUM(nAnsweredAcd + nAbandonedAcd + nFlowOutAcd) As SumAnrufe, SUM(tTalkAcd + tAcw) As Szenariozeit, SUM("IWrkgrpQueueStats"."nDuration") AS SumnDuration, SUM("IWrkgrpQueueStats"."nEnteredAcd") AS SumnEnteredAcd, SUM("IWrkgrpQueueStats"."nAlertedAcd") AS SumnAlertedAcd, SUM("IWrkgrpQueueStats"."nAbandonedAcd") AS SumnAbandonedAcd, SUM("IWrkgrpQueueStats"."nAnsweredAcd") AS SumnAnsweredAcd, SUM("IWrkgrpQueueStats"."nAnswered") AS SumnAnswered, SUM("IWrkgrpQueueStats"."nAnsweredAcdSvcLvl1") AS SumnAnsweredAcdSvcLvl1, SUM("IWrkgrpQueueStats"."nAnsweredAcdSvcLvl2") AS SumnAnsweredAcdSvcLvl2, SUM("IWrkgrpQueueStats"."nAnsweredAcdSvcLvl3") AS SumnAnsweredAcdSvcLvl3, SUM("IWrkgrpQueueStats"."nAnsweredAcdSvcLvl4") AS SumnAnsweredAcdSvcLvl4, SUM("IWrkgrpQueueStats"."nAnsweredAcdSvcLvl5") AS SumnAnsweredAcdSvcLvl5, SUM("IWrkgrpQueueStats"."nAnsweredAcdSvcLvl6") AS SumnAnsweredAcdSvcLvl6, SUM("IWrkgrpQueueStats"."nAbandonAcdSvcLvl1") AS SumnAbandonAcdSvcLvl1, SUM("IWrkgrpQueueStats"."nAbandonAcdSvcLvl2") AS SumnAbandonAcdSvcLvl2, SUM("IWrkgrpQueueStats"."nAbandonAcdSvcLvl3") AS SumnAbandonAcdSvcLvl3, SUM("IWrkgrpQueueStats"."nAbandonAcdSvcLvl4") AS SumnAbandonAcdSvcLvl4, SUM("IWrkgrpQueueStats"."nAbandonAcdSvcLvl5") AS SumnAbandonAcdSvcLvl5, SUM("IWrkgrpQueueStats"."nAbandonAcdSvcLvl6") AS SumnAbandonAcdSvcLvl6, SUM("IWrkgrpQueueStats"."nNotAnsweredAcd") AS SumnNotAnsweredAcd, SUM("IWrkgrpQueueStats"."nGrabbedAcd") AS SumnGrabbedAcd, SUM("IWrkgrpQueueStats"."tTalkAcd") AS SumtTalkAcd, SUM("IWrkgrpQueueStats"."tAnsweredAcd") AS SumtAnsweredAcd, SUM("IWrkgrpQueueStats"."tHoldAcd") AS SumtHoldAcd, SUM("IWrkgrpQueueStats"."tAcw") AS SumtAcw, SUM("IWrkgrpQueueStats"."tAlertedAcd") AS SumtAlertedAcd, SUM("IWrkgrpQueueStats"."tAgentTalk") AS SumtAgentTalk, SUM("IWrkgrpQueueStats"."tAgentInAcw") AS SumtAgentInAcw FROM "IWrkgrpQueueStats" LEFT OUTER JOIN (SELECT IAgentQueueStats.cReportGroup, CAST(FLOOR(CAST(IAgentQueueStats.dIntervalStart AS FLOAT)) AS DATETIME) AS Datum, COUNT(DISTINCT(IAgentQueueStats.[cName])) AS MaxAgentenLoggedIn FROM [IAgentQueueStats] IAgentQueueStats WHERE IAgentQueueStats.[cReportGroup] IN ('WoWi_1647') AND IAgentQueueStats.[dIntervalStart] BETWEEN @Monatstart AND @Monatende AND DATEPART(Hour,"IAgentQueueStats"."dIntervalStart") >= 8 AND DATEPART(Hour,"IAgentQueueStats"."dIntervalStart") < 18 AND DATEPART(dw,"IAgentQueueStats"."dIntervalStart") >= 2 AND DATEPART(dw,"IAgentQueueStats"."dIntervalStart") <= 6 AND IAgentQueueStats.[tAgentAcdLoggedIn] > 0 AND IAgentQueueStats.[cHKey3] = '*' AND IAgentQueueStats.[cHKey4] = '*' GROUP BY IAgentQueueStats.cReportGroup, CAST(FLOOR(CAST(IAgentQueueStats.dIntervalStart AS FLOAT)) AS DATETIME)) SUBQ ON SUBQ.Datum = CAST(FLOOR(CAST(IWrkgrpQueueStats.dIntervalStart AS FLOAT)) AS DATETIME) AND SUBQ.cReportGroup = IWrkgrpQueueStats.cName WHERE"IWrkgrpQueueStats"."cName" IN ('WoWi_1647') AND "IWrkgrpQueueStats"."dIntervalStart" BETWEEN @Monatstart AND @Monatende AND DATEPART(Hour,"IWrkgrpQueueStats"."dIntervalStart") >= 8 AND DATEPART(Hour,"IWrkgrpQueueStats"."dIntervalStart") < 18 AND DATEPART(dw,"IWrkgrpQueueStats"."dIntervalStart") >= 2 AND DATEPART(dw,"IWrkgrpQueueStats"."dIntervalStart") <= 6 AND "IWrkgrpQueueStats"."cReportGroup" = '*' AND "IWrkgrpQueueStats"."cHKey3" = '*' AND "IWrkgrpQueueStats"."cHKey4" = '*' GROUP BY "IWrkgrpQueueStats"."cName", CAST(FLOOR(CAST(IWrkgrpQueueStats.dIntervalStart AS FLOAT)) AS DATETIME), SUBQ.MaxAgentenLoggedIn ORDER BY "IWrkgrpQueueStats"."cName", CAST(FLOOR(CAST(IWrkgrpQueueStats.dIntervalStart AS FLOAT)) AS DATETIME), SUBQ.MaxAgentenLoggedIn
Code:
DECLARE @Monatstart DATETIME; SET @Monatstart = DATEADD(s,0,DATEADD(mm, DATEDIFF(m,0,getdate())-1,0)) DECLARE @Monatende DATETIME; SET @Monatende = DATEADD(s,-1,DATEADD(mm, DATEDIFF(m,0,GETDATE()),0)) SELECT "IWrkgrpQueueStats"."cName", CAST(FLOOR(CAST(IWrkgrpQueueStats.dIntervalStart AS FLOAT)) AS DATETIME) AS Datum, {fn IFNULL(SUBQ.MaxAgentLoggedIn,0)} AS MaxAgentLoggedIn FROM IWrkgrpQueueStats LEFT OUTER JOIN (SELECT IAgentQueueStats.cReportGroup, CAST(FLOOR(CAST(IAgentQueueStats.dIntervalStart AS FLOAT)) AS DATETIME) AS Datum, COUNT(DISTINCT(IAgentQueueStats.[cName])) AS MaxAgentLoggedIn FROM [IAgentQueueStats] IAgentQueueStats WHERE IAgentQueueStats.[cReportGroup] IN ('WoWi_1647') AND IAgentQueueStats.[dIntervalStart] BETWEEN @Monatstart AND @Monatende AND DATEPART(Hour,"IAgentQueueStats"."dIntervalStart") >= 8 AND DATEPART(Hour,"IAgentQueueStats"."dIntervalStart") < 18 AND DATEPART(dw,"IAgentQueueStats"."dIntervalStart") >= 2 AND DATEPART(dw,"IAgentQueueStats"."dIntervalStart") <= 6 AND IAgentQueueStats.[tAgentAcdLoggedIn] > 0 AND IAgentQueueStats.[cHKey3] = '*' AND IAgentQueueStats.[cHKey4] = '*' GROUP BY IAgentQueueStats.cReportGroup, CAST(FLOOR(CAST(IAgentQueueStats.dIntervalStart AS FLOAT)) AS DATETIME)) SUBQ ON SUBQ.Datum = CAST(FLOOR(CAST(IWrkgrpQueueStats.dIntervalStart AS FLOAT)) AS DATETIME) AND SUBQ.cReportGroup = IWrkgrpQueueStats.cName WHERE"IWrkgrpQueueStats"."cName" IN ('WoWi_1647') AND "IWrkgrpQueueStats"."dIntervalStart" BETWEEN @Monatstart AND @Monatende AND DATEPART(Hour,"IWrkgrpQueueStats"."dIntervalStart") >= 8 AND DATEPART(Hour,"IWrkgrpQueueStats"."dIntervalStart") < 18 AND DATEPART(dw,"IWrkgrpQueueStats"."dIntervalStart") >= 2 AND DATEPART(dw,"IWrkgrpQueueStats"."dIntervalStart") <= 6 AND "IWrkgrpQueueStats"."cReportGroup" = '*' AND "IWrkgrpQueueStats"."cHKey3" = '*' AND "IWrkgrpQueueStats"."cHKey4" = '*' GROUP BY "IWrkgrpQueueStats"."cName", CAST(FLOOR(CAST(IWrkgrpQueueStats.dIntervalStart AS FLOAT)) AS DATETIME), SUBQ.MaxAgentLoggedIn ORDER BY "IWrkgrpQueueStats"."cName", CAST(FLOOR(CAST(IWrkgrpQueueStats.dIntervalStart AS FLOAT)) AS DATETIME), SUBQ.MaxAgentLoggedIn
schonmal besten dank im voraus!!
Comment