位置: 编程技术 - 正文

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

  • 开票和收到的款金额不一样怎么办?
  • 经营性应付项目增加导致现金流量
  • 汇兑损益现金流量表列示
  • 设备采购及安装属于工程还是货物
  • 红字发票已抵扣和未抵扣是什么意思
  • 租车纳税
  • 企业报废固定资产的净损失应确认为企业的费用
  • 劳务所得税税率表最新
  • 免抵退税的账务处理
  • 分公司借款给总公司
  • 原材料保险公司赔偿会计分录怎么写
  • 公司给客户退款会计分录
  • 小规模纳税人开了3%的专票还能享受1%
  • 物业费收入的增值税税率是多少
  • 房地产土地抵扣
  • 建筑业增值税税率2022
  • 水利建设专项收入怎么计算
  • 一般户开户行可以开增值税专票么
  • 中奖个人所得税多少起征收
  • 进口付汇核销流程
  • 开出技术服务费怎么结转成本
  • 汽车装饰用品大全进货
  • 电力发票没有到怎么做分录
  • 已经发货了点击确认收货可以吗?
  • 股东退股会计科目
  • 电费预付之后又退回来了
  • 债券利息收入的分录
  • 往年的营业外收入冲减
  • 哪些金融资产的股票会涨
  • 脑部病毒感染什么症状
  • 打印机5b00错误解决
  • 建造合同完工百分比法
  • php获取当前定位
  • 浅析论文题目
  • 带你看看房间英语怎么写
  • html作业做网页
  • yolov3训练自己的数据超详细
  • 关联数据查询
  • 开红字发票导入信息不完整怎么处理?
  • 接口二次封装
  • 公司卖地如何交税
  • 代收代付业务需要开发票吗
  • 哪个网站可以免费学电脑
  • 国家企业信用公示信息公示
  • 四种股利分配政策及适用情况
  • 个体工商户经营所得税税率表2023年
  • 外出经营税收缴纳
  • 网银转账往来款怎么做账
  • mustn't be allowed
  • mysql 子查询
  • 销售折让的账务处理方法
  • 盈利能力还有什么能力
  • 分公司出现法律问题谁负责
  • 小企业外币业务包括
  • 到银行提取备用金
  • 受疫情影响较大的上市公司
  • 银行承兑的购买
  • 远期支票最长期限
  • 处理旧固定资产税率
  • 季报能弥补以前年度亏损吗
  • 免征增值税还要计提附加税吗
  • 融资租出的设备是不是资产
  • 餐费发票报销需提供清单吗
  • 发票抬头注意事项
  • 商业企业长期负债怎么办
  • mysql的min函数
  • sqlserver 查询语句
  • mac怎么隐藏桌面文件
  • centos怎么设置
  • 登录ip怎么查位置
  • linux dfs
  • web页面展示
  • 批处理计数
  • python爬虫系统
  • javascript运行环境有哪些
  • 煤炭资源税税率调整
  • 重庆电子税务局怎么绑定办税人员
  • 深圳市税务网上注销流程图
  • 税务局诉讼
  • 新余契税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设