好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > SQLite速度評測代碼

SQLite速度評測代碼

熱門標簽:電話機器人錄音師薪資 江西穩定外呼系統供應商 中國地圖標注省份用什么符號 北京智能外呼系統供應商家 孝感銷售電銷機器人廠家 無錫梁溪公司怎樣申請400電話 高德地圖標注電話怎么沒了 奧維地圖標注字體大小修改 智能電銷機器人教育

今天有個朋友測試 SQLite,然后得出的結論是:SQLite 效率太低,批量插入1000條記錄,居然耗時 2 分鐘!
下面是他發給我的測試代碼。我暈~~~~~~

using System.Data;
using System.Data.Common;
using System.Data.SQLite;

// 創建數據庫文件
File.Delete("test1.db3");
SQLiteConnection.CreateFile("test1.db3");

DbProviderFactory factory = SQLiteFactory.Instance;
using (DbConnection conn = factory.CreateConnection())
{
// 連接數據庫
conn.ConnectionString = "Data Source=test1.db3";
conn.Open();

// 創建數據表
string sql = "create table [test1] ([id] INTEGER PRIMARY KEY, [s] TEXT COLLATE NOCASE)";
DbCommand cmd = conn.CreateCommand();
cmd.Connection = conn;
cmd.CommandText = sql;
cmd.ExecuteNonQuery();

// 添加參數
cmd.Parameters.Add(cmd.CreateParameter());

// 開始計時
Stopwatch watch = new Stopwatch();
watch.Start();

// 連續插入1000條記錄
for (int i = 0; i 1000; i++)
{
cmd.CommandText = "insert into [test1] ([s]) values (?)";
cmd.Parameters[0].Value = i.ToString();

cmd.ExecuteNonQuery();
}

// 停止計時
watch.Stop();
Console.WriteLine(watch.Elapsed);
}

哎~~~~ 一個常識性的錯誤,我加幾行代碼 (新增代碼標記 "http:// -------------------")。

using System.Data;
using System.Data.Common;
using System.Data.SQLite;

// 創建數據庫文件
File.Delete("test1.db3");
SQLiteConnection.CreateFile("test1.db3");

DbProviderFactory factory = SQLiteFactory.Instance;
using (DbConnection conn = factory.CreateConnection())
{
// 連接數據庫
conn.ConnectionString = "Data Source=test1.db3";
conn.Open();

// 創建數據表
string sql = "create table [test1] ([id] INTEGER PRIMARY KEY, [s] TEXT COLLATE NOCASE)";
DbCommand cmd = conn.CreateCommand();
cmd.Connection = conn;
cmd.CommandText = sql;
cmd.ExecuteNonQuery();

// 添加參數
cmd.Parameters.Add(cmd.CreateParameter());

// 開始計時
Stopwatch watch = new Stopwatch();
watch.Start();

DbTransaction trans = conn.BeginTransaction(); // -------------------
try
{
// 連續插入1000條記錄
for (int i = 0; i 1000; i++)
{
cmd.CommandText = "insert into [test1] ([s]) values (?)";
cmd.Parameters[0].Value = i.ToString();

cmd.ExecuteNonQuery();
}

trans.Commit(); // -------------------
}
catch
{
trans.Rollback(); // -------------------
throw; // -------------------
}

// 停止計時
watch.Stop();
Console.WriteLine(watch.Elapsed);
}

執行一下,耗時 0.2 秒。這差距是不是太大了點?

為什么只是簡單啟用了一個事務會有這么大的差距呢?很簡單,SQLite 缺省為每個操作啟動一個事務,那么原代碼 1000 次插入起碼開啟了 1000 個事務,"事務開啟 + SQL 執行 + 事務關閉" 自然耗費了大量的時間,這也是后面顯示啟動事務后為什么如此快的原因。其實這是數據庫操作的基本常識,大家要緊記,不好的代碼效率差的不是一點半點。

標簽:齊齊哈爾 臨滄 泰州 阜陽 通化 荊州 那曲 海北

巨人網絡通訊聲明:本文標題《SQLite速度評測代碼》,本文關鍵詞  SQLite,速度,評測,代碼,SQLite,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《SQLite速度評測代碼》相關的同類信息!
  • 本頁收集關于SQLite速度評測代碼的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: japanese分娩孕交tube| 日本人zzzwww色视频直播| 中国最帅gay小鲜肉男男| 林心如一级A片毛片免费看| 清冷受高H被强cao哭高H| 3000种禁用软件下载| 日剧大尺度床戏做爰| 老公刚日完赶紧又让| 操英语课代表| 久草视频福利在线观看| 久久91精品国产91久| 99视频有精品视频高清视频| 搡老熟女国产AV色欲| 妇女被猛烈进入在线播放| 小小的日本三电影免费观看| 中国一级黄| 韩国精品视频在线观看| 美女扒开腿秘?男人爽桶| 福利姬麻酥酥| 国产日韩精品一区二区在线观看| 扒开?狂揉?脱脱内内视频动漫| 极品白嫩粉嫩美女在线美女| 十大黄色网址| 自己动手丰衣足食幽默句子| H文纯肉无遮挡全文阅读软件 | 亚洲最黄视频| 自攻自受肉文| 人妻巨大乳挤奶水HD免费看动漫| 潘金莲裸体一级婬片| 欧美干肥婆| 老头olddaddytv| 好吊色视频在线观看| GOGO亚洲肉体艺术欣赏图片| 网站免费黄色| 激情男男互攻3p姿势| 狠狠操美女| 国产精品无码久久久久不卡| 爽?躁多水?快?深点触手| 黄色网址视频免费| 国产一级一片免费播放视频| 宝贝腿张开点我要C你体育老师|