位置: 编程技术 - 正文

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

  • 不含税价格计算方法
  • 增值税的专用发票有几联
  • 赠与房屋再次出售的缴税问题有哪些
  • 个体工商户月销售额超10万怎么报税
  • 销货退回的税务处理
  • 短期借款明细账应采用三栏式账页格式
  • 销售补差怎么做分析
  • 企业所得税表中营业成本包括费用吗
  • 增值税发票常见问题
  • 收保险赔偿款如何处理?
  • 公司社保收费标准
  • 技术服务行业分析
  • 汇算清缴补缴税分录
  • 单位购入新车的发票
  • 抵债的货物按什么算增值税
  • 预缴所得税如何做账
  • 预警期内的应收账款管理
  • 上月有留抵的进项税额本月会计分录
  • 一般企业车辆日期怎么算
  • 花店怎么做会计工作
  • 上海中级会计报名入口
  • 购买加油卡能否开发票
  • 发票认证只认证进项吗
  • 如何查出账外收入
  • 发票货物或应税劳务名称怎么修改
  • ios14 举报短信
  • u盘启动盘如何分区
  • 金融保险属于什么行业
  • 以前年度多计提的税金怎么调整
  • php简单实例
  • 预收账款什么时候确认
  • 前端实现拖拽拉动图片
  • 增值税出口服务包括什么
  • 进项发票抵扣途中怎么办
  • php怎么执行sql语句
  • uniapp支付流程
  • sigmoid函数求导表达式
  • php计算圆的周长和面积代码
  • php时间转换成时间戳
  • php post数据
  • js中的数组
  • 公司当月没有人发工资
  • 补发工资个人所得税税
  • python的next()
  • 专票作废扣税吗
  • 什么情况个税可以扣除
  • 个体工商户季度超过9万怎么交税
  • sqlserver去掉字符串内的指定字符
  • 一般纳税人开普票税率是多少
  • 临时工和正式工工资不一样违法吗
  • 工会经费与残保金属于什么
  • 转账支付水电费
  • 库存商品盘亏计哪个科目
  • 老板怎么从公户拿钱
  • 水利工程施工税率是多少
  • 房屋租赁费可以抵扣吗
  • 独立核算好处
  • 如何计算更新改造后的入账价值
  • 现金日记账1月份本年累计吗
  • 个人独资企业交什么税
  • windows怎么查看
  • win7系统关机很慢什么原因
  • 轻量级个人用linux桌面系统
  • win8换win10系统步骤
  • 苹果MAC电脑怎么玩圣安地列斯
  • WIN10如何禁用驱动程序强制签名
  • win8系统怎么重新安装系统
  • linux的文件结构
  • win7系统每次关机都安装更新
  • win10更新提示错误
  • 使用jquery
  • 我吐槽你
  • linux下mysql如何自动备份shell脚本
  • shell脚本输出空格
  • javascriptz
  • 安卓打造世界中文全dlc
  • python怎么用数组
  • 防伪税控维护费普通发票怎么申报
  • 河北省税金费率
  • 福建是高原还是平原
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设