Bulkcopy 100 milioni di righe di dati in Azure SQL Server utilizzando C #?

c# sqlbulkcopy sql-server-2017

Domanda

Ho un database locale di SQL Server 2017 e devo copiare due tabelle in un database di SQL Server di Azure; una tabella contiene oltre 100 milioni di righe di dati, inclusa una colonna di tipo "geografia". Come lo faccio?

In questo momento sto eseguendo una copia in blocco:

using (SqlConnection streamsConnection = new SqlConnection(streamsConnectionString))
{
    streamsConnection.Open();

    using (SqlConnection cloudConnection = new SqlConnection(cloudConnectionString))
    {
        cloudConnection.Open();

        using (SqlCommand cmd = streamsConnection.CreateCommand())
        using (SqlBulkCopy bcp = new SqlBulkCopy(cloudConnection))
        {
            bcp.DestinationTableName = "GroundDataNodes";
            bcp.BatchSize = 200000;
            bcp.BulkCopyTimeout = 1200;
            bcp.NotifyAfter = 100000;
            bcp.SqlRowsCopied += new SqlRowsCopiedEventHandler(s_SqlRowsCopied);

            cmd.CommandText = "SELECT [Id],[nodeid],[latlon],[type],[label],[code],[lat],[lon]FROM[dbo].[GroundDataNodes]";

            using (SqlDataReader reader = cmd.ExecuteReader())
            {
                bcp.WriteToServer(reader);
            }

            Console.WriteLine("Finished!");
            Console.ReadLine();
        }
    }
}

Ma sono abbastanza nuovo per il lato carico grosso e mi sto chiedendo come posso migliorare così non ci vorranno settimane per correre ...

Risposta popolare

quindi ho provato tutti i tipi di materiale di caricamento come il caricamento in blocco, la migrazione, il backup ecc. ma tutti avevano lo stesso problema e la mia velocità di caricamento non era all'altezza. Funzionerebbe ma ci vorranno giorni per correre. Così ho deciso di scrivere un bit di codice lato server per compilarlo da lì direttamente sul database, eliminando quindi le mie velocità di upload dall'equazione. Immagino che se avessi una migliore velocità di upload, lo strumento di migrazione avrebbe funzionato bene anche con il campo Geografico, ecc. Non veloce, ma avrebbe funzionato.



Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché