Freigeben über


Erstellen eines Wartungsplans

Gilt für: SQL Server

In diesem Artikel erfahren Sie, wie Sie mithilfe von SQL Server Management Studio oder Transact-SQL einen Wartungsplan für Einzelserver oder Multiserver in SQL Server erstellen. Bei Verwendung von Management Studio stehen Ihnen zwei Methoden zum Erstellen der Wartungspläne zur Verfügung: der Wartungsplanungs-Assistent und die 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.

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 von SQL Server Management Studio

Erstellen eines Wartungsplans mithilfe des Wartungsplanungs-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 Ordner Verwaltung 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 Ordner Verwaltung 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 anhand der Schritte unter Erstellen eines Wartungsplans (Entwurfsoberfläche für Wartungspläne).

Verwenden von Transact-SQL

Erstellen eines Wartungsplans

  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-Job, der um 23:30 Uhr ausgeführt wird, wodurch alle Indizes der HumanResources.Employee-Tabelle in der AdventureWorks2022-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