sql >> Database >  >> RDS >> Sqlserver

Geschiedenis van SQL Server Onderhoudsplan controleren op succes of mislukking

Volgens de suggestie van Nathan heb ik de SQL-profiler uitgevoerd en die query's gecompileerd in één enkele om aan mijn behoeften te voldoen.

Deze query geeft de status van de meest recente uitvoering van een onderhoudsplan dat de huidige database bevat:

SELECT
    mp.name AS [MTX Plan Name],
    msp.subplan_name AS [Sub Plan Name],    
    mpl.start_time AS [JobStart],
    mpl.end_time AS [JobEnd],
    mpl.succeeded AS [JobSucceeded]
FROM
    msdb.dbo.sysmaintplan_plans mp
    INNER JOIN msdb.dbo.sysmaintplan_subplans msp ON mp.id = msp.plan_id
    INNER JOIN msdb.dbo.sysmaintplan_log mpl ON msp.subplan_id = mpl.subplan_id
        AND mpl.task_detail_id = -- Get the most recent run for this database
            (SELECT TOP 1 ld.task_detail_id 
            FROM msdb.dbo.sysmaintplan_logdetail ld
            WHERE ld.command LIKE ('%['+db_name()+']%')
            ORDER BY ld.start_time DESC)

Dit werkt het beste met onderhoudsplannen die door de wizard worden gegenereerd. Ad-hocplannen bevatten niet altijd de opdracht voor filteren. Maar de tabelkoppeling werkt nog steeds.




  1. Index uitschakelen in innodb

  2. Back-up terugzetten van SQL Server-database op lagere versie

  3. hoe converteer ik tekst naar jsonB

  4. VS2010 Database-project implementeren - SqlDeployTask-taak is onverwacht mislukt, NullReferenceException