位置: 编程技术 - 正文

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

  • 土地增值税要计增值税吗
  • 风险纳税人是指个人还是单位
  • 个人生产经营所得税计算器
  • 一般纳税人废业怎么办
  • 异地施工需要办理什么手续
  • 应收账款管理应该从哪些方面进行
  • 小规模餐饮业会计核算
  • 营改增后税目税率表
  • 家电以旧换新怎么做账务处理
  • 农产品发票有抵税吗
  • 营改增后增值税暂行条例实施细则
  • 一年过去了,特朗普减税效果如何?
  • 公司出租商铺要交哪些税
  • 啥叫规上工业企业
  • 接受应税劳务的会计分录怎么写
  • 企业职工教育经费
  • mac系列电脑
  • PHP:Memcached::deleteMultiByKey()的用法_Memcached类
  • hook execution failed
  • php自定义字段
  • 出口货物视同内销征税的会计核算
  • vue的安装命令
  • 广告宣传费的税收筹划
  • mapbox wms
  • php判断useragent
  • 浅析人物形象的论文开题报告
  • resnet+unet
  • 增值税已认证抵扣
  • php qrcode生成二维码
  • 微信小程序项目中的 ______ 文件是全局配置文件
  • docker 容器
  • 微信红包的随机性
  • 增值税普通发票查询真伪
  • 没开票的工程可以结转成本吗
  • 企业购进商品支付货款时,实际发生现金折扣,应计入
  • 购入固定资产预付款怎么做账
  • 会计单据可以用什么代替
  • sqlyog配置
  • 工业企业库存商品的初始入账成本
  • mysql删除表中某个字段
  • 高铁票丢失了可以补打吗
  • 向投资者支付的股息
  • 个体户是怎么交公积金的
  • 公司班车费用如何入账
  • 出口退税申报需要手动录入什么信息呢
  • 购买职工福利
  • 预缴的所得税怎么申请退税
  • 在建工程中发生的费用
  • 研发费用的会计处理对公司经营成果的影响
  • 应交所得税科目期末是不是应该没有余额
  • 收到保险公司保险费会计分录
  • 根据银行回单做凭证
  • 现代服务业包括哪些
  • 建账时应注意的事项有
  • 如何把数据导入mysql中
  • MySQL存储过程与触发器
  • sql报无效字符
  • WP8版Creative Camera:相机详情介绍(图文)
  • vista正版破解
  • 搜索功能使用方法
  • Win7旗舰版系统安装
  • linux w
  • windows的服务怎么打开
  • 怎么用macbook
  • linux0.12内核代码多少行
  • scheduler.exe - scheduler是什么进程 有何作用
  • win7系统怎么设置锁屏密码怎么设置
  • win8的系统
  • linuxwho
  • python accdb
  • 有道词典encountered an improper argument
  • opengl编译
  • 使用node写接口
  • jquery函数大全
  • android程序崩溃会被重启
  • 手游炫酷
  • 唐山宴订餐电话是多少
  • 北京市国家税务网
  • 为构建和谐企业
  • 美国海外公司每年利润
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设