位置: 编程技术 - 正文

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

  • 进口关税和增值税可以抵扣吗
  • 报税是怎么操作的
  • 本年利润借方余额意味什么
  • 领增值税专票需要发票吗
  • 黄金消费税计税依据
  • 股票交易费用计入
  • 待清算商户款项怎么做账
  • 购买旧固定资产的增值税进项税
  • 没有土地使用证可以过户吗
  • 企业所得税弥补亏损年限
  • 农产品核定扣除范围
  • 租赁植物费用
  • 报销购物卡发票公司如何交税?
  • 集团内部拨付的研发经费如何核算?
  • 周转材料属于什么会计要素
  • 扣服装费的收入如何交增值税?
  • 招行理财产品哪些可靠
  • 外贸企业购买生产车辆
  • 其他应付款转增股本
  • 融资租赁销售方会计处理
  • 所得税纳税调增调减怎么理解
  • 4S店装修改造费帐务处理?
  • 客户汇公司账户怎么汇
  • mac版本系统
  • 小规模纳税人安装费税率
  • 房屋租赁收入确认条件新准则
  • 民间非盈利组织会计信息的使用者
  • bios设置内存频率后黑屏
  • debian10.9安装教程
  • php和数据库
  • linux桌面设置界面在哪
  • ireike.exe - ireike是什么进程 有什么作用
  • 深入理解php内核
  • 免税企业所得税的有
  • 股权转让定金怎么做账
  • 非货币性资产交换
  • php内核剖析
  • laravel登录接口
  • 冲减应付账款如何做账
  • vue项目部署到服务器上,页面空白
  • 帮人开票怎么计算税点金额
  • uname命令功能
  • 帝国cms功能
  • BootStrap--selectpicker的使用
  • 进项税额转出都需要开具红字发票吗
  • 银行存钱转账
  • 设备服务费
  • 新会计准则其他收益核算内容
  • 企业选择的短期调整
  • 对于产品开发阶段的评价
  • 印花税缴纳时间点
  • 企业向个人的借款合同
  • 营业外收入月末怎么处理
  • 网上报税有没有时间限制
  • 有限合伙企业协议
  • 公司资产业务
  • 临时设施科目计入什么
  • 发行股票手续费计入哪里
  • 待认证进项税额和待抵扣进项税额的区别
  • 协会会费怎么入账
  • 港口建设费收费标准
  • SQLserver导入Excel文件到表
  • windows xp删除所有数据
  • mac内存管理在哪里
  • 苹果mac电脑不会关机
  • macbook如何登录微信
  • mkcool是什么文件
  • window8设置ip
  • unity摇杆
  • 用jQuery.ajaxSetup实现对请求和响应数据的过滤
  • linux oracle数据库登录
  • Linux数据库备份的命令
  • unity获取父节点
  • python 控制台交互
  • zigzag源码
  • JQuery给select添加/删除节点的实现代码
  • Activity与Theme
  • javascript好学吗?
  • 陕西国税电子税务局app
  • 智能财税代理实务实训过程
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设