Sql server 如何优化速度太慢的存储过程?

Sql server 如何优化速度太慢的存储过程?,sql-server,sql-server-2008,stored-procedures,query-performance,Sql Server,Sql Server 2008,Stored Procedures,Query Performance,我的存储过程大约需要1分45秒,如何优化它?我尝试了一些事情,比如在插入之前创建临时表 我估计执行计划,但我不知道如何上传它 这是我的存储过程的一部分,需要更长的时间,查询成本为53% SELECT Distinct BackupCTE.[InstanceName] ,CASE WHEN DBAPP.ComplianceReportExceptions.InstanceName IS NOT NULL AND ComplianceReportExceptions.Environme

我的存储过程大约需要1分45秒,如何优化它?我尝试了一些事情,比如在插入之前创建临时表

我估计执行计划,但我不知道如何上传它

这是我的存储过程的一部分,需要更长的时间,查询成本为53%

SELECT Distinct
    BackupCTE.[InstanceName]
   ,CASE WHEN DBAPP.ComplianceReportExceptions.InstanceName IS NOT NULL AND ComplianceReportExceptions.EnvironmentType = 0 THEN '-1' Else CONVERT(VARCHAR,BackupCTE.EnvironmentType) END  AS EnvironmentType
   ,CASE WHEN DBAPP.ComplianceReportExceptions.InstanceName IS NOT NULL AND ComplianceReportExceptions.InstanceStatus = 0 THEN '-1' Else CONVERT(VARCHAR,BackupCTE.InstanceStatus) END AS [InstanceStatus] 
   ,BackupCTE.[BackupShare]
   ,CASE WHEN DBAPP.ComplianceReportExceptions.InstanceName IS NOT NULL AND ComplianceReportExceptions.DatabaseOwner = 0 THEN '-1'
          WHEN ISNULL(BackupCTE.IsMirroringEnabled,0) = 0 AND BackupCTE.DatabaseOwner NOT IN ('SA') AND BackupCTE.DatabaseStatus = 'Normal' AND BackupCTE.DatabaseReadOnly = 0
              AND ISNULL(BackupCTE.IsDatabaseSnapshot,0) = 0 THEN '0'
         ELSE '1' END AS DatabaseOwner
   ,CASE WHEN DBAPP.ComplianceReportExceptions.InstanceName IS NOT NULL AND ComplianceReportExceptions.DBRecoveryModel = 0 THEN '-1' 
          WHEN BackupCTE.DatabaseStatus = 'Normal' AND BackupCTE.DatabaseName NOT IN ('master', 'msdb', 'IHC_DBA','distribution','ReportServerTempDB','NavicareReporting','ReportServer') AND
               BackupCTE.RecoveryModel NOT IN ('Full','BulkLogged') THEN '0'
          ELSE '1'
    END AS [DBRecoveryModel]
   ,CASE WHEN DBAPP.ComplianceReportExceptions.InstanceName IS NOT NULL AND ComplianceReportExceptions.AutoShrink = 0 THEN '-1'              
         ELSE CONVERT(VARCHAR, BackupCTE.[AutoShrink]) END AS [AutoShrink]
   ,CASE WHEN DBAPP.ComplianceReportExceptions.InstanceName IS NOT NULL AND ComplianceReportExceptions.AutoClose = 0 THEN '-1' Else CONVERT(VARCHAR,BackupCTE.[AutoClose]) END AS [AutoClose]
   ,CASE WHEN DBAPP.ComplianceReportExceptions.InstanceName IS NOT NULL AND ComplianceReportExceptions.BackupCompression = 0 THEN '-1' 
          WHEN BackupCTE.[BackupCompression] = 0 THEN '0'
          Else '1' END AS [BackupCompression]
   ,CASE WHEN DBAPP.ComplianceReportExceptions.InstanceName IS NOT NULL AND ComplianceReportExceptions.XPCmdShell = 0 THEN '-1' 
         WHEN CONVERT(VARCHAR,BackupCTE.[XPCmdShell]) = 0 THEN '1'
         Else '0' END AS [XPCmdShell]
   ,CASE WHEN DBAPP.ComplianceReportExceptions.InstanceName IS NOT NULL AND ComplianceReportExceptions.EncryptionEnabled = 0 THEN '-1' Else CONVERT(VARCHAR,BackupCTE.[EncryptionEnabled]) END AS [EncryptionEnabled]
   ,CASE WHEN DBAPP.ComplianceReportExceptions.InstanceName IS NOT NULL AND ComplianceReportExceptions.IsIdera = 0 THEN '-1' Else CONVERT(VARCHAR,BackupCTE.[IsIdera]) END AS [IsIdera]
   ,[HoursRetentionShare]
   ,[HoursSinceLastFullBackup]
   ,[HoursSinceLastDiffBackup]
   ,[HoursSinceLastLogBackup]
   ,CASE WHEN DBAPP.ComplianceReportExceptions.InstanceName IS NOT NULL AND ComplianceReportExceptions.ExceededBkpTimeFrame = 0 THEN '-1' Else BackupCTE.ExceededBkpTimeFrame 
    END AS ExceededBkpTimeFrame
   ,BackupType
   ,CASE WHEN DBAPP.ComplianceReportExceptions.InstanceName IS NOT NULL AND ComplianceReportExceptions.[Primary] = 0 THEN '-1' Else BackupCTE.[Primary] END AS [Primary]
   ,CASE WHEN DBAPP.ComplianceReportExceptions.InstanceName IS NOT NULL AND ComplianceReportExceptions.[Secondary] = 0 THEN '-1' Else BackupCTE.[Secondary] END AS [Secondary]
   ,CASE WHEN DBAPP.ComplianceReportExceptions.InstanceName IS NOT NULL AND ComplianceReportExceptions.[LockPages] = 0 THEN '-1' 
        Else CONVERT(varchar,BackupCTE.[LockPages]) END  AS [LockPages]
   ,CASE WHEN DBAPP.ComplianceReportExceptions.InstanceName IS NOT NULL AND ComplianceReportExceptions.[SADisabled] = 0 THEN '-1'  
         WHEN CONVERT(varchar,BackupCTE.[SADisabled]) = 0 AND BackupCTE.VersionName like 'Microsoft SQL Server  2000 %' THEN '1' 
         ELSE CONVERT(varchar,BackupCTE.[SADisabled])
         END AS [SADisabled]
   ,CASE WHEN DBAPP.ComplianceReportExceptions.InstanceName IS NOT NULL AND ComplianceReportExceptions.ServiceAccount = 0 THEN '-1'
         WHEN StdServiceAccount.IsValid = 1
                    OR BackupCTE.ServiceAccount IN ('CO\lpsqldbadmin','lpsqldbadmin@CO.IHC.COM')                
            THEN  '1'
            ELSE '0' END AS ServiceAccount
   ,CASE WHEN DBAPP.ComplianceReportExceptions.InstanceName IS NOT NULL AND ComplianceReportExceptions.[ServicePackFlag] = 0 THEN '-1' Else BackupCTE.[ServicePack] END AS [ServicePack]
   ,CASE WHEN DBAPP.ComplianceReportExceptions.InstanceName IS NOT NULL AND ComplianceReportExceptions.[MaxMemory] = 0 THEN '-1' Else BackupCTE.[MaxMemory] END AS [MaxMemory]
   ,[JobName]
   ,CASE WHEN DBAPP.ComplianceReportExceptions.InstanceName IS NOT NULL AND ComplianceReportExceptions.[JobOwner] = 0 THEN '-1'
         WHEN BackupCTE.JobOwner NOT IN ('SA') AND JobEnabled = 1 AND DELETED IS NULL THEN '0' 
         ELSE '1' END AS JobOwner 
   ,[JobEnabled]
   ,CASE WHEN BackupCTE.EnvironmentType = 'PROD' AND BackupCTE.[Primary] NOT IN ('Tamie Jensen', 'Chase Mahony','Megna Musapeta','Aaron Uppencamp') THEN '0' 
         WHEN BackupCTE.EnvironmentType = 'STBY' AND BackupCTE.[Primary] NOT IN ('Tamie Jensen', 'Chase Mahony','Megna Musapeta','Aaron Uppencamp') THEN '0'
         ELSE '1' END AS IsNonPrimary
   ,CASE WHEN BackupCTE.EnvironmentType = 'PROD' AND BackupCTE.[Secondary] IN ('NONE') THEN '0' 
         WHEN BackupCTE.EnvironmentType = 'STBY' AND BackupCTE.[Secondary] IN ('NONE') THEN '0'
         ELSE '1' END AS IsNonSecondary
   ,CASE WHEN DBAPP.ComplianceReportExceptions.InstanceName IS NOT NULL AND ComplianceReportExceptions.[MaxMemory] = 0 THEN '-1' 
         WHEN BackupCTE.[MaxMemory]%8 = 0 THEN '1' 
         ELSE '0' END AS FlagMemory
   ,CASE WHEN BackupCTE.JobName NOT LIKE '%Insure%'
   THEN
       CASE WHEN DBAPP.ComplianceReportExceptions.InstanceName IS NOT NULL AND ComplianceReportExceptions.MaintenanceJob = 0 THEN '-1'
              WHEN JobSchMultiplier < 0 THEN '1' --One Time Job. No Need To Flag
              WHEN DATEDIFF(HH, BackupCTE.JobRunDate, GETDATE()) > 24*JobSchMultiplier THEN '0'
              ELSE '1'            
        END
    ELSE '1' END  AS MaintenanceJob
    ,CASE WHEN DBAPP.ComplianceReportExceptions.InstanceName IS NOT NULL AND ComplianceReportExceptions.ServicePackFlag = 0 THEN '-1'
          WHEN LTRIM(RTRIM(SUBSTRING(PatchingStds.ServicePack,3, LEN(PatchingStds.ServicePack)-2))) > ISNULL(LTRIM(RTRIM(SUBSTRING(InstanceSQLDTl.ServicePack,3, 
              LEN(InstanceSQLDTl.ServicePack)-2))),0) THEN '0'
         WHEN LTRIM(RTRIM(SUBSTRING(VersionName,CHARINDEX('-',VersionName )+1,abs(CASE WHEN CHARINDEX('(',VersionName ) > 0 THEN CHARINDEX('(',VersionName )-CHARINDEX('-',VersionName) ELSE len(VersionName)-CHARINDEX('-',VersionName)  end)))) <> LTRIM(RTRIM(PatchingStds.SQLBuild)) THEN '2'
         ELSE '1' END AS ServicePackFlag
   ,VersionName 
   ,CASE WHEN DBAPP.ComplianceReportExceptions.InstanceName IS NOT NULL AND ComplianceReportExceptions.SAViolations = 0 THEN '-1'
         WHEN LoginName Not IN ('CO\DBA Group','CO\DBAdmin') AND SYSAdmin = 1 OR SecurityAdmin = 1 OR ServerAdmin = 1 OR SetupAdmin = 1 OR ProcessAdmin = 1 OR DiskAdmin = 1
                                                             OR DBCreator = 1 OR BulkAdmin = 1 THEN '0'
         ELSE '1' END AS SAViolations 
   ,CASE WHEN DBAPP.ComplianceReportExceptions.InstanceName IS NOT NULL AND ComplianceReportExceptions.IsBackupShare = 0 THEN '-1'
         WHEN NOT (BackupCTE.[BackupShare] LIKE '\\CO.IHC.COM%' OR BackupCTE.[BackupShare] LIKE '\\CO-LP-SQL1%' OR BackupCTE.[BackupShare] LIKE '\\CO-LP-SQL2%' 
               OR BackupCTE.[BackupShare] LIKE '\\CO-TX-VAULT2%' OR BackupCTE.[BackupShare] LIKE '\\co-tx-vpdsfile2\txPDSsqlBackups%' AND BackupCTE.[BackupShare] NOT LIKE '%Test') OR BackupCTE.[BackupShare] = 'NONE LISTED' THEN '0'
         ELSE '1' END AS IsBackupShare
    ,CASE WHEN DBAPP.ComplianceReportExceptions.InstanceName IS NOT NULL AND ComplianceReportExceptions.Tempdb_DataFileCount = 0 THEN '-1'
          WHEN TEMPDBFileCount.Tempdb_DataFileCount >= 8 OR TEMPDBFileCount.Tempdb_DataFileCount > TEMPDBFileCount.OptimalTempdbFilecount THEN '1'
          WHEN TEMPDBFileCount.OptimalTempdbFilecount > TEMPDBFileCount.Tempdb_DataFileCount THEN '0'
          ELSE '1'END AS Tempdb_DataFileCount
    ,CASE WHEN DBAPP.ComplianceReportExceptions.InstanceName IS NOT NULL AND ComplianceReportExceptions.DataAutoGrow = 0 THEN '-1' ELSE BackupCTE.DataAutoGrow END AS DataAutoGrow
    ,CASE WHEN DBAPP.ComplianceReportExceptions.InstanceName IS NOT NULL AND ComplianceReportExceptions.LogAutoGrow = 0 THEN '-1' ELSE BackupCTE.LogAutoGrow END AS LogAutoGrow
    ,CASE WHEN DBAPP.ComplianceReportExceptions.InstanceName IS NOT NULL AND ComplianceReportExceptions.MaintVersion = 0 THEN '-1' ELSE BackupCTE.MaintVersion END AS MaintVersion
    ,CASE WHEN DBAPP.ComplianceReportExceptions.InstanceName IS NOT NULL AND ComplianceReportExceptions.MaintVersion = 0 THEN '-1' 
         WHEN BackupCTE.MaintVersion = 2.02 OR BackupCTE.MaintVersion = 2.03 THEN '1'
         ELSE '0' END AS FlagMaintVersion
    ,CASE WHEN DBAPP.ComplianceReportExceptions.InstanceName IS NOT NULL AND ComplianceReportExceptions.DBCompatibilityLevel = 0 THEN '-1' 
          WHEN BackupCTE.DBCompatibilityLevel < 90 THEN '0'
          ELSE '1' END AS DBCompatibilityLevel
    ,CASE WHEN DBAPP.ComplianceReportExceptions.InstanceName IS NOT NULL AND ComplianceReportExceptions.FlagVersionName = 0 THEN '-1' 
          WHEN NOT (BackupCTE.VersionName LIKE 'Microsoft SQL Server 2005%' OR BackupCTE.VersionName LIKE 'Microsoft SQL Server  2000%') THEN '1'
          ELSE '0' END AS FlagVersionName
    ,CASE WHEN DBAPP.ComplianceReportExceptions.InstanceName IS NOT NULL AND ComplianceReportExceptions.VLFCount = 0 THEN '-1' 
          ELSE BackupCTE.VLFCount END AS VLFCount
Into #FinalData
FROM [DBAPP].InstanceSQLDtl 
LEFT JOIN #BackupCTE BackupCTE ON  InstanceSQLDtl.InstanceID = BackupCTE.InstanceID
LEFT JOIN  [DBAPP].[SQLPatchingStandards] PatchingStds ON LTRIM(RTRIM(LEFT(VersionName, CHARINDEX('-', VersionName)-1))) = LTRIM(RTRIM(LEFT
           (PatchingStds.SQLVersion,CHARINDEX('-',PatchingStds.SQLVersion)-1))) 
LEFT JOIN [DBAPP].[ComplianceReportExceptions] ON ComplianceReportExceptions.InstanceName =  BackupCTE.InstanceName
LEFT JOIN [DBAPP].[TEMPDBFileCount] ON InstanceSQLDtl.InstanceID = [TEMPDBFileCount].InstanceID AND Type_DESC = 'ROWS'
LEFT JOIN DBO.fnGetServiceNames() StdServiceAccount ON BackupCTE.InstanceID = StdServiceAccount.InstanceID
Where BackupCTE.[InstanceName] IS NOT NULL
ORDER BY [InstanceName]
选择Distinct
BackupCTE.[InstanceName]
,当DBAPP.ComplianceReportExceptions.InstanceName不为NULL且ComplianceReportExceptions.EnvironmentType=0时,则为“-1”Else转换(VARCHAR,BackupCTE.EnvironmentType)以EnvironmentType结束
,当DBAPP.ComplianceReportExceptions.InstanceName不为NULL且ComplianceReportExceptions.InstanceStatus=0时,则“-1”Else转换(VARCHAR,BackupCTE.InstanceStatus)结束为[InstanceStatus]
,BackupCTE。[备份共享]
,当DBAPP.ComplianceReportExceptions.InstanceName不为NULL且ComplianceReportExceptions.DatabaseOwner=0时,则为“-1”
当ISNULL(BackupCTE.ismirroringable,0)=0且BackupCTE.DatabaseOwner不在('SA')时,BackupCTE.DatabaseStatus='Normal'且BackupCTE.DatabaseReadOnly=0
和ISNULL(BackupCTE.IsDatabaseSnapshot,0)=0,然后是“0”
否则“1”将以数据库所有者的身份结束
,当DBAPP.ComplianceReportExceptions.InstanceName不为NULL且ComplianceReportExceptions.DBRecoveryModel=0时,则为“-1”
当BackupCTE.DatabaseStatus='Normal'和BackupCTE.DatabaseName不在('master','msdb','IHC_DBA','distribution','ReportServerTempDB','navicerereporting','ReportServer')和
BackupCTE.RecoveryModel不在('Full','BulkLogged')中,然后是“0”
其他“1”
结束为[DBRecoveryModel]
,当DBAPP.ComplianceReportExceptions.InstanceName不为NULL且ComplianceReportExceptions.AutoShrink=0时,则为“-1”
ELSE转换(VARCHAR,BackupCTE.[AutoShrink])结束为[AutoShrink]
,当DBAPP.ComplianceReportExceptions.InstanceName不为NULL且ComplianceReportExceptions.AutoClose=0时,则为“-1”Else转换(VARCHAR,BackupCTE.[AutoClose])结束为[AutoClose]
,当DBAPP.ComplianceReportExceptions.InstanceName不为NULL且ComplianceReportExceptions.BackupCompression=0时,则为“-1”
当BackupCTE.[BackupCompression]=0时,则为“0”
Else“1”结束为[备份压缩]
,当DBAPP.ComplianceReportExceptions.InstanceName不为NULL且ComplianceReportExceptions.XPCmdShell=0,则为“-1”
当CONVERT(VARCHAR,BackupCTE.[XPCmdShell])=0时,则为“1”
Else“0”以[XPCmdShell]结尾
,当DBAPP.ComplianceReportExceptions.InstanceName不为NULL且ComplianceReportExceptions.EncryptionEnabled=0时,则为“-1”Else转换(VARCHAR,BackupCTE。[EncryptionEnabled])结束为[EncryptionEnabled]
,当DBAPP.ComplianceReportExceptions.InstanceName不为NULL且ComplianceReportExceptions.IsIdera=0时,则为“-1”Else转换(VARCHAR,BackupCTE.[IsIdera])结束为[IsIdera]
,[HoursRetentionShare]
,[HoursSincellastFullBackup]
,[HoursSincellastDiffBackup]
,[HoursSincellastLogBackup]
,当DBAPP.ComplianceReportExceptions.InstanceName不为NULL且ComplianceReportExceptions.ExcepedDBKPTimeFrame=0时,则为“-1”Else BackupCTE.ExcepedDBKPTimeFrame
结束时超出DbkP时间范围
,备份类型
,当DBAPP.ComplianceReportExceptions.InstanceName不为NULL且ComplianceReportExceptions.[Primary]=0时,则为“-1”Else BackupCTE.[Primary]以[Primary]结束
,当DBAPP.ComplianceReportExceptions.InstanceName不为NULL且ComplianceReportExceptions.[Secondary]=0时,则为“-1”Else BackupCTE.[Secondary]结束为[Secondary]
,当DBAPP.ComplianceReportExceptions.InstanceName不为NULL且ComplianceReportExceptions.[LockPages]=0,则为“-1”
Else转换(varchar,BackupCTE.[LockPages])结束为[LockPages]
,当DBAPP.ComplianceReportExceptions.InstanceName不为NULL且ComplianceReportExceptions。[sDisabled]=0时为大小写,则为“-1”
当CONVERT(varchar,BackupCTE.[SADisabled])=0且BackupCTE.VersionName类似于“Microsoft SQL Server 2000%”时,则为“1”
ELSE转换(varchar,BackupCTE.[SADisabled])
结束为[已禁用]
,当DBAPP.ComplianceReportExceptions.InstanceName不为NULL且ComplianceReportExceptions.ServiceAccount=0时,则为“-1”
当StdServiceAccount.IsValid=1时
或('CO\lpsqldbadmin','lpsqldbadmin@CO.IHC.COM')                
然后是“1”
否则“0”将作为ServiceAccount结束
,当DBAPP.ComplianceReportExceptions.InstanceName不为NULL且ComplianceReportExceptions。[ServicePackFlag]=0时,则为“-1”Else BackupCTE。[ServicePack]以[ServicePack]结尾
,当DBAPP.ComplianceReportExceptions.InstanceName不为NULL且ComplianceReportExceptions。[MaxMemory]=0时,则为“-1”Else BackupCTE。[MaxMemory]以[MaxMemory]结尾
,[JobName]
,当DBAPP.ComplianceReportExceptions.InstanceName不为NULL且ComplianceReportExceptions。[JobOwner]=0,则为“-1”
当BackupCTE.JobOwner不在('SA')中且JobEnabled=1且DELETED为空时,则为“0”
否则“1”将以作业所有者的身份结束
,[JobEnabled]
,BackupCTE.EnvironmentType='PROD'和BackupCTE.[Primary]不在('Tamie Jensen','Chase Mahony','Megna Musapeta','Aaron Uppencamp')中时为大小写,然后为'0'
当BackupCTE.EnvironmentType='STBY'和BackupCTE.[Primary]不在('Tamie Jensen','Chase Mahony','Megna Musapeta','Aaron Uppencamp')中时,则为'0'
否则“1”结束为非主要
,当BackupCTE.EnvironmentType='PROD'和BackupCTE.[Secondary]在('NONE')中时为大小写,然后为'0'
当BackupCTE.EnvironmentType='STBY'和BackupCTE.[Secondary]位于('NONE')中时,则为'0'
否则“1”结束为非秒
,当DBAPP.ComplianceReportExceptions.InstanceName不为NULL且ComplianceReportExceptions。[MaxMemory]=0,则为“-1”
备份时[MaxMemory]
SELECT DISTINCT 
    BackupCTE.[InstanceName]
   , EnvironmentType = CASE WHEN ComplianceReportExceptions.EnvironmentType = 0 THEN '-1' ELSE CONVERT(VARCHAR, BackupCTE.EnvironmentType) END
   , [InstanceStatus] = CASE WHEN ComplianceReportExceptions.InstanceStatus = 0 THEN '-1' ELSE CONVERT(VARCHAR,BackupCTE.InstanceStatus) END 
   , BackupCTE.[BackupShare]
   , DatabaseOwner = 
        CASE WHEN ComplianceReportExceptions.DatabaseOwner = 0 THEN '-1'
             WHEN ISNULL(BackupCTE.IsMirroringEnabled,0) = 0 
                AND BackupCTE.DatabaseOwner <> 'SA'
                AND BackupCTE.DatabaseStatus = 'Normal' 
                AND BackupCTE.DatabaseReadOnly = 0
                AND ISNULL(BackupCTE.IsDatabaseSnapshot,0) = 0 
            THEN '0'
            ELSE '1' 
         END
    -- Etc...
INTO #FinalData
FROM [DBAPP].InstanceSQLDtl 
    LEFT JOIN #BackupCTE BackupCTE ON  InstanceSQLDtl.InstanceID = BackupCTE.InstanceID
    LEFT JOIN  [DBAPP].[SQLPatchingStandards] PatchingStds ON LTRIM(RTRIM(LEFT(VersionName, CHARINDEX('-', VersionName)-1))) = LTRIM(RTRIM(LEFT
               (PatchingStds.SQLVersion,CHARINDEX('-',PatchingStds.SQLVersion)-1))) 
    LEFT JOIN [DBAPP].[ComplianceReportExceptions] ON ComplianceReportExceptions.InstanceName =  BackupCTE.InstanceName
    LEFT JOIN [DBAPP].[TEMPDBFileCount] ON InstanceSQLDtl.InstanceID = [TEMPDBFileCount].InstanceID AND Type_DESC = 'ROWS'
    LEFT JOIN DBO.fnGetServiceNames() StdServiceAccount ON BackupCTE.InstanceID = StdServiceAccount.InstanceID
WHERE BackupCTE.[InstanceName] IS NOT NULL
    AND DBAPP.ComplianceReportExceptions.InstanceName IS NOT NULL
--****************
UNION ALL 
--****************
SELECT DISTINCT 
    BackupCTE.[InstanceName]
   , EnvironmentType = CONVERT(VARCHAR,BackupCTE.EnvironmentType)
   , [InstanceStatus] = CONVERT(VARCHAR,BackupCTE.InstanceStatus)
   , BackupCTE.[BackupShare]
   , DatabaseOwner = 
       CASE 
            WHEN ISNULL(BackupCTE.IsMirroringEnabled,0) = 0 
                AND BackupCTE.DatabaseOwner <> 'SA'
                AND BackupCTE.DatabaseStatus = 'Normal' 
                AND BackupCTE.DatabaseReadOnly = 0
                AND ISNULL(BackupCTE.IsDatabaseSnapshot,0) = 0 
            THEN '0'
            ELSE '1' 
        END
-- Etc...
INTO #FinalData
FROM [DBAPP].InstanceSQLDtl 
    LEFT JOIN #BackupCTE BackupCTE ON  InstanceSQLDtl.InstanceID = BackupCTE.InstanceID
    LEFT JOIN  [DBAPP].[SQLPatchingStandards] PatchingStds ON LTRIM(RTRIM(LEFT(VersionName, CHARINDEX('-', VersionName)-1))) = LTRIM(RTRIM(LEFT
               (PatchingStds.SQLVersion,CHARINDEX('-',PatchingStds.SQLVersion)-1))) 
    LEFT JOIN [DBAPP].[ComplianceReportExceptions] ON ComplianceReportExceptions.InstanceName =  BackupCTE.InstanceName
    LEFT JOIN [DBAPP].[TEMPDBFileCount] ON InstanceSQLDtl.InstanceID = [TEMPDBFileCount].InstanceID AND Type_DESC = 'ROWS'
    LEFT JOIN DBO.fnGetServiceNames() StdServiceAccount ON BackupCTE.InstanceID = StdServiceAccount.InstanceID
WHERE BackupCTE.[InstanceName] IS NOT NULL
    AND DBAPP.ComplianceReportExceptions.InstanceName IS NULL
--****************
ORDER BY [InstanceName]