Creazione di un piano di manutenzione
Si applica a: SQL Server
In questo articolo viene descritto come creare un piano di manutenzione a uno o più server in SQL Server usando SQL Server Management Studio o Transact-SQL. Tramite Management Studio è possibile creare questi piani di manutenzione utilizzando la Creazione guidata piano di manutenzione o l'area di progettazione. La procedura guidata è più appropriata per la creazione di piani di manutenzione di base, mentre con l'area di progettazione sono disponibili funzionalità avanzate per i flussi di lavoro.
Limitazioni e restrizioni
Per creare un piano di manutenzione multiserver, è necessario configurare un ambiente multiserver composto da un server master e uno o più server di destinazione. I piani di manutenzione multiserver devono essere creati e gestiti nel server master. Questi piani possono essere visualizzati, ma non gestiti, nei server di destinazione.
Prerequisiti
È necessario abilitare Opzione di configurazione del server Agent XPs .
Autorizzazioni
Per creare o gestire piani di manutenzione, è necessario essere membro del ruolo predefinito del server sysadmin .
Usare SQL Server Management Studio
Creare un piano di manutenzione utilizzando la Creazione guidata piano di manutenzione
In Esplora oggetti fare clic sul segno più per espandere il server in cui si desidera creare un piano di manutenzione.
Selezionare il segno più per espandere la cartella Gestione.
Fare clic con il pulsante destro del mouse sulla cartella Piani di manutenzione e scegliere Creazione guidata piano di manutenzione.
Eseguire i passaggi della procedura guidata per creare un piano di manutenzione. Per altre informazioni, vedere Use the Maintenance Plan Wizard.
Creare un piano di manutenzione utilizzando l'area di progettazione
In Esplora oggetti fare clic sul segno più per espandere il server in cui si desidera creare un piano di manutenzione.
Selezionare il segno più per espandere la cartella Gestione.
Fare clic con il pulsante destro del mouse sulla cartella Piani di manutenzione e scegliere Nuovo piano di manutenzione.
Creare un piano di manutenzione seguendo i passaggi illustrati in Creare un piano di manutenzione (area di progettazione del piano di manutenzione).
Usare Transact-SQL
Creazione di un piano di manutenzione
In Esplora oggetti connettersi a un'istanza del motore di database.
Sulla barra Standard selezionare Nuova query.
Copiare e incollare l'esempio seguente nella finestra di query e selezionare Esegui.
In questo esempio, il codice crea un processo di SQL Agent giornaliero eseguito alle 23:30, che riorganizza tutti gli indici della tabella
HumanResources.Employee
nel databaseAdventureWorks2022
.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