मैं सी # के माध्यम से थोक डेटा लोड करने का सबसे तेज़ तरीका ढूंढ रहा हूं। मेरे पास यह स्क्रिप्ट है जो नौकरी करता है लेकिन धीमा है। मैंने साक्ष्य पढ़ा है कि एसकब्लूल्ककॉपी सबसे तेज़ है।
1000 रिकॉर्ड 2.5 सेकंड। फ़ाइलों में 250000 पर 5000 रिकॉर्ड्स के करीब कहीं भी शामिल है जो कुछ चीजें हैं जो इसे धीमा कर सकती हैं?SqlBulkCopy गुड़ के रूप में धीमी
टेबल डेफ:
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]
और यहाँ, कोड
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();
}
}
क्या तुलना में धीमी है? कितने रिकॉर्ड? आपने किस अन्य दृष्टिकोण की कोशिश की है? क्या यह "धीमी" है जैसे "जी, मैं बेहतर कुछ कॉफी लेता हूं" या जैसा कि "मैं इसे हाथ से तेज़ी से टाइप कर सकता हूं"? – GalacticCowboy
"मैं बेहतर कुछ कॉफी पकड़ो" 1000 रिकॉर्ड 2.5 सेकंड के रूप में धीमा। फ़ाइलों में 250k –
पर 5000 रिकॉर्ड्स के पास कहीं भी शामिल है क्या आपके डीबी में 'लोड डेटा इन्फाइल' फ़ंक्शन है और क्या आप इसे सीधे कॉल कर सकते हैं? – dnagirl