Vytvoření plánu údržby

platí pro:SQL Server

Tento článek popisuje, jak vytvořit plán údržby s jedním serverem nebo víceservery v SQL Serveru pomocí aplikace SQL Server Management Studio nebo jazyka Transact-SQL. Pomocí sady Management Studio můžete plány údržby vytvořit jedním ze dvou způsobů: buď pomocí Průvodce plánem údržby, nebo návrhovou plochou. Průvodce je nejvhodnější pro vytváření základních plánů údržby a vytváření plánu pomocí návrhové plochy umožňuje využívat vylepšený pracovní postup.

Omezení a restrikce

Pokud chcete vytvořit plán údržby více serverů, musí být nakonfigurované prostředí s více servery obsahující jeden hlavní server a jeden nebo více cílových serverů. Plány údržby s více servery musí být vytvořeny a udržovány na hlavním serveru. Tyto plány je možné zobrazit, ale ne udržovat na cílových serverech.

Poznámka:

Ujistěte se, že máte vždy nainstalovanou nejnovější podporovanou verzi aplikace SQL Server Management Studio (SSMS). SSMS můžete nainstalovat pomocí komponenty SSIS (Služby Integrace SQL Serveru) v rámci funkce Business Intelligence, která umožňuje funkci plánu údržby. Pokud komponenta SSIS není nainstalovaná, některé funkce související s plány údržby nejsou k dispozici.

Požadavky

Je nutné povolit konfigurační možnost serveru Agent XPs .

Dovolení

Pokud chcete vytvořit nebo spravovat plány údržby, musíte být členem administrátora systému pevné role serveru.

Použití aplikace SQL Server Management Studio

Vytvoření plánu údržby pomocí Průvodce plánem údržby

  1. V Průzkumníku objektů vyberte znaménko plus a rozbalte server, na kterém chcete vytvořit plán údržby.

  2. Výběrem znaménka plus rozbalte složku Management.

  3. Klikněte pravým tlačítkem na složku Plány údržby a vyberte Průvodce plánem údržby.

  4. Podle pokynů průvodce vytvořte plán údržby. Další informace naleznete v tématu Použití průvodce plánem údržby.

Vytvoření plánu údržby pomocí návrhové plochy

  1. V Průzkumníku objektů vyberte znaménko plus a rozbalte server, na kterém chcete vytvořit plán údržby.

  2. Výběrem znaménka plus rozbalte složku Management.

  3. Klikněte pravým tlačítkem na složku Plány údržby a vyberte Nový plán údržby.

  4. Vytvořte plán údržby podle kroků v Vytvoření plánu údržby (Návrh Plánu Údržby).

Použijte Transact-SQL

Vytvoření plánu údržby

  1. V Průzkumníku objektůse připojte k instanci Databázového stroje.

  2. Na panelu Standard vyberte Nový dotaz.

  3. Zkopírujte a vložte následující příklad do okna dotazu a vyberte Spustit.

    V tomto příkladu kód vytvoří každodenní úlohu agenta SQL, která běží v 23:30 (11:30 p.m.), která reorganizuje všechny indexy v tabulce HumanResources.Employee v databázi AdventureWorks2025.

    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