位置: 编程技术 - 正文

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

  • 23年一般纳税人税收政策是什么
  • 简易计税方法和免税该怎么选择
  • 印花税的纳税人是买方还是卖方
  • 出口退税购入的商品进项税怎么处理
  • 所得税费用影响净利润吗
  • 工会经费每月必须60块钱
  • 预收货款开票怎么做账
  • 小微企业的企业所得税税收优惠政策
  • 租赁设备出口怎么处理?
  • 销售产品产生的运杂费分录
  • 提取法定盈余公积会计分录
  • 凭证单据的整理
  • 老板给的钱计入什么科目
  • 报销凭证找不到了怎么办
  • 增值税普通发票需要交税吗
  • 餐饮增值税
  • 增值税专用发票验票
  • 按季申报是什么意思
  • 已经提完折旧的固定资产报废
  • 收到发票,未付款,付款的时候需要把发票复印做附件吗
  • 充值卡多长时间到账
  • 光伏发电项目发电户是否可以享受小规模优惠政策
  • 劳动报酬个人所得税由扣缴义务人预扣预缴
  • 新会计准则下的会计科目
  • php时间戳相减
  • dll进程
  • torch.save用法
  • laravel 使用redis
  • 货物发生非正常损失为什么要做j进项转出
  • 外经证有效期到了,可以续吗
  • idea配置meaven
  • 火车及机票退票扣多少钱
  • 外贸企业账务处理方法
  • 保险费支出是什么意思
  • 企业所得税季初和季末怎么算
  • 个人社保进费用,还要报个税么
  • 帝国cms模板文件放在哪里
  • java同步操作
  • 织梦会员系统
  • 已付款收到发票
  • MySQL提示The InnoDB feature is disabled需要开启InnoDB的解决方法
  • sqlserver数据库事物日志已满
  • 跨月的凭证出错如何处理
  • 政府补助的内容
  • 社保比例调整了吗
  • 股权收购协议书实际案例
  • 异地预交所得税分录
  • 经营性租赁资产
  • 旅游服务住宿费可以抵扣吗
  • 社保年度汇算清缴怎么做
  • 企业购买原材料属于投资吗
  • 团体意外保险能赔多少钱
  • 回购股票会导致所有者权益减少吗
  • 统计会计主要做什么
  • sqli
  • sql有哪些语句
  • win7系统宽带连接
  • windows7 ip地址冲突
  • Win7安装i219v网卡驱动
  • win10预览版21277
  • win8资源管理器未响应
  • mac系统怎么设置字体大小
  • windows8如何分盘
  • cocos点击事件
  • 怎么删除listview条目
  • linux怎样过滤一个关键字
  • 怎么重置mysql的密码
  • 使用ssh登录远程服务器有两种方法
  • android主流分辨率
  • linux shell脚本攻略(第3版)
  • centos 安装pip3
  • gps坐标计算距离公式工具
  • python如何通过键找对应值
  • js tab页面切换
  • 国家税务总局宁夏回族自治区税务局
  • 税务ukey登录界面
  • 免税发票可以抵多少税
  • 电脑上怎样安装word文档
  • 天津市各区国税局待遇一样吗?
  • 金税三期个人所得税怎么申报
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设