Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Sprawdzanie historii planu konserwacji programu SQL Server pod kątem powodzenia lub niepowodzenia

Zgodnie z sugestią Nathansa uruchomiłem profiler SQL i skompilowałem te zapytania w jedno, aby dopasować je do moich potrzeb.

To zapytanie poda status ostatniego uruchomienia dowolnego planu konserwacji, który obejmuje bieżącą bazę danych:

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)

Działa to najlepiej w przypadku planów konserwacji generowanych przez kreator.Plany ad hoc nie zawsze zawierają polecenie filtrowania.Jednak połączenie tabeli nadal działa.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Podział wiersza SQL nie działa

  2. Wiele wartości kolumn w jednym wierszu

  3. Błąd logowania do programu SQL Server:logowanie nie powiodło się dla użytkownika „NT AUTHORITY\SYSTEM”

  4. Wydajność T-SQL MERGE w typowym kontekście wydawniczym

  5. Jak znaleźć słowa, które może stworzyć zestaw liter?