Stored procedures 需要优化存储过程吗

Stored procedures 需要优化存储过程吗,stored-procedures,Stored Procedures,任何人都可以让我知道优化这个查询。我已经在输入表上建立了索引 ALTER PROCEDURE [dbo].[sp_CTR_ReleaseServicesData_ROQ_UploadJuly5th_Nick] AS IF OBJECT_ID('tempdb..#TempBuildTable') IS NOT NULL DROP TABLE #TempBuildTable IF OBJECT_ID('tempdb..#TempSingleBuildTable') IS NOT N

任何人都可以让我知道优化这个查询。我已经在输入表上建立了索引

ALTER PROCEDURE [dbo].[sp_CTR_ReleaseServicesData_ROQ_UploadJuly5th_Nick]
AS

  IF OBJECT_ID('tempdb..#TempBuildTable') IS NOT NULL
    DROP TABLE #TempBuildTable
  IF OBJECT_ID('tempdb..#TempSingleBuildTable') IS NOT NULL
    DROP TABLE #TempSingleBuildTable
  IF OBJECT_ID('tempdb..#finalBuild') IS NOT NULL
    DROP TABLE #finalBuild
  IF OBJECT_ID('tempdb..#TempBuilds') IS NOT NULL
    DROP TABLE #TempBuilds
  --IF OBJECT_ID('tempdb..#TempDuplicateBuilds') IS NOT NULL drop table  #TempDuplicateBuilds
  --IF OBJECT_ID('tempdb..#TempUniqueBuilds') IS NOT NULL drop table  #TempUniqueBuilds

  /* Get the last 6 months builds to #TempBuilds Table*/
  SELECT
    * INTO #TempBuilds
  FROM (SELECT DISTINCT
    ROW_NUMBER() OVER (ORDER BY MIN(CreatedDateUTC)) AS Inx,
    BuildNumberV2,
    MIN(CreatedDateUTC) AS MinCreatedDateTime,
    MAX(CreatedDateUTC) AS MaxCreatedDateTime,
    DATEDIFF(HOUR, MIN(CreatedDateUTC), MAX(CreatedDateUTC)) AS TimeBetweenFirstLastFile
  FROM ReleaseServicesData_Test_Nick WITH (NOLOCK)
  WHERE ISNUMERIC(REPLACE(BuildNumberV2, '.', '')) = 1
  AND BuildNumberV2 LIKE '%[0-9]%'
  AND BuildNumberV2 LIKE '%.%'
  AND CreatedDateUTC > DATEADD(MONTH, -6, DATEADD(DD, -DATEPART(DD, GETDATE()) + 1, CAST(GETDATE() AS date)))
  AND
  --BuildNumberV2 = '16.0.7129.6926' AND
  RequestStatus = 'Released'
  GROUP BY BuildNumberV2) AS TempBuilds
  --SELECT * from #TempBuilds


  DECLARE @tempBuildLoopCounter int,
          @tempBuildCount int
  DECLARE @tempBuildNumber varchar(100)
  SELECT
    @tempBuildCount = COUNT(*)
  FROM #TempBuilds
  SET @tempBuildLoopCounter = 1


  DECLARE @MaxReplicationPubKeySingapore varchar(100),
          @MaxReplicationTimeSingapore int
  DECLARE @MaxReplicationPubKeyDublin varchar(100),
          @MaxReplicationTimeDublin int
  DECLARE @MaxReplicationPubKeyPR varchar(100),
          @MaxReplicationTimePR int
  DECLARE @MaxReplicationPubKeyCO1 varchar(100),
          @MaxReplicationTimeCO1 int
  DECLARE @MaxPubKeyUpload varchar(100),
          @MaxTimeUpload int
  DECLARE @MaxPubKeyScan varchar(100),
          @MaxTimeScan int

  WHILE (@tempBuildLoopCounter <= @tempBuildCount)
  BEGIN
    SELECT
      @tempBuildNumber = BuildNumberV2
    FROM #TempBuilds
    WHERE Inx = @tempBuildLoopCounter
    PRINT @tempBuildNumber
    PRINT @tempBuildLoopCounter


    DECLARE @tempSingleBuildCount int,
            @tempCounter int
    DECLARE @tempCreatedTime datetime,
            @tempCreatedTimetoCompare datetime
    DECLARE @tempBuildCounter varchar(10)
    SET @tempCounter = 1
    SET @tempBuildCounter = 0

    IF OBJECT_ID('tempdb..#TempSingleBuildTable') IS NOT NULL
      DROP TABLE #TempSingleBuildTable
    SELECT
      * INTO #TempSingleBuildTable
    FROM (SELECT
      0 AS Inx,
      BuildNumberV2,
      CreatedDateUTC,
      DublinReplicationEndTime,
      DublinReplicationStartTime,
      FileSizeInMB,
      FileUploadEndTimeUTC,
      FileUploadStartTime,
      FileUploadEndTime,
      FileUploadStartTimeUTC,
      ImportCopyEndTime,
      PreVaultEndTimeUTC,
      PublisherKey,
      PuertoRicoReplicationEndTime,
      PuertoRicoReplicationStartTime,
      RedmondReplicationEndTime,
      RedmondReplicationStartTime,
      RequestStatus,
      ROQDUBCompletionTimeUTC,
      ROQMOPRCompletionTimeUTC,
      ROQScanEndTimeUTC,
      ROQScanStartTimeUTC,
      ROQSINCompletionTimeUTC,
      ROQUSOCCompletionTimeUTC,
      SingaporeReplicationEndTime,
      SingaporeReplicationStartTime
    FROM ReleaseServicesData_Test_Nick WITH (NOLOCK)
    WHERE BuildNumberV2 = @tempBuildNumber) AS TempSingleBuildTable;

    WITH cte
    AS (SELECT
      Inx,
      ROW_NUMBER() OVER (ORDER BY CreatedDateUTC) AS RowNumber
    FROM #TempSingleBuildTable)
    UPDATE cte
    SET Inx = RowNumber;

    SELECT
      @tempSingleBuildCount = COUNT(*)
    FROM #TempSingleBuildTable
    WHILE (@tempCounter <= @tempSingleBuildCount)
    BEGIN

      SELECT
        @tempCreatedTime = CreatedDateUTC,
        @tempBuildNumber = BuildNumberV2
      FROM #TempSingleBuildTable
      WHERE Inx = @tempCounter
      SELECT
        @tempCreatedTimetoCompare = CreatedDateUTC
      FROM #TempSingleBuildTable
      WHERE Inx = @tempCounter + 1
      IF (DATEDIFF(HOUR, @tempCreatedTime, @tempCreatedTimetoCompare) <= 2)
      BEGIN
        IF (@tempBuildCounter = 0)
          UPDATE #TempSingleBuildTable
          SET BuildNumberV2 = @tempBuildNumber
          WHERE Inx = @tempCounter
        ELSE
          UPDATE #TempSingleBuildTable
          SET BuildNumberV2 = @tempBuildNumber + '_D' + @tempBuildCounter
          WHERE Inx = @tempCounter
      END
      ELSE
      BEGIN

        IF (@tempBuildCounter = 0)
          UPDATE #TempSingleBuildTable
          SET BuildNumberV2 = @tempBuildNumber
          WHERE Inx = @tempCounter
        ELSE
          UPDATE #TempSingleBuildTable
          SET BuildNumberV2 = @tempBuildNumber + '_D' + @tempBuildCounter
          WHERE Inx = @tempCounter

        SET @tempBuildCounter = @tempBuildCounter + 1
      END

      SET @tempCounter = @tempCounter + 1;
    END
    --select distinct BuildNumber from #TempSingleBuildTable
    --SELECT CreatedDateUTC,BuildNumberV2,* FROM #TempSingleBuildTable order by Inx;
    IF (@tempBuildLoopCounter = 1)
    BEGIN
      SELECT
        * INTO #finalBuild
      FROM (SELECT
        TSB.BuildNumberV2
        --,convert(date, CreatedDateUTC) as CreatedDateUTC  
        ,
        MIN(FileUploadStartTimeUTC) AS FileUploadStartTimeUTC,
        MAX(FileUploadEndTimeUTC) AS FileUploadEndTimeUTC,
        MIN(CreatedDateUTC) AS MinCreatedDateUTC,
        MAX(RedmondReplicationEndTime) AS RedmondReplicationEndTime,
        MAX(SingaporeReplicationEndTime) AS SingaporeReplicationEndTime,
        MAX(DublinReplicationEndTime) AS DublinReplicationEndTime,
        MAX(ImportCopyEndTime) AS ImportCopyEndTime,
        MAX(PuertoRicoReplicationEndTime) AS PuertoRicoReplicationEndTime,
        MAX(ROQScanEndTimeUTC) AS ROQScanEndTimeUTC,
        MAX(PreVaultEndTimeUTC) AS PreVaultEndTimeUTC,
        MAX(ROQMOPRCompletionTimeUTC) AS ROQMOPRCompletionTimeUTC,
        MAX(ROQUSOCCompletionTimeUTC) AS ROQUSOCCompletionTimeUTC,
        MAX(ROQDUBCompletionTimeUTC) AS ROQDUBCompletionTimeUTC,
        MAX(ROQSINCompletionTimeUTC) AS ROQSINCompletionTimeUTC,
        (SELECT
          MAX(v)
        FROM (VALUES (MAX(RedmondReplicationEndTime)),
        (MAX(SingaporeReplicationEndTime)),
        (MAX(DublinReplicationEndTime)),
        (MAX(ImportCopyEndTime)),
        (MAX(PuertoRicoReplicationEndTime)),
        (MAX(ROQScanEndTimeUTC)),
        (MAX(ROQMOPRCompletionTimeUTC)),
        (MAX(ROQUSOCCompletionTimeUTC)),
        (MAX(ROQDUBCompletionTimeUTC)),
        (MAX(ROQSINCompletionTimeUTC)),
        (MAX(PreVaultEndTimeUTC))
        ) AS value (v))
        AS LastActivityTime,
        MAX(FileSizeInMB) AS FileSizeInMB,
        COUNT(FileSizeInMB) AS FileCount,
        0 AS MaxReplicationTimeSingapore,
        'DummyDummyDummy' AS MaxReplicationPubKeySingapore,
        0 AS MaxReplicationTimeDublin,
        'DummyDummyDummy' AS MaxReplicationPubKeyDublin,
        0 AS MaxReplicationTimePR,
        'DummyDummyDummy' AS MaxReplicationPubKeyPR,
        0 AS MaxReplicationTimeCO1,
        'DummyDummyDummy' AS MaxReplicationPubKeyCO1,
        0 AS MaxTimeUpload,
        'DummyDummyDummy' AS MaxPubKeyUpload,
        0 AS MaxTimeScan,
        'DummyDummyDummy' AS MaxPubKeyScan,
        MAX(FileUploadStartTimeUTC) AS MaxFileUploadStartTimeUTC
      FROM #TempSingleBuildTable TSB
      WHERE --Title not like '%15.%' AND Title like '%Mondo%'
      RequestStatus = 'Released'
      AND CreatedDateUTC > DATEADD(MM, -6, DATEADD(DD, -DATEPART(DD, GETDATE()) + 1, CAST(GETDATE() AS date)))
      GROUP BY TSB.BuildNumberV2
      --HAVING LTRIM(RTRIM(RIGHT(SUBSTRING(Title,0,CHARINDEX('_',Title,0)),14))) != ''
      ORDER BY TSB.BuildNumberV2 OFFSET 0 ROWS) AS temp
    END
    ELSE
    BEGIN
      INSERT INTO #finalBuild
        SELECT
          TSB.BuildNumberV2
          --,convert(date, CreatedDateUTC) as CreatedDateUTC  
          ,
          MIN(FileUploadStartTimeUTC) AS FileUploadStartTimeUTC,
          MAX(FileUploadEndTimeUTC) AS FileUploadEndTimeUTC,
          MIN(CreatedDateUTC) AS MinCreatedDateUTC,
          MAX(RedmondReplicationEndTime) AS RedmondReplicationEndTime,
          MAX(SingaporeReplicationEndTime) AS SingaporeReplicationEndTime,
          MAX(DublinReplicationEndTime) AS DublinReplicationEndTime,
          MAX(ImportCopyEndTime) AS ImportCopyEndTime,
          MAX(PuertoRicoReplicationEndTime) AS PuertoRicoReplicationEndTime,
          MAX(ROQScanEndTimeUTC) AS ROQScanEndTimeUTC,
          MAX(PreVaultEndTimeUTC) AS PreVaultEndTimeUTC,
          MAX(ROQMOPRCompletionTimeUTC) AS ROQMOPRCompletionTimeUTC,
          MAX(ROQUSOCCompletionTimeUTC) AS ROQUSOCCompletionTimeUTC,
          MAX(ROQDUBCompletionTimeUTC) AS ROQDUBCompletionTimeUTC,
          MAX(ROQSINCompletionTimeUTC) AS ROQSINCompletionTimeUTC,
          (SELECT
            MAX(v)
          FROM (VALUES (MAX(RedmondReplicationEndTime)),
          (MAX(SingaporeReplicationEndTime)),
          (MAX(DublinReplicationEndTime)),
          (MAX(ImportCopyEndTime)),
          (MAX(PuertoRicoReplicationEndTime)),
          (MAX(ROQScanEndTimeUTC)),
          (MAX(ROQMOPRCompletionTimeUTC)),
          (MAX(ROQUSOCCompletionTimeUTC)),
          (MAX(ROQDUBCompletionTimeUTC)),
          (MAX(ROQSINCompletionTimeUTC)),
          (MAX(PreVaultEndTimeUTC))
          ) AS value (v))
          AS LastActivityTime,
          MAX(FileSizeInMB) AS FileSizeInMB,
          COUNT(FileSizeInMB) AS FileCount,
          0 AS MaxReplicationTimeSingapore,
          'Dummy' AS MaxReplicationPubKeySingapore,
          0 AS MaxReplicationTimeDublin,
          'Dummy' AS MaxReplicationPubKeyDublin,
          0 AS MaxReplicationTimePR,
          'Dummy' AS MaxReplicationPubKeyPR,
          0 AS MaxReplicationTimeCO1,
          'Dummy' AS MaxReplicationPubKeyCO1,
          0 AS MaxTimeUpload,
          'Dummy' AS MaxPubKeyUpload,
          0 AS MaxTimeScan,
          'Dummy' AS MaxPubKeyScan,
          MAX(FileUploadStartTimeUTC) AS MaxFileUploadStartTimeUTC
        FROM #TempSingleBuildTable TSB
        WHERE --Title not like '%15.%' AND Title like '%Mondo%'
        RequestStatus = 'Released'
        AND CreatedDateUTC > DATEADD(MM, -6, DATEADD(DD, -DATEPART(DD, GETDATE()) + 1, CAST(GETDATE() AS date)))
        GROUP BY TSB.BuildNumberV2
        --HAVING LTRIM(RTRIM(RIGHT(SUBSTRING(Title,0,CHARINDEX('_',Title,0)),14))) != ''
        ORDER BY TSB.BuildNumberV2 OFFSET 0 ROWS
    END

    SET @MaxReplicationTimeSingapore = 0
    SET @MaxReplicationTimeDublin = 0
    SET @MaxReplicationTimePR = 0
    SET @MaxReplicationTimeCO1 = 0
    SET @MaxTimeUpload = 0
    SET @MaxTimeScan = 0

    IF OBJECT_ID('tempdb..#tempDistinctDuplicateBuilds') IS NOT NULL
      DROP TABLE #tempDistinctDuplicateBuilds
    DECLARE @tempDistinctDuplicateBuildCount int,
            @tempDuplicateBuildCount int,
            @tempBuildDuplicateNumber varchar(100)
    SET @tempDistinctDuplicateBuildCount = 1
    SET @tempDuplicateBuildCount = 1
    SET @tempBuildDuplicateNumber = ''

    CREATE TABLE #tempDistinctDuplicateBuilds (
      Id int IDENTITY (1, 1),
      BuildNumber varchar(100)
    )

    INSERT INTO #tempDistinctDuplicateBuilds
      SELECT DISTINCT
        BuildNumberV2
      FROM #TempSingleBuildTable

    SELECT
      @tempDuplicateBuildCount = COUNT(*)
    FROM #tempDistinctDuplicateBuilds

    WHILE (@tempDistinctDuplicateBuildCount <= @tempDuplicateBuildCount)
    BEGIN
      SELECT
        @tempBuildDuplicateNumber = BuildNumber
      FROM #tempDistinctDuplicateBuilds
      WHERE Id = @tempDistinctDuplicateBuildCount
      SELECT TOP 1
        @MaxReplicationPubKeySingapore = PublisherKey,
        @MaxReplicationTimeSingapore = MAX(DATEDIFF(MINUTE, SingaporeReplicationStartTime, SingaporeReplicationEndTime))
      FROM #TempSingleBuildTable
      WHERE BuildNumberV2 = @tempBuildDuplicateNumber
      GROUP BY PublisherKey
      ORDER BY MAX(DATEDIFF(MINUTE, SingaporeReplicationStartTime, SingaporeReplicationEndTime)) DESC
      SELECT TOP 1
        @MaxReplicationPubKeyDublin = PublisherKey,
        @MaxReplicationTimeDublin = MAX(DATEDIFF(MINUTE, DublinReplicationStartTime, DublinReplicationEndTime))
      FROM #TempSingleBuildTable
      WHERE BuildNumberV2 = @tempBuildDuplicateNumber
      GROUP BY PublisherKey
      ORDER BY MAX(DATEDIFF(MINUTE, DublinReplicationStartTime, DublinReplicationEndTime)) DESC
      SELECT TOP 1
        @MaxReplicationPubKeyPR = PublisherKey,
        @MaxReplicationTimePR = MAX(DATEDIFF(MINUTE, PuertoRicoReplicationStartTime, PuertoRicoReplicationEndTime))
      FROM #TempSingleBuildTable
      WHERE BuildNumberV2 = @tempBuildDuplicateNumber
      GROUP BY PublisherKey
      ORDER BY MAX(DATEDIFF(MINUTE, PuertoRicoReplicationStartTime, PuertoRicoReplicationEndTime)) DESC
      SELECT TOP 1
        @MaxReplicationPubKeyCO1 = PublisherKey,
        @MaxReplicationTimeCO1 = MAX(DATEDIFF(MINUTE, RedmondReplicationStartTime, RedmondReplicationEndTime))
      FROM #TempSingleBuildTable
      WHERE BuildNumberV2 = @tempBuildDuplicateNumber
      GROUP BY PublisherKey
      ORDER BY MAX(DATEDIFF(MINUTE, RedmondReplicationStartTime, RedmondReplicationEndTime)) DESC
      SELECT TOP 1
        @MaxPubKeyUpload = PublisherKey,
        @MaxTimeUpload = MAX(DATEDIFF(MINUTE, FileUploadStartTime, FileUploadEndTime))
      FROM #TempSingleBuildTable
      WHERE BuildNumberV2 = @tempBuildDuplicateNumber
      GROUP BY PublisherKey
      ORDER BY MAX(DATEDIFF(MINUTE, FileUploadStartTime, FileUploadEndTime)) DESC
      SELECT TOP 1
        @MaxPubKeyScan = PublisherKey,
        @MaxTimeScan = MAX(DATEDIFF(MINUTE, ROQScanStartTimeUTC, ROQScanEndTimeUTC))
      FROM #TempSingleBuildTable
      WHERE BuildNumberV2 = @tempBuildDuplicateNumber
      GROUP BY PublisherKey
      ORDER BY MAX(DATEDIFF(MINUTE, ROQScanStartTimeUTC, ROQScanEndTimeUTC)) DESC

      UPDATE #finalBuild
      SET MaxReplicationTimeSingapore = @MaxReplicationTimeSingapore,
          MaxReplicationPubKeySingapore = @MaxReplicationPubKeySingapore,
          MaxReplicationTimeDublin = @MaxReplicationTimeDublin,
          MaxReplicationPubKeyDublin = @MaxReplicationPubKeyDublin,
          MaxReplicationTimePR = @MaxReplicationTimePR,
          MaxReplicationPubKeyPR = @MaxReplicationPubKeyPR,
          MaxReplicationTimeCO1 = @MaxReplicationTimeCO1,
          MaxReplicationPubKeyCO1 = @MaxReplicationPubKeyCO1,
          MaxTimeUpload = @MaxTimeUpload,
          MaxPubKeyUpload = @MaxPubKeyUpload,
          MaxTimeScan = @MaxTimeScan,
          MaxPubKeyScan = @MaxPubKeyScan
      WHERE BuildNumberV2 = @tempBuildDuplicateNumber





      PRINT @MaxReplicationTimeSingapore
      PRINT @MaxReplicationTimeDublin
      PRINT @MaxReplicationTimePR
      PRINT @MaxReplicationTimeCO1
      PRINT @MaxTimeUpload
      PRINT @MaxTimeScan

      PRINT @MaxReplicationPubKeySingapore
      PRINT @MaxReplicationPubKeyDublin
      PRINT @MaxReplicationPubKeyPR
      PRINT @MaxReplicationPubKeyCO1
      PRINT @MaxPubKeyUpload
      PRINT @MaxPubKeyScan

      PRINT @tempBuildDuplicateNumber

      SET @tempDistinctDuplicateBuildCount = @tempDistinctDuplicateBuildCount + 1
    END
    IF OBJECT_ID('tempdb..#tempDistinctDuplicateBuilds') IS NOT NULL
      DROP TABLE #tempDistinctDuplicateBuilds


    SET @tempBuildLoopCounter = @tempBuildLoopCounter + 1
  END





  ALTER TABLE #finalBuild
  ADD Id int IDENTITY (1, 1)

  ALTER TABLE #finalBuild
  ADD BuildTime int NULL

  ALTER TABLE #finalBuild
  ADD WhoFinishedLast varchar(100)

  UPDATE #finalBuild
  SET BuildTime = DATEDIFF(MINUTE, MinCreatedDateUTC, LastActivityTime)

  DECLARE @lasttempCount int,
          @lastMaxCount int,
          @whofinishedlastTime datetime,
          @whofinishedlast varchar(30)
  SET @lasttempCount = 1
  SELECT
    @lastMaxCount = MAX(Id)
  FROM #finalBuild

  UPDATE #finalBuild
  SET WhoFinishedLast = ''

  DECLARE @totalUploadTime int
  DECLARE @totalBuildTime int

  WHILE (@lasttempCount <= @lastMaxCount)
  BEGIN
    PRINT 'Upload Update'
    SET @totalBuildTime = 1;
    SET @totalUploadTime = 1;

    -- Check if upload time is more than or equal to half of total time taken
    SELECT
      @totalUploadTime = DATEDIFF(MINUTE, FileUploadStartTimeUTC, FileUploadEndTimeUTC),
      @totalBuildTime = BuildTime
    FROM #finalBuild
    WHERE Id = @lasttempCount

    PRINT @totalUploadTime

    IF (@totalUploadTime >= @totalBuildTime / 2)
    BEGIN
      SET @whofinishedlast = 'Upload'
    END
    ELSE
    BEGIN
      SELECT
        @whofinishedlastTime = LastActivityTime
      FROM #finalBuild
      WHERE BuildNumberV2 = (SELECT
        BuildNumberV2
      FROM #finalBuild
      WHERE Id = @lasttempCount)



      SELECT
        @whofinishedlast =
                          CASE @whofinishedlastTime
                            WHEN PuertoRicoReplicationEndTime THEN 'PR'
                            WHEN DublinReplicationEndTime THEN 'DUBLIN'
                            WHEN RedmondReplicationEndTime THEN 'COLUMBIA'
                            WHEN SingaporeReplicationEndTime THEN 'SINGAPORE'
                            WHEN ROQScanEndTimeUTC THEN 'SCAN'
                            WHEN ROQSINCompletionTimeUTC THEN 'SINGAPORE'
                            WHEN ROQDUBCompletionTimeUTC THEN 'DUBLIN'
                            WHEN PreVaultEndTimeUTC THEN 'PreVAULT'
                            WHEN ROQMOPRCompletionTimeUTC THEN 'PR'
                            WHEN ROQUSOCCompletionTimeUTC THEN 'COLUMBIA'
                            ELSE 'We have a Problem'
                          END
      FROM #finalBuild
      WHERE BuildNumberV2 = (SELECT
        BuildNumberV2
      FROM #finalBuild
      WHERE Id = @lasttempCount)
    END
    UPDATE #finalBuild
    SET WhoFinishedLast = @whofinishedlast
    WHERE Id = @lasttempCount
    AND BuildTime > 300

    SET @lasttempCount = @lasttempCount + 1
  END


  TRUNCATE TABLE BI_CTR_Upload_Test_Nick

  INSERT INTO BI_CTR_Upload_Test_Nick
    SELECT
      Id,
      BuildNumberV2,
      FileUploadStartTimeUTC,
      FileUploadEndTimeUTC,
      MinCreatedDateUTC,
      RedmondReplicationEndTime,
      SingaporeReplicationEndTime,
      DublinReplicationEndTime,
      ImportCopyEndTime,
      PuertoRicoReplicationEndTime,
      ROQScanEndTimeUTC,
      PreVaultEndTimeUTC,
      ROQMOPRCompletionTimeUTC,
      ROQUSOCCompletionTimeUTC,
      ROQDUBCompletionTimeUTC,
      ROQSINCompletionTimeUTC,
      LastActivityTime,
      FileSizeInMB,
      MaxReplicationTimeSingapore,
      MaxReplicationPubKeySingapore,
      MaxReplicationTimeDublin,
      MaxReplicationPubKeyDublin,
      MaxReplicationTimePR,
      MaxReplicationPubKeyPR,
      MaxReplicationTimeCO1,
      MaxReplicationPubKeyCO1,
      MaxTimeUpload,
      MaxPubKeyUpload,
      MaxTimeScan,
      MaxPubKeyScan,
      MaxFileUploadStartTimeUTC,
      FileCount,
      BuildTime,
      WhoFinishedLast
    FROM #finalBuild


  IF OBJECT_ID('tempdb..#TempBuildTable') IS NOT NULL
    DROP TABLE #TempBuildTable
  IF OBJECT_ID('tempdb..#DuplicateBuilds') IS NOT NULL
    DROP TABLE #DuplicateBuilds
  IF OBJECT_ID('tempdb..#finalBuild') IS NOT NULL
    DROP TABLE #finalBuild
  IF OBJECT_ID('tempdb..#TempBuilds') IS NOT NULL
    DROP TABLE #TempBuilds
  IF OBJECT_ID('tempdb..#TempDuplicateBuilds') IS NOT NULL
    DROP TABLE #TempDuplicateBuilds
  IF OBJECT_ID('tempdb..#TempUniqueBuilds') IS NOT NULL
    DROP TABLE #TempUniqueBuilds

这是用于哪个RDBMS的?请添加一个标记来指定您是在使用mysql、postgresql、sql server、oracle还是db2,或者完全使用其他东西。您应该更详细地解释您的需要。您不能只转储一些代码而期望其他人帮助您。请尝试解释您的问题和具体问题。这是为哪种RDBMS设计的?请添加一个标记来指定您是在使用mysql、postgresql、sql server、oracle还是db2,或者完全使用其他东西。您应该更详细地解释您的需要。您不能只转储一些代码而期望其他人帮助您。请尽量解释你的问题和具体问题。