位置: 编程技术 - 正文

SQLite速度评测代码

编辑:rootadmin
今天有个朋友测试 SQLite,然后得出的结论是:SQLite 效率太低,批量插入条记录,居然耗时 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(); // 连续插入条记录 for (int i = 0; i < ; i++) { cmd.CommandText = "insert into [test1] ([s]) values (?)"; cmd.Parameters[0].Value = i.ToString(); cmd.ExecuteNonQuery(); } // 停止计时 watch.Stop(); Console.WriteLine(watch.Elapsed); } 哎~~~~ 一个常识性的错误,我加几行代码 (新增代码标记 "// <-------------------")。 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 { // 连续插入条记录 for (int i = 0; i < ; 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 缺省为每个操作启动一个事务,那么原代码 次插入起码开启了 个事务,"事务开启 + SQL 执行 + 事务关闭" 自然耗费了大量的时间,这也是后面显示启动事务后为什么如此快的原因。其实这是数据库操作的基本常识,大家要紧记,不好的代码效率差的不是一点半点。

推荐整理分享SQLite速度评测代码,希望有所帮助,仅作参考,欢迎阅读内容。

SQLite速度评测代码

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

SQLite优化方法 例如:向数据库中插入万条数据,在默认的情况下如果仅仅是执行sqlite3_exec(db,insertintonamevalues‘lxkxf',‘';,0,0,&zErrMsg);将会重复的打开关闭数据库文

保护你的Sqlite数据库(SQLite数据库安全秘籍) SQLite无任何限制的授权协议以及支持大部分标准的SQL语句,相信会有越来越多的人使用这个数据库。PHP与SQLite的结合就如同当年的ASP与ACCESS结合一样,

Sqlite 常用函数 推荐 1、打开数据库:说明:打开一个数据库,文件名不一定要存在,如果此文件不存在,sqlite会自动创建。第一个参数指文件名,第二个参数则是定义的sqli

标签: SQLite速度评测代码

本文链接地址:https://www.jiuchutong.com/biancheng/312799.html 转载请保留说明!

上一篇:PHP中的mongodb group操作实例(php 操作mongodb)

下一篇:SQLite优化方法

  • 出口企业税负率计算公式
  • 定期定额户申报表怎么填
  • 报关单汇率按出口日期还是申报日期
  • 金蝶多核算项目怎么做
  • 企业放贷利息收多少合适
  • 小规模开专票要计提附加税吗
  • 一般纳税人所得税是季报还是月报
  • 商业保险可以抵扣增值税吗
  • 一般纳税人存货采购成本包括
  • 专票入账用哪一联
  • 出口没有退税的发票
  • 地质灾害评估费收费标准
  • 简易办法征收一般纳税人开票税率
  • 三联专用发票每一联分别给谁
  • 土地成本费用包括什么
  • 研发废料收入实务中如何冲减研发费用?
  • 固定资产金额小于5000元,可以不一次性税前扣除吗
  • 技术服务费进项票会计分录
  • 卖给客户
  • 所得税申报表中的营业成本包括费用吗
  • 制造费用如何分摊到产品的成本
  • win10应用商店变成英文怎么改成中文
  • windowsmodulesinstaller占用cpu
  • laravel批量更新数据
  • elf.exe是什么程序
  • php生成二维码源码
  • 公司主营业务有哪些类型
  • php数据导出到excel
  • 暴风雪的寒冷
  • 买一赠一的会计处理与税务处理
  • 车辆维修费怎么做分录
  • vue项目更新后还是老代码
  • 工商银行代发工资多久到账
  • 已收到货款 还未发货的会计处理
  • 什么是财务报表分析,方法有哪些
  • 资产负债表净资产为负数
  • 购买备用品会计分录
  • 织梦怎么用模板建站
  • 施工企业会计科目
  • 转让厂房需要交哪些税
  • 一般劳务报酬个人所得税退税吗
  • 财政专户资金支出
  • 季度缴纳房租申请怎么写
  • 关于事业支出期末的结转
  • 绿化工程苗木成活率交工标准
  • 党组织专项经费包括什么
  • 老板想提取销售怎么办
  • 企业缴纳社保费包括企业部分和个人部分
  • 经纪代理包括什么
  • 小规模公司购买成本票严重吗
  • 固定资产管理台账管理制度
  • 汽车固定资产残值率
  • mysql优化sql有哪些
  • mysql数据库优化方案
  • 在Vista、Windows7下玩英雄无敌3绿色版
  • 虚拟机中的centos怎么联网
  • fedora29
  • 局域网 打印机 共享
  • pvlsvr.exe - pvlsvr是什么进程 有什么用
  • servers.mcs
  • Win10年度更新正式发布:功能全面升级
  • win8卸载软件在哪里卸载
  • jquery实现表单验证
  • unity2018地形
  • nginx日志路径配置
  • javascript总结
  • java list转set的方法
  • shell脚本编程100例
  • linux 批量修改
  • javascript怎么用
  • 手机端apk反编译工具_android反编译工具
  • android获取本机ip地址
  • 异步加载场景
  • androidstudio性能检测工具
  • python数组定义方法
  • 江苏专家库申报在哪个网站
  • 税务系统全面从严治党工作会议
  • 浙江省税务发票
  • 租了店面
  • 福建税务局电子税务局电话多少
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设