位置: 编程技术 - 正文

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元,可以不一次性税前扣除吗
  • 营业外支出所得税汇算要调增吗
  • 应交税金负数如何调整
  • 获得administer权限
  • 独立费计算
  • 怎么用红字信息表开红字发票
  • 自用煤怎么入账
  • 小规模餐饮业怎样报税减免
  • 微信提现手续费最新规定
  • mac 系统查看
  • msvcp140.dll丢失怎么办
  • 公积金提取条件和标准
  • 预防cpu被烧毁的办法
  • 出售固定资产减免的税款账务处理
  • 应收票据其他应收款都需要提取坏账准备么
  • 什么情况下要预提集装箱
  • 增值税加计抵减怎么算
  • 大前端需要掌握什么技能
  • 前端开发从入门到放弃
  • node-js
  • vs命令参数
  • 关联数据查询
  • 应征增值税不含税销售额(5%征收率)是什么意思
  • 材料明细帐
  • 为什么其他权益工具投资不计提减值准备
  • 企业对于预支工资的建议
  • 子公司收购母公司另一子公司会计处理
  • 社保可以不计提直接缴纳吗
  • 应付账款和预付账款的会计分录
  • 小规模纳税人收入是含税还是不含税
  • 直接人工费和应付职工薪酬
  • 股东借款作为项目投入的依据
  • 利润表中的本期金额和本年累计金额
  • 新成立的公司企业所得税
  • 资产减值损失如何计算
  • 存货跌价准备的账务处理
  • 发票金额大于付款金额怎么写说明
  • 营业外收入主要包括( )
  • 固定成本和变动成本举例
  • 财务费用报销流程最后环节出纳
  • 增值税普票没有发票章可以吗
  • 电子监控系统安装与维修
  • 领用自产产品用于固定资产
  • 发货就要开票吗
  • 个体户能开建筑劳务发票吗
  • 差旅费属于什么会计要素
  • 企业试生产时间规定
  • 增值税纳税申报表在哪里打印
  • 新设企业如何建账
  • sql 修改表的字段名称
  • mysql索引方式有哪些
  • 简述Mysql Explain 命令
  • mysql error1418
  • mysql5.7压缩包
  • win7系统摄像头打不开
  • linux中压缩文件
  • SetPoint.exe - SetPoint是什么进程 有什么用
  • win8如何更改默认存储位置
  • 圣诞老人现在在干嘛
  • win7待机时间在哪调
  • win8怎么运行命令
  • win7 android studio
  • jquery滚动到底部
  • u3d unity3d
  • js模拟实现new
  • python 设计
  • javascript电商项目
  • 焦作国税局官网
  • 土地增值税网上申报流程
  • 伴生矿和伴采矿的区别
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设