位置: 编程技术 - 正文

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优化方法

  • 下半年房产税缴纳时间
  • 小规模纳税人每季度超过30万交税
  • 租土地使用权建房
  • 外部审计内容是什么
  • 公司卖出货物没有入库记录如何做账?
  • 税控系统技术维护费会计处理280
  • 机票抵扣怎么填申报表
  • 私立医院申报程序
  • 其他应收款账目
  • 人力资源服务费发票可以抵扣吗
  • 固定资产大修理的标准
  • 持有待售资产固定资产 要计提折旧吗
  • 研发费用加计扣除行业
  • 营改增后进项税额分摊
  • 先付一半款财务应该怎么写
  • 购买税控设备,享受何种优惠政策
  • 印花税的会计处理
  • 非独立核算的分公司如何报税
  • 个税提前预缴怎么入账?
  • 财务软件中摊销怎么做账
  • 计提汇算清缴涉及到不是当年费用怎么记账
  • 分公司负债,总公司要负担
  • 固定资产无偿移交怎么做账
  • 商品促销有关问题
  • 资产负债表与现金流量表的关系
  • 桃胶多少钱一斤正常
  • 居民企业应纳税额
  • 房产契税如何计算2021年
  • fpx是什么文件
  • 我整理的邪恶铭刻所有卡牌及自制卡
  • 失控发票进项转出后要补企业所得税吗
  • 财政补贴的内容分类
  • php中文编程
  • vue3使用ref获取元素
  • thinkphp6.0完全开发手册
  • php7 数组
  • 中国传统节日大概有多少
  • 怎样计提购销合同印花税
  • python每行输出五个且对齐
  • 申请税控盘流程需要几个工作日
  • 印花税最新的征收方法
  • 农民工工资专户管理暂行办法
  • 财务负责人需要承担什么风险
  • 一般纳税人什么时候用简易计税
  • 没有收据不开发票
  • 端午节发放的现金福利会计处理
  • 应收票据到期收回的会计分录
  • 一年内到期的非流动负债是经营性负债吗
  • 外贸出口退税政策
  • 机器折旧科目
  • 建筑业建议
  • 注册资本为0的公司可以去吗
  • 进项税额转出科目编码
  • 企业开了发票
  • 库存商品核算流程是怎样的
  • mac系统制作
  • linux系统中的一切都归结为
  • ubuntu装eclipse
  • vi编辑器使用教程
  • windows10周年纪念版
  • kcleaner是什么文件夹
  • Win10 Mobile 10586.36预览版怎么更新?
  • unity3D LineRender的使用
  • 一键清除照片上多余的人
  • css制作动画
  • bash脚本语言
  • ssh远程执行命令返回结果存成本地变量
  • javascript例题
  • 类库怎么用
  • 湖北税务官方网
  • 保险的佣金一般是多少
  • 加强案件查办工作方案
  • 超市一般纳税人做账流程
  • 全国砂石供应紧缺
  • 包头市到青山区多少公里
  • 年度营业账簿印章怎么写
  • 如何打印更正申请
  • 签订设计合同
  • 什么是集体约谈制
  • 关于企业所得税的说法
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设