Toplu verileri C# üzerinden yüklemek için en hızlı yolu arıyorum. İşi yapan ama yavaş olan bu betiğe sahibim. SqlBulkCopy'nin en hızlı olduğu ifadelerini okudum.
1000 kayıt 2,5 saniye. dosyalar 250k'ye kadar olan kayıtların bulunduğu herhangi bir yerde 250k arasındadır. Yavaşlatabilecek bazı şeyler nelerdir?SqlBulkCopy pekmezi yavaşlatıyor
Tablo Def: Burada
CREATE TABLE [dbo].[tempDispositions](
[QuotaGroup] [varchar](100) NULL,
[Country] [varchar](50) NULL,
[ServiceGroup] [varchar](50) NULL,
[Language] [varchar](50) NULL,
[ContactChannel] [varchar](10) NULL,
[TrackingID] [varchar](20) NULL,
[CaseClosedDate] [varchar](25) NULL,
[MSFTRep] [varchar](50) NULL,
[CustEmail] [varchar](100) NULL,
[CustPhone] [varchar](100) NULL,
[CustomerName] [nvarchar](100) NULL,
[ProductFamily] [varchar](35) NULL,
[ProductSubType] [varchar](255) NULL,
[CandidateReceivedDate] [varchar](25) NULL,
[SurveyMode] [varchar](1) NULL,
[SurveyWaveStartDate] [varchar](25) NULL,
[SurveyInvitationDate] [varchar](25) NULL,
[SurveyReminderDate] [varchar](25) NULL,
[SurveyCompleteDate] [varchar](25) NULL,
[OptOutDate] [varchar](25) NULL,
[SurveyWaveEndDate] [varchar](25) NULL,
[DispositionCode] [varchar](5) NULL,
[SurveyName] [varchar](20) NULL,
[SurveyVendor] [varchar](20) NULL,
[BusinessUnitName] [varchar](25) NULL,
[UploadId] [int] NULL,
[LineNumber] [int] NULL,
[BusinessUnitSubgroup] [varchar](25) NULL,
[FileDate] [datetime] NULL
) ON [PRIMARY]
ve
private void BulkLoadContent(DataTable dt)
{
OnMessage("Bulk loading records to temp table");
OnSubMessage("Bulk Load Started");
using (SqlBulkCopy bcp = new SqlBulkCopy(conn))
{
bcp.DestinationTableName = "dbo.tempDispositions";
bcp.BulkCopyTimeout = 0;
foreach (DataColumn dc in dt.Columns)
{
bcp.ColumnMappings.Add(dc.ColumnName, dc.ColumnName);
}
bcp.NotifyAfter = 2000;
bcp.SqlRowsCopied += new SqlRowsCopiedEventHandler(bcp_SqlRowsCopied);
bcp.WriteToServer(dt);
bcp.Close();
}
}
Yavaş? Kaç kayıt var? Başka hangi yaklaşımları denediniz? Bu "yavaş", "biraz daha iyi git, biraz kahve al" ya da "Elinden daha hızlı yazabilirim" gibi mi? – GalacticCowboy
Yavaşça "Biraz kahve alsam iyi olur" 1000 kayıt 2,5 saniye. dosyalar 250k'ye kadar –
için 5000 kaydın herhangi bir yerini içerir. db'nizin bir 'LOAD DATA INFILE' işlevi var mı? – dnagirl