Einen Wartungsplan erstellen

Gilt für:SQL Server

In diesem Artikel wird beschrieben, wie Sie einen Wartungsplan mit einem einzelnen Server oder mehreren Servern in SQL Server mithilfe von SQL Server Management Studio oder Transact-SQL erstellen. Mithilfe von Management Studio können Sie Wartungspläne auf eine von zwei Arten erstellen: entweder mithilfe des Wartungsplan-Assistenten oder der Entwurfsoberfläche. Der Assistent eignet sich am besten für das Erstellen von grundlegenden Wartungsplänen; wenn Sie die Entwurfsoberfläche zum Erstellen eines Plans verwenden, können Sie erweiterten Workflow nutzen.

Beschränkungen und Einschränkungen

Wenn Sie einen Multiserver-Wartungsplan erstellen möchten, muss eine Multiserverumgebung mit einem Masterserver und mindestens einem Zielserver konfiguriert sein. Multiserver-Wartungspläne müssen auf dem Masterserver erstellt und verwaltet werden. Diese Pläne können auf Zielservern zwar angezeigt, jedoch nicht verwaltet werden.

Voraussetzungen

Die Agent XPs-Serverkonfigurationsoption muss aktiviert sein.

Berechtigungen

Sie müssen Mitglied der festen Serverrolle sysadmin sein, um Wartungspläne erstellen oder verwalten zu können.

Verwenden Sie SQL Server Management Studio

Erstellen eines Wartungsplans mithilfe des Wartungsplan-Assistenten

  1. Wählen Sie im Objekt-Explorer das Pluszeichen aus, um den Server zu erweitern, auf dem Sie einen Wartungsplan erstellen möchten.

  2. Wählen Sie das Pluszeichen aus, um den Verwaltungsordner zu erweitern.

  3. Klicken Sie mit der rechten Maustaste auf den Ordner Wartungspläne , und wählen Sie Wartungsplanungs-Assistentaus.

  4. Führen Sie die Schritte des Assistenten aus, um einen Wartungsplan zu erstellen. Weitere Informationen finden Sie unter Use the Maintenance Plan Wizard.

Erstellen eines Wartungsplans mithilfe der Entwurfsoberfläche

  1. Wählen Sie im Objekt-Explorer das Pluszeichen aus, um den Server zu erweitern, auf dem Sie einen Wartungsplan erstellen möchten.

  2. Wählen Sie das Pluszeichen aus, um den Verwaltungsordner zu erweitern.

  3. Klicken Sie mit der rechten Maustaste auf den Ordner Wartungspläne , und wählen Sie Neuer Wartungsplanaus.

  4. Erstellen Sie einen Wartungsplan, der die Schritte unter Erstellen eines Wartungsplans (Wartungsplan-Entwurfsoberfläche) ausführt.

Verwenden von Transact-SQL

Einen Wartungsplan erstellen

  1. Stellen Sie im Objekt-Explorer eine Verbindung mit einer Datenbank-Engine-Instanz her.

  2. Klicken Sie in der Standardleiste auf Neue Abfrage.

  3. Kopieren Sie das folgende Beispiel in das Abfragefenster, und klicken Sie dann auf Ausführen.

    In diesem Beispiel erstellt der Code einen täglichen SQL-Agent-Auftrag, der bei 23:30 (11:30 Uhr) ausgeführt wird, wodurch alle Indizes der Tabelle in der HumanResources.EmployeeAdventureWorks2022 Datenbank neu organisiert werden.

    USE [msdb];
    GO
    --  Adds a new job, executed by the SQL Server Agent service, called "HistoryCleanupTask_1".
    EXEC [dbo].[sp_add_job] @job_name = N'HistoryCleanupTask_1',
                            @enabled = 1,
                            @description = N'Clean up old task history';
    GO
    -- Adds a job step for reorganizing all of the indexes in the HumanResources.Employee table to the HistoryCleanupTask_1 job.
    EXEC [dbo].[sp_add_jobstep] @job_name = N'HistoryCleanupTask_1',
                                @step_name = N'Reorganize all indexes on HumanResources.Employee table',
                                @subsystem = N'TSQL',
                                @command = N'USE [AdventureWorks2022];
    GO
    ALTER INDEX [AK_Employee_LoginID]
    ON [HumanResources].[Employee]
    REORGANIZE
    WITH (LOB_COMPACTION = ON);
    GO
    USE [AdventureWorks2022];
    GO
    ALTER INDEX [AK_Employee_NationalIDNumber]
    ON [HumanResources].[Employee]
    REORGANIZE
    WITH (LOB_COMPACTION = ON);
    GO
    USE [AdventureWorks2022];
    GO
    ALTER INDEX [AK_Employee_rowguid]
    ON [HumanResources].[Employee]
    REORGANIZE
    WITH (LOB_COMPACTION = ON);
    GO
    USE [AdventureWorks2022];
    GO
    ALTER INDEX [IX_Employee_OrganizationLevel_OrganizationNode]
    ON [HumanResources].[Employee]
    REORGANIZE
    WITH (LOB_COMPACTION = ON);
    GO
    USE [AdventureWorks2022];
    GO
    ALTER INDEX [IX_Employee_OrganizationNode]
    ON [HumanResources].[Employee]
    REORGANIZE
    WITH (LOB_COMPACTION = ON);
    GO
    USE [AdventureWorks2022];
    GO
    ALTER INDEX [PK_Employee_BusinessEntityID]
    ON [HumanResources].[Employee]
    REORGANIZE
    WITH (LOB_COMPACTION = ON);
    GO',
                                @retry_attempts = 5,
                                @retry_interval = 5;
    GO
    -- Creates a schedule named RunOnce that executes every day when the time on the server is 23:30.
    EXEC [dbo].[sp_add_schedule] @schedule_name = N'RunOnce',
                                 @freq_type = 4,
                                 @freq_interval = 1,
                                 @active_start_time = 233000;
    GO
    -- Attaches the RunOnce schedule to the job HistoryCleanupTask_1.
    EXEC [dbo].[sp_attach_schedule] @job_name = N'HistoryCleanupTask_1',
                                    @schedule_name = N'RunOnce';
    GO
    

Nächste Schritte