RS First Dynamics NAV Blog


...from NAV 3.60 to NAV 2013
Archivio Posts
Anno 2015

Anno 2014

Anno 2013

Anno 2012

Anno 2011

Anno 2010

Anno 2009

Anno 2008

Anno 2007

Compattazione del tempdb di SQL Server

Informazioni tempdb 

 

Il database tempdb è un'area di lavoro temporanea. Tra altri utilizzi, SQL Server utilizza il database tempdb per:
Archiviazione delle tabelle temporanee create in modo esplicito.
Tabelle di lavoro che contengono i risultati intermedi creati durante l'elaborazione e l'ordinamento query.
Materializzare i cursori statici.

 

Metodo 1 per Riduci tempdb

Questo metodo richiede il riavvio di SQL Server.

1. Arrestare SQL Server. Aprire un prompt dei comandi e quindi avviare SQL Server digitando il comando riportato di seguito:

--c sqlservr f

- c e -f parametri provocare SQL Server avviare in una modalità di configurazione minima con una dimensione tempdb di 1 MB per il file di dati e 0,5 MB per il file di log.

Nota : se si utilizza un server SQL Istanza denominata, è necessario passare alla cartella appropriata ( name\Binn istanza Program Files\Microsoft SQL Server\MSSQL $ ) e utilizzare il -s switch (-INSTANCE_NAME % s).
2. La connessione a SQL Server con Query Analyzer e quindi eseguire i seguenti comandi Transact-SQL:
   ALTER DATABASE tempdb MODIFY FILE
   (NAME = 'tempdev', SIZE = target_size_in_MB) 
   --Desired target size for the data file

   ALTER DATABASE tempdb MODIFY FILE
   (NAME = 'templog', SIZE = target_size_in_MB)
   --Desired target size for the log file
					
3. Arrestare SQL Server tenendo premuto il tasto CTRL-C nella finestra Prompt dei comandi, riavviare SQL Server come un servizio e quindi verificare la dimensione dei file Tempdb.mdf e Templog.ldf.
Una limitazione di questo metodo è che opera solo su file logico tempdb predefinito, tempdev e templog . Se altri file sono stati aggiunti a tempdb è possibile compattare li dopo il riavvio di SQL Server come un servizio. Tutti i file tempdb vengono ricreati durante l'avvio, pertanto, sono vuoti e può essere rimosso. Per rimuovere i file aggiuntivi nel database tempdb , utilizzare il comando ALTER DATABASE con l'opzione File Remove.

 

Metodo 2 Per Riduci tempdb

Utilizzare il comando DBCC SHRINKDATABASE per compattare il database tempdb nel suo insieme. DBCC SHRINKDATABASE riceve il parametro target_percent , che indica la percentuale desiderata di sinistra dello spazio libero nel file di database dopo il database viene compattato. Se si utilizza DBCC SHRINKDATABASE, sarà necessario riavviare SQL Server.

Importante : se si esegue DBCC SHRINKDATABASE, nessun altro impegno può avvenire con il database tempdb . Per assicurarsi che gli altri processi non possono utilizzare tempdb mentre è in esecuzione DBCC SHRINKDATABASE, è necessario avviare SQL Server in modalità utente singolo. Per ulteriori informazioni vedere la sezione Effects of Execution of DBCC SHRINKDATABASE or DBCCSHRINKFILE While Tempdb Is In Use di questo articolo.

1. Determinare lo spazio attualmente utilizzato nel database tempdb mediante la procedura sp_spaceused memorizzato. Quindi, calcolare la percentuale di spazio libero sinistra per l'utilizzo come un parametro a DBCC SHRINKDATABASE; questo calcolo si basa sulle dimensioni del database desiderato.

Nota : in alcuni casi potrebbe essere necessario eseguire @UPDATEUSAGE sp_spaceused = true per ricalcolare lo spazio utilizzato e per ottenere un report aggiornati. Per ulteriori informazioni sulla procedura sp_spaceused memorizzati Vedere alla documentazione in linea di SQL Server.

Si consideri l'esempio:
Si supponga che tempdb è due file, il file di dati primario (Tempdb.mdf), che è 100 MB in dimensioni e il file di registro (Tempdb.ldf), ovvero 30 MB. Si supponga che sp_spaceused segnala che il file di dati primario contiene 60 MB di dati. Si supponga inoltre che si desidera compattare il file di dati primario a 80 MB. Calcolare la percentuale desiderata di spazio libero sinistra dopo la compattazione, 80 MB - 60 MB = 20 MB. A questo punto, dividere 20 MB da 80 MB = 25 % e che il target_percent . Il file registro delle transazioni viene compattato di conseguenza, lasciando al 25 % o 20 MB di spazio libero dopo il database viene compattato.
2. La connessione a SQL Server con Query Analyzer e quindi eseguire i seguenti comandi Transact-SQL:
   dbcc shrinkdatabase (tempdb, 'target percent') 
   -- This command shrinks the tempdb database as a whole
					
Esistono limitazioni per l'utilizzo del comando DBCC SHRINKDATABASE nel database tempdb . La dimensione di destinazione per i dati e i file di registro non può essere minore la dimensione specificato quando il database è stato creato o la dimensione l'ultimo esplicitamente impostata con un'operazione Modifica la dimensione di file, ad esempio ALTER DATABASE con l'opzione MODIFY FILE o il comando DBCC SHRINKFILE. Un'altra limitazione di DBCC SHRINKDATABASE è il calcolo del parametro target_percentage e la dipendenza lo spazio corrente utilizzato.

Metodo 3 per Riduci tempdb

Utilizzare il comando DBCC SHRINKFILE per compattare i file singoli database tempdb . DBCC SHRINKFILE fornisce maggiore flessibilità rispetto DBCC SHRINKDATABASE quanto è possibile utilizzarlo in un file singolo database senza influenzare gli altri file che appartengono allo stesso database. DBCC SHRINKFILE riceve il parametro di dimensione di destinazione , che rappresenta la dimensione finale desiderata per il file di database.

Importante : È necessario eseguire comando DBCC SHRINKFILE mentre non altre attività si verifica nel database tempdb . Per assicurarsi che gli altri processi non possono utilizzare tempdb mentre è in esecuzione DBCC SHRINKFILE, è necessario riavviare SQL Server in modalità utente singolo. Per ulteriori informazioni sulla DBCC SHRINKFILE, vedere la sezione Effects of Execution of DBCC SHRINKDATABASE or DBCCSHRINKFILE While Tempdb Is In Use di questo articolo.
1. Determinare la dimensione desiderata per il file di dati primario (Tempdb.mdf), il file di registro (templog.ldf) e/o altri file aggiunti al database tempdb . Assicurarsi che lo spazio utilizzato nei file sia minore o uguale alla dimensione di destinazione desiderata.
2. Connettersi a SQL Server con Query Analyzer e quindi eseguire i comandi Transact-SQL seguenti per i file di database specifico che è necessario ridurre:
   use tempdb
   go

   dbcc shrinkfile (tempdev, 'target size in MB')
   go
   -- this command shrinks the primary data file

   dbcc shrinkfile (templog, 'target size in MB')
   go
   -- this command shrinks the log file, look at the last paragraph.
						
Un vantaggio di DBCC SHRINKFILE è che è possibile ridurre la dimensione di un file a una dimensione minore le dimensioni originali. È possibile emettere DBCC SHRINKFILE in uno qualsiasi dei file di dati o di log. Una limitazione di DBCC SHRINKFILE è che non è possibile rendere il database minore la dimensione del database del modello.
Categoria: Sql Server ALL
giovedì, 24 lug 2008 Ore. 12.32

Messaggi collegati


Statistiche
  • Views Home Page: 471.751
  • Views Posts: 889.042
  • Views Gallerie: 0
  • n° Posts: 343
  • n° Commenti: 0
Copyright © 2002-2007 - Blogs 2.0
dotNetHell.it | Home Page Blogs
ASP.NET 2.0 Windows 2003