สวัสดีครับวันนี้จะมาแชร์เรื่อง SQL BULKCOPY
แล้ว SQL BULKCOPY คืออะไร?
SQL BULKCOPY คือเป็นส่วนของ SQL Server ที่ช่วยในการ Copy
ข้อมูลขนาดใหญ่ลงตารางได้รวดเร็วมากขึ้น ซึ่งถ้าเป็นเมื่อก่อนในการจะ Copy ข้อมูลขนาดใหญ่ลงตารางแต่ละครั้งนั้นเราจะเขียน
Code ให้ทำการอ่านข้อมูลแล้วค่อย Insert ทีละ ROW
เองจนกว่าจะครบทุก
ROW แต่การ Insert ทีละ ROW เองด้วยข้อมูลขนาดใหญ่นั้นก็ส่งผลความล่าช้าในการ
Insert เช่นกัน ทาง SQL Server จึงมีตัวช่วยในการ Copy ข้อมูลขนาดใหญ่นี้ที่ชื่อว่า
BulkCopy มาใช้งาน
ซึ่งวิธีใช้งานสามารถดูได้ตามตัวอย่างนี้ครับ
จากตัวอย่างด้านล่างเป็นตัวอย่างการนำข้อมูลใน class DataTable
มา
Copy ใส่ในตารางของ SQL Server
using System.Data.SqlClient;
public bool insertBulkCopy(string tableName, DataTable dataTable)
{
using (SqlBulkCopy bc = new SqlBulkCopy(connectionString, SqlBulkCopyOptions.TableLock))
{
bool isSuccess = false;
try
{
bc.DestinationTableName = tableName;
bc.BatchSize = dataTable.Rows.Count;
bc.BulkCopyTimeout = this.timeout_command;
bc.WriteToServer(dataTable);
isSuccess = true;
}
catch (SqlException ex)
{
}
finally
{
}
return isSuccess;
}
}
หรือสามารถศึกษาเพิ่มเดิมได้ที่ https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/sql/bulk-copy-operations-in-sql-server
ผมหวังว่าแชร์นี้จะมีประโยชน์นะครับ ขอบคุณครับ
ไม่มีความคิดเห็น:
แสดงความคิดเห็น