Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Il modo più veloce per trasferire i dati della tabella di Excel in SQL 2008R2

Non esiste un unico modo più veloce, poiché dipende da una serie di fattori. Assicurati che gli indici in SQL siano configurati e ottimizzati. Molti indici interromperanno le prestazioni di inserimento/aggiornamento poiché ogni inserto dovrà aggiornare l'indice. Assicurati di effettuare solo una connessione al database e di non aprirlo/chiuderlo durante l'operazione. Eseguire l'aggiornamento quando il server è sotto carico minimo. L'unico altro metodo che non hai provato consiste nell'usare un oggetto Command ADO ed emettere un'istruzione INSERT diretta. Quando si utilizza il metodo "AddNew" dell'oggetto recordset, assicurarsi di emettere solo un comando "UpdateBatch" alla fine degli inserimenti. A parte questo, il VBA può funzionare solo alla velocità del server SQL che accetta gli input.

EDIT:sembra che tu abbia provato di tutto. C'è anche quella che è nota come modalità di ripristino "registrato in blocco" in SQL Server, che riduce il sovraccarico di scrittura così tanto nel registro delle transazioni. Potrebbe essere qualcosa che vale la pena esaminare. Può essere problematico poiché richiede di armeggiare un po' con il modello di ripristino del database, ma potrebbe essere utile per te.