วันอาทิตย์ที่ 17 มิถุนายน พ.ศ. 2561

SQL BULKCOPY


สวัสดีครับวันนี้จะมาแชร์เรื่อง 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

ผมหวังว่าแชร์นี้จะมีประโยชน์นะครับ ขอบคุณครับ

ไม่มีความคิดเห็น:

แสดงความคิดเห็น