久久机这里只有精品,国产69精品一区二区亚洲孕妇,91精品国产综合久久婷婷香蕉,午夜久久久久久电影

最新活動:電腦PC端+手機端+微網站+自適應網頁多模板選擇-建站388元起價?。。?
當前位置:主頁 > 網站建設 > SQLServer 批量插入數據的兩種方法建站知識

SQLServer 批量插入數據的兩種方法建站知識

時間:2023-05-23 22:05:23 閱讀: 文章分類: 網站建設 作者: 網絡小編

導讀:1建站知識在SQL Server 中插入一條數據使用Insert語句,但是如果想要批量插入一堆數據的話,循環使用Insert不僅效率低,而且會導網站推廣優化seo建設網站。

網站推廣優化seo建設網站運行下面的腳本,建立測試數據庫和表值參數。

復制代碼 代碼如下:

--Create DataBase create database BulkTestDB; go use BulkTestDB; go --Create Table Create table BulkTestTable( Id int primary key, UserName nvarchar(32), Pwd varchar(16)) go --Create Table Valued CREATE TYPE BulkUdt AS TABLE (Id int, UserName nvarchar(32), Pwd varchar(16))

下面我們使用最簡單的Insert語句來插入100萬條數據,代碼如下:

復制代碼 代碼如下:

Stopwatch sw = new Stopwatch(); SqlConnection sqlConn = new SqlConnection( ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString);//連接數據庫 SqlCommand sqlComm = new SqlCommand(); sqlComm.CommandText = string.Format("insert into BulkTestTable(Id,UserName,Pwd)values(@p0,@p1,@p2)");//參數化SQL sqlComm.Parameters.Add("@p0", SqlDbType.Int); sqlComm.Parameters.Add("@p1", SqlDbType.NVarChar); sqlComm.Parameters.Add("@p2", SqlDbType.VarChar); sqlComm.CommandType = CommandType.Text; sqlComm.Connection = sqlConn; sqlConn.Open(); try { //循環插入100萬條數據,每次插入10萬條,插入10次。 for (int multiply = 0; multiply < 10; multiply++) { for (int count = multiply * 100000; count < (multiply + 1) * 100000; count++) { sqlComm.Parameters["@p0"].Value = count; sqlComm.Parameters["@p1"].Value = string.Format("User-{0}", count * multiply); sqlComm.Parameters["@p2"].Value = string.Format("Pwd-{0}", count * multiply); sw.Start(); sqlComm.ExecuteNonQuery(); sw.Stop(); } //每插入10萬條數據后,顯示此次插入所用時間 Console.WriteLine(string.Format("Elapsed Time is {0} Milliseconds", sw.ElapsedMilliseconds)); } } catch (Exception ex) { throw ex; } finally { sqlConn.Close(); } Console.ReadLine();

耗時圖如下:

由于運行過慢,才插入10萬條就耗時72390 milliseconds,所以我就手動強行停止了。 下面看一下使用Bulk插入的情況: bulk方法主要思想是通過在客戶端把數據都緩存在Table中,然后利用SqlBulkCopy一次性把Table中的數據插入到數據庫 代碼如下:

復制代碼 代碼如下:

public static void BulkToDB(DataTable dt) { SqlConnection sqlConn = new SqlConnection( ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString); SqlBulkCopy bulkCopy = new SqlBulkCopy(sqlConn); bul網站建設哪家好kCopy.DestinationTableName = "BulkTestTable"; bulkCopy.BatchSize = dt.Rows.Count; try { sqlConn.Open(); if (dt != null && dt.Rows.Count != 0) bulkCopy.WriteToServer(dt); } catch (Exception ex) { throw ex; } finally { sqlConn.Close(); if (bulkCopy != null) bulkCopy.Close(); } } public static DataTable GetTableSchema() { DataTable dt = new DataTable(); dt.Columns.AddRange(new DataColumn[]{ new DataColumn("Id",typeof(int)高端網站建設), new DataColumn("UserName",typeof(string)), new DataColumn("Pwd",typeof(string))}); return dt; } static void Main(string[] args) { Stopwatch sw = new Stopwatch(); for (int multiply = 0; multiply < 10; multiply++) { DataTable dt = Bulk.GetTableSchema(); for (int count = multiply * 100000; count < (multiply + 1) * 100000; count++) { DataRow r = dt.NewRow(); r[0] = count; r[1] = string.Format("User-{0}", count * multiply); r[2] = string.Format("Pwd-{0}", count * multiply); dt.Rows.Add(r); } sw.Start(); Bulk.BulkToDB(dt); sw.Stop(); Console.WriteLine(s網站建設tring.Format("Elapsed Time is {0} Milliseconds", sw.ElapsedMilliseconds)); } Console.ReadLine(); }

關鍵詞標簽: 批量 SQL 兩種

聲明: 本文由我的SEOUC技術文章主頁發布于:2023-05-23 ,文章SQLServer 批量插入數據的兩種方法建站知識主要講述兩種,批量,SQL網站建設源碼以及服務器配置搭建相關技術文章。轉載請保留鏈接: http://www.bifwcx.com/article/web_6075.html

我的IDC 網站建設技術SEOUC.COM
專注網站建設,SEO優化,小程序設計制作搭建開發定制網站等,數千家網站定制開發案例,網站推廣技術服務。
  • 5000+合作客服
  • 8年從業經驗
  • 150+覆蓋行業
  • 最新熱門源碼技術文章

    主站蜘蛛池模板: 庄浪县| 兰西县| 嘉祥县| 邢台县| 南充市| 新兴县| 罗定市| 岳西县| 乌鲁木齐县| 香港| 嘉峪关市| 旬邑县| 阿拉善右旗| 扎兰屯市| 葵青区| 塔河县| 武穴市| 拉萨市| 峨山| 泰州市| 保靖县| 营山县| 二手房| 霍州市| 乾安县| 仙居县| 百色市| 德化县| 滨州市| 根河市| 宁安市| 义马市| 固镇县| 曲水县| 屯昌县| 临西县| 竹山县| 饶河县| 贵州省| 绥滨县| 桐柏县|