• SqlLite提高批量插入速度的方法及原因分析


    (1)-SQLite忽略大小写查询
    大部分数据库在进行字符串比较时,对大小写是不敏感的。但是SQLite却是大小写敏感的。如果想让SQLite忽略大小写,方法如下:
    方法一:使用大小写转换函数LOWER、UPPER
    SELECT * FROM User WHERE LOWER(UserName) = ‘user1′;
    方法二:在进行比较时强制声明不区分大小写
    SELECT * FROM User WHERE UserName = ‘user1′ COLLATE NOCASE;
    方法三:创建表时声明该列不区分大小写
    CREATE TABLE User (UserName NVARCHAR(20) COLLATE NOCASE);
    如果在任何情况下都不需要对大小写敏感,就使用方法三;如果只是少量查询对大小写不敏感,可以用方法二。而方法一用到了函数,可能会影响查询速度,尽量不用

    (2)Pda当时是为什么要先取所有id过来,再下载Asset所有数据?
      因为,数值在传输的时候有大小限制,多了就报错,这个是WebService用的是HTTP协议,数据都是通过文本传输的,就是XML。大量的文本会导致挂掉的。
      所以,必须先取到要下载的数据的ID,再一个一个去获取。
      我们也可以配置每次传输的量,但是那样有风险,比较难把握配置多少不报错。
      非常难控制。
    (3)设置最大的传输数据量。并且用事务的方式一次性处理所有的SQLite操作。SQLite默认是将每次数据库操作都当作一次事务。每次操作都是开启事务执行SQL关闭事务,肯定费时。
    (4)sqlite数据库每一次数据库增删改查都会开启一次事务,所以针对多条插入情况,要在循环外面显示调用事务来提高程序速度。

  • 相关阅读:
    .NetCore教程之 EFCore连接Mysql DBFirst模式
    .Net EF6+Mysql 环境搭建
    SQL实用
    前端文章分享
    mac怎样运行vue项目
    Cadence 操作技巧总结3:拼板技巧总结
    TCL语言控制Modelsim仿真 2
    TCL语言控制Modelsim仿真 1
    Cadence 操作技巧总结2:模块化布局
    Cadence 操作技巧总结1:测试点的生成1
  • 原文地址:https://www.cnblogs.com/turnip/p/10695800.html
Copyright © 2020-2023  润新知