sql >> Databasteknik >  >> RDS >> Sqlserver

Kontrollera historiken för SQL Server-underhållsplan för framgång eller misslyckande

Enligt Nathans förslag körde jag SQL-profileraren och kompilerade dessa frågor till en enda för att passa mina behov.

Denna fråga kommer att ge status för den senaste körningen av en underhållsplan som inkluderar den aktuella databasen:

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)

Detta fungerar bäst med underhållsplaner som genereras av guiden. Ad-hoc-planer inkluderar inte alltid kommandot för filtrering. Men tabelllänkningen fungerar fortfarande.




  1. Validering UNIKT fält i Codeigniter med 2 index

  2. Fix Msg 8117 "Operand data type varchar är ogiltig för sumoperator" i SQL Server

  3. beräkna summan av värden associerade med överlappande datumintervall

  4. Hur man hämtar en bild från databasen i c#