Condividi tramite


Database temporanei

Microsoft SQL Server Compact 3.5 (SQL Server Compact 3.5) crea un database temporaneo per l'archiviazione di dati temporanei, ad esempio:

  • Set dei risultati provvisori che vengono creati durante una query.
  • Tabelle di ordinamento provvisorie che vengono create durante l'esecuzione di una clausola ORDER BY, GROUP BY o DISTINCT.

Il database temporaneo viene creato solo se richiesto esplicitamente. Il nome deve essere specificato all'avvio del motore. Il database temporaneo viene rimosso all'arresto del motore di database. In caso di interruzione anomala di un'applicazione SQL Server Compact 3.5 o di un problema di sincronizzazione file, i file del database temporaneo restano nel sistema. Tali file dovranno essere rimossi manualmente.

Percorso del database temporaneo

Per operazioni che richiedono l'impiego di database temporanei di grandi dimensioni, è consigliabile specificare esplicitamente il percorso in cui creare il database temporaneo. Se tale percorso non viene specificato, il database temporaneo verrà creato nello stesso percorso del database corrente. Se il nome del database temporaneo non viene specificato, il relativo nome di file inizierà con "SQLCE" (ad esempio, SQLCE334241234.tmp).

Il percorso del database temporaneo deve essere specificato prima dell'avvio del motore e non può essere modificato quando il motore è in esecuzione. È possibile modificare il percorso del database temporaneo quando il database viene compattato. Per ulteriori informazioni, vedere Manutenzione di database e Procedura: Compattazione di un database (a livello di programmazione).

Specifica del percorso

Il percorso del database temporaneo viene specificato nella stringa di connessione al database utilizzando il parametro temp path, temp file directory o ssce:temp file directory .

Nota

Il percorso specificato per il database temporaneo deve essere già esistente.

Per ulteriori informazioni, vedere Procedura: Definizione del percorso del database temporaneo tramite ADO.NET (a livello di programmazione), Procedura: Specifica del percorso del database temporaneo tramite gli oggetti Replication e RDA e Procedura: Impostazione del percorso del database temporaneo tramite OLE DB (a livello di programmazione).

La stringa di connessione viene utilizzata con gli oggetti SqlCeConnection, SqlCeReplication e SqlCeRemoteDataAccess. Per l'oggetto SqlCeReplication è necessario includere il percorso del database temporaneo per tutti i metodi che utilizzano la proprietà SubscriberConnectionString. Nella tabella seguente vengono elencati tali metodi.

Solo nativi Solo gestiti Sia nativi che gestiti
  • repl.Initialize
  • repl.run
  • repl.Synchronize
  • repl.BeginSynchronize
  • repl.Addsubscription
  • repl.ReinitializeSubscription
  • repl.DropSubscription

Per l'oggetto SqlCeRemoteDataAccess è necessario includere il percorso del database temporaneo per tutti i metodi che utilizzano una proprietà LocalConnectionString. Tali metodi sono:

  • RDA_Object.Pull (nativo e gestito)
  • RDA_Object.Push (nativo e gestito)

Aumento delle dimensioni del database temporaneo

L'utilizzo di database di grandi dimensioni può comportare la creazione di considerevoli quantità di dati temporanei. Quando il database temporaneo cresce fino ad esaurire lo spazio disponibile sul dispositivo di archiviazione o fino a raggiungere il limite massimo prestabilito, si verifica un errore dell'applicazione.

L'aumento delle dimensioni del database temporaneo può essere causato dalle seguenti operazioni, specie se queste vengono raggruppate in un'unica transazione esplicita:

  • Istruzioni UPDATE e DELETE che interessano una grande quantità di dati.
  • Operazioni di ordinamento. Se un indice soddisfa l'ordinamento, è possibile che l'operazione non richieda l'utilizzo del database temporaneo. Alcune operazioni di ordinamento possono creare ulteriori file temporanei per i buffer di ordinamento temporanei. Tali file non vanno confusi con il database temporaneo. Per ogni database viene creato un solo database temporaneo, ma può essere creato un numero indefinito di file per i buffer di ordinamento temporanei.

Per ulteriori informazioni sulle transazioni esplicite, vedere Tipi di transazioni.

Per evitare che file di database di grandi dimensioni crescano fino a raggiungere i limiti di archiviazione del dispositivo, archiviare i database in una scheda di memoria anziché nella RAM interna.