Modificare il tempo di recupero di riferimento di un database (SQL Server)Change the Target Recovery Time of a Database (SQL Server)

In questo argomento viene illustrato come impostare la modifica del tempo di recupero di riferimento di un database SQL ServerSQL Server in SQL Server 2017SQL Server 2017 utilizzando SQL Server Management StudioSQL Server Management Studio o Transact-SQLTransact-SQL.This topic describes how to set the change the target recovery time of a SQL ServerSQL Server database in SQL Server 2017SQL Server 2017 by using SQL Server Management StudioSQL Server Management Studio or Transact-SQLTransact-SQL. Per impostazione predefinita, il tempo di recupero di riferimento è 60 secondi e il database usa checkpoint indiretti.By default, the target recovery time is 60 seconds, and the database uses indirect checkpoints. Il tempo di recupero di riferimento stabilisce un limite superiore per il tempo di recupero per questo database.The target recovery time establishes an upper-bound on recovery time for this database.

Nota

Il limite superiore specificato per un determinato database dall'impostazione del tempo di recupero di riferimento può essere superato se una transazione con esecuzione prolungata provoca tempi eccessivi di UNDO.The upper-bound that is specified for a given database by its target recovery time setting could be exceeded if a long-running transaction causes excessive UNDO times.

Prima di iniziare Before You Begin

Limitazioni e restrizioni Limitations and Restrictions

Attenzione

Un carico di lavoro transazionale online su un database configurato per i checkpoint indiretti potrebbe subire un calo delle prestazioni.An online transactional workload on a database that is configured for indirect checkpoints could experience performance degradation. I checkpoint indiretti assicurano che il numero di pagine dirty è inferiore a una determinata soglia, in modo che il recupero del database viene completato entro il tempo di recupero di riferimento.Indirect checkpoints make sure that the number of dirty pages are below a certain threshold so that the database recovery completes within the target recovery time. A differenza dei checkpoint indiretti che usano il numero di pagine dirty, l'opzione di configurazione recovery interval usa il numero di transazioni per determinare il tempo di recupero.The recovery interval configuration option uses the number of transactions to determine the recovery time as opposed to indirect checkpoints which makes use of number of dirty pages. Quando i checkpoint indiretti sono abilitati per un database che riceve un numero elevato di operazioni DML, il writer in background può iniziare a scaricare i buffer dirty su disco in modo intensivo per garantire che il tempo necessario per eseguire il recupero non superi il tempo di recupero di riferimento impostato per il database.When indirect checkpoints are enabled on a database receiving a large number of DML operations, the background writer can start aggressively flushing dirty buffers to disk to ensure that the time required to perform recovery is within the target recovery time set of the database. Questo può causare in determinati sistemi ulteriore attività di I/O che può comportare un collo di bottiglia delle prestazioni se il sottosistema del disco opera al di sopra o in prossimità della soglia di I/O.This can cause additional I/O activity on certain systems which can contribute to a performance bottleneck if the disk subsystem is operating above or nearing the I/O threshold.

Sicurezza Security

Autorizzazioni Permissions

È richiesta l'autorizzazione ALTER per il database.Requires ALTER permission on the database.

Utilizzo di SQL Server Management Studio Using SQL Server Management Studio

Per modificare il tempo di recupero di riferimentoTo change the target recovery time

  1. In Esplora oggetticonnettersi a un'istanza del Motore di database di SQL ServerSQL Server Database Engine, quindi espanderla.In Object Explorer, connect to an instance of the Motore di database di SQL ServerSQL Server Database Engine, and expand that instance.

  2. Fare clic con il pulsante destro del mouse sul database che si desidera modificare e scegliere il comando Proprietà .Right-click the database you want to change, and click the Properties command.

  3. Nella finestra di dialogo Proprietà database fare clic sulla pagina Opzioni .In the Database Properties dialog box, click the Options page.

  4. Nel campo Tempo di recupero di riferimento (secondi) del pannello Recupero specificare il numero di secondi desiderato come limite superiore nel tempo di recupero per il database.In the Recovery panel, in the Target Recovery Time (Seconds) field, specify the number of seconds that you want as the upper-bound on the recovery time for this database.

Utilizzo di Transact-SQL Using Transact-SQL

Per modificare il tempo di recupero di riferimentoTo change the target recovery time

  1. Connettersi all'istanza di SQL ServerSQL Server in cui risiede il database.Connect to the instance of SQL ServerSQL Server where the database resides.

  2. Usare l'istruzione ALTER DATABASE, come indicato di seguito:Use the following ALTER DATABASEstatement, as follows:

    TARGET_RECOVERY_TIME =target_recovery_time { SECONDI | MINUTI }TARGET_RECOVERY_TIME =target_recovery_time { SECONDS | MINUTES }

    target_recovery_timetarget_recovery_time
    A partire da SQL Server 2016SQL Server 2016, il valore predefinito è 1 minuto.Beginning with SQL Server 2016SQL Server 2016, the default value is 1 minute. Se maggiore di 0 (impostazione predefinita per le versioni meno recenti), specifica il limite superiore per il tempo di recupero per il database specificato in caso di arresto anomalo.When greater than 0 (the default for older versions), specifies the upper-bound on the recovery time for the specified database in the event of a crash.

    SECONDSSECONDS
    Indica che target_recovery_time viene espresso come numero di secondi.Indicates that target_recovery_time is expressed as the number of seconds.

    MINUTESMINUTES
    Indica che target_recovery_time viene espresso come numero di minuti.Indicates that target_recovery_time is expressed as the number of minutes.

    Nell'esempio seguente viene impostato il tempo di recupero di riferimento del database AdventureWorks2012AdventureWorks2012 su 60 .The following example sets the target recovery time of the AdventureWorks2012AdventureWorks2012 database to 60 seconds.

    ALTER DATABASE AdventureWorks2012 SET TARGET_RECOVERY_TIME = 60 SECONDS;  
    

Vedere ancheSee Also

Checkpoint di database (SQL Server) Database Checkpoints (SQL Server)
Opzioni ALTER DATABASE SET (Transact-SQL) ALTER DATABASE SET Options (Transact-SQL)