Accesso al database tempdb sulle istanze database Microsoft SQL Server su Amazon RDS - Amazon Relational Database Service

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Accesso al database tempdb sulle istanze database Microsoft SQL Server su Amazon RDS

Puoi accedere al database tempdb sulle tue istanze database Microsoft SQL Server su Amazon RDS. Puoi eseguire il codice su tempdb servendoti di Transact-SQL tramite Microsoft SQL Server Management Studio (SSMS) o qualsiasi altra applicazione client SQL standard. Per ulteriori informazioni sulla connessione alla tua istanza database, consulta Connessione a un'istanza database che esegua il motore di database di Microsoft SQL Server.

L'utente master per la tua istanza database riceve l'accesso CONTROL a tempdb affinché possa modificare le opzioni del database tempdb. L'utente master non è il proprietario del database tempdb. Se necessario, l'utente master può concedere l'accesso CONTROL ad altri utenti affinché anch'essi possano modificare le opzioni del database tempdb.

Nota

Non puoi eseguire i comandi Database Console Commands (DBCC) nel database tempdb.

Modifica delle opzioni del database tempdb

Puoi modificare le opzioni di database nel database tempdb sulle tue istanze database Amazon RDS. Per ulteriori informazioni sulle opzioni che puoi modificare, consulta Database tempdb nella documentazione di Microsoft.

Opzioni di database come, ad esempio, le opzioni per le dimensioni massime dei file, permangono dopo il riavvio dell'istanza database. Puoi modificare le opzioni di database per ottimizzare le prestazioni durante l'importazione dei dati e per evitare di esaurire lo spazio di storage.

Ottimizzazione delle prestazioni durante l'importazione dei dati

Per ottimizzare le prestazioni durante l'importazione di grandi quantità di dati nella tua istanza database, imposta le proprietà SIZE e FILEGROWTH del database tempdb su un numero grande. Per ulteriori informazioni su come ottimizzare tempdb, consulta Ottimizzazione delle prestazioni di tempdb nella documentazione di Microsoft.

L'esempio seguente mostra come impostare la dimensione su 100 GB e la crescita file su 10 percento.

alter database[tempdb] modify file (NAME = N'templog', SIZE=100GB, FILEGROWTH = 10%)

Come evitare problemi di storage

Per evitare che il database tempdb utilizzi tutto lo spazio su disco disponibile, imposta la proprietà MAXSIZE. L'esempio seguente mostra come impostare la proprietà su 2048 MB.

alter database [tempdb] modify file (NAME = N'templog', MAXSIZE = 2048MB)

Riduzione del database tempdb

Puoi scegliere tra due modi per ridurre il database tempdb sulla tua istanza database Amazon RDS. Puoi utilizzare la procedura rds_shrink_tempdbfile oppure impostare la proprietà SIZE.

Utilizzo della procedura rds_shrink_tempdbfile

La procedura msdb.dbo.rds_shrink_tempdbfile Amazon RDS permette di ridurre il database tempdb. Puoi chiamare rds_shrink_tempdbfile soltanto se disponi dell'accesso CONTROL a tempdb. Quando chiami rds_shrink_tempdbfile non si verifica alcun tempo di inattività per la tua istanza database.

La procedura rds_shrink_tempdbfile include i seguenti parametri.

Nome del parametro Tipo di dati Default Campo obbligatorio Descrizione

@temp_filename

SYSNAME

obbligatorio

Il nome logico del file da ridurre.

@target_size

int

nullo

facoltativo

La nuova dimensione del file in megabyte.

Nell'esempio seguente vengono ottenuti i nomi dei file per il database tempdb.

use tempdb; GO select name, * from sys.sysfiles; GO

Nell'esempio seguente le dimensioni del file del database tempdb denominato test_file vengono ridotte e viene richiesta una nuova dimensione di 10 MB:

exec msdb.dbo.rds_shrink_tempdbfile @temp_filename = N'test_file', @target_size = 10;

Impostazione della proprietà SIZE

Puoi anche ridurre il database tempdb impostando la proprietà SIZE e riavviando l'istanza database. Per ulteriori informazioni sul riavvio dell'istanza database, consulta Riavvio di un'istanza database.

L'esempio seguente mostra come impostare la proprietà SIZE su 1024 MB.

alter database [tempdb] modify file (NAME = N'templog', SIZE = 1024MB)

Configurazione TempDB per implementazioni Multi-AZ

Se l'istanza DB di RDS per SQL Server si trova in una distribuzione Multi-AZ utilizzando Database Mirroring (DBM) o Always On Availability Groups (AG), tieni presenti le seguenti considerazioni per l'utilizzo del database. tempdb

Non è possibile replicare tempdb i dati dall'istanza DB principale all'istanza DB secondaria. Quando esegui il failover su un'istanza DB secondaria, tempdb su quell'istanza DB secondaria sarà vuota.

È possibile sincronizzare la configurazione delle opzioni del tempdb database, comprese le impostazioni relative al dimensionamento dei file e alla crescita automatica, dall'istanza DB principale all'istanza DB secondaria. La sincronizzazione della tempDB configurazione è supportata in tutte le versioni di RDS per SQL Server. È possibile attivare la sincronizzazione automatica della tempdb configurazione utilizzando la seguente procedura memorizzata:

EXECUTE msdb.dbo.rds_set_system_database_sync_objects @object_types = 'TempDbFile';
Importante

Prima di utilizzare la rds_set_system_database_sync_objects stored procedure, assicurati di aver impostato la tempdb configurazione preferita sull'istanza DB principale, anziché sull'istanza DB secondaria. Se hai apportato la modifica alla configurazione sull'istanza DB secondaria, la tempdb configurazione preferita potrebbe essere eliminata quando attivi la sincronizzazione automatica.

È possibile utilizzare la seguente funzione per confermare se la sincronizzazione automatica della tempdb configurazione è attivata:

SELECT * from msdb.dbo.rds_fn_get_system_database_sync_objects();

Quando la sincronizzazione automatica della tempdb configurazione è attivata, verrà restituito un valore per il object_class campo. Quando è disattivato, non viene restituito alcun valore.

È possibile utilizzare la seguente funzione per trovare l'ultima volta che gli oggetti sono stati sincronizzati, in ora UTC:

SELECT * from msdb.dbo.rds_fn_server_object_last_sync_time();

Ad esempio, se hai modificato la tempdb configurazione all'01:00 e poi esegui la rds_fn_server_object_last_sync_time funzione, il valore restituito last_sync_time dovrebbe essere successivo alle 01:00, a indicare che è avvenuta una sincronizzazione automatica.

Se si utilizza anche la replica dei lavori di SQL Server Agent, è possibile abilitare la replica sia per i lavori di SQL Agent che per la tempdb configurazione fornendoli nel parametro: @object_type

EXECUTE msdb.dbo.rds_set_system_database_sync_objects @object_types = 'SQLAgentJob,TempDbFile';

Per ulteriori informazioni sulla replica dei processi di SQL Server Agent, vedere. Attivazione della replica di processo SQL Server Agent

In alternativa all'utilizzo della rds_set_system_database_sync_objects stored procedure per garantire che le modifiche alla tempdb configurazione vengano sincronizzate automaticamente, è possibile utilizzare uno dei seguenti metodi manuali:

Nota

Si consiglia di attivare la sincronizzazione automatica della tempdb configurazione utilizzando la rds_set_system_database_sync_objects stored procedure. L'utilizzo della sincronizzazione automatica evita la necessità di eseguire queste attività manuali ogni volta che si modifica la tempdb configurazione.

  • Modifica innanzitutto la tua istanza database e disattiva Multi-AZ, quindi modifica tempdb e infine riattiva Multi-AZ. Questo sistema non causa alcun tempo di inattività.

    Per ulteriori informazioni, consulta Modifica di un'istanza database Amazon RDS.

  • Modifica dapprima tempdb nell'istanza primaria originale, quindi effettua il failover manualmente e infine modifica tempdb nella nuova istanza primaria. Questo sistema causa un tempo di inattività.

    Per ulteriori informazioni, consulta Riavvio di un'istanza database.