1. 程式人生 > >Sqlite 快速插入資料到本地表中

Sqlite 快速插入資料到本地表中

用原始Insert方法太慢,網上找到了
https://www.cnblogs.com/yisen-code/p/6897524.html

思路是:

開啟事務,開啟預處理,然後把SQL用引數傳入具體值來快速寫入資料,本地測試,2W條寫入本地不到1秒。

分享給大家

        public void Quick_HG_Insert(DataTable dt)
        {

            try
            {
                var conn = GetConnection();
                using (var dbTrans = conn.BeginTransaction())
                {
                    
var cmd = new SQLiteCommand(); cmd.Connection = conn; cmd.Prepare();//開啟預處理 cmd.CommandText = "Insert Into BoxScanRank(BoxScanNO,BoxCount,PONO,Rank) Values(@BoxScanNO,@BoxCount,@PONO,@Rank)"; var sp = new SQLiteParameter[4
]; foreach (DataRow row in dt.Rows) { sp[0] = new SQLiteParameter("@BoxScanNO", row["BoxScanNO"]); sp[1] = new SQLiteParameter("@BoxCount", row["BoxCount"]); sp[2] = new SQLiteParameter("
@PONO", row["PONO"]); sp[3] = new SQLiteParameter("@Rank", row["Rank"]); cmd.Parameters.AddRange(sp); cmd.ExecuteNonQuery(); } dbTrans.Commit(); } } catch (Exception ex) { throw ex; } }

相關推薦

Sqlite 快速插入資料地表

用原始Insert方法太慢,網上找到了https://www.cnblogs.com/yisen-code/p/6897524.html 思路是: 開啟事務,開啟預處理,然後把SQL用引數傳入具體值來快速寫入資料,本地測試,2W條寫入本地不到1秒。 分享給大家 public voi

mysql與redis快速插入資料

1.多執行緒的使用 java最優效能執行緒數與cpu執行緒數有關,cpu每個執行緒同時只能做一件事,但java程式執行時間分為計算時間與非計算時間如IO讀取等操作耗時, 開啟2-3倍的cpu執行緒數的執行緒一般情況下是追求效能優先的最優選擇,因為過多的執行緒數會浪費一些資源在cpu執行緒

帶圖片的word快速插入到部落格

最近在部落格中寫文章的時候,最煩的就是將word文件整體傳到部落格中,不能一次把圖片貼上上去,再次去新增圖片的時候要截圖還要找對位置才可上傳,偶爾的機會在網上看到有人這麼處理,挺好用的,這裡我也做個備註。 第一步:準備檔案: 1、我們要開啟我們的圖文並茂的word文件,開啟方法當然是word文件

批處理快速插入資料

try { String sql = "INSERT INTO USER (id,name) VALUES(?,?)"; Connection conn = null; PreparedStatement pstm =null; conn=CommonUtils.getCon

Hibernate插入資料到資料庫時讓欄位預設值生效

資料庫中一個欄位的預設值設為0,當用hibernate插入資料時,沒有對該欄位進行操作,結果該欄位居然不是0,而是空。後來google了一下,發現應該在.hbm.xml檔案中新增一些引數定義(示例中的紅色部分),具體如下: <hibernate-mapping> 

SQL Server 2012快速插入批量資料的示例及疑惑

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

使用JDBC在MySQL資料庫快速批量插入資料

使用JDBC連線MySQL資料庫進行資料插入的時候,特別是大批量資料連續插入(10W+),如何提高效率呢? 在JDBC程式設計介面中Statement 有兩個方法特別值得注意: void addBatch() throws SQLException Adds a set

postgreSQL資料庫 向表快速插入1000000條資料

不用建立函式,直接向表中快速插入1000000條資料create table tbl_test (id int, info text, c_time timestamp);insert into tbl_test select generate_series(1,100000

在 SQL 快速 批量 插入資料的方法

方法1:逐條執行,速度慢。 INSERT INTO testimport (name, message) VALUES ('testname', 'jfksdfkdsfjksadljfkdsfjsdlafjdaslkfjasfd'); INSERT INTO testimport (name, me

sqlite學習筆記9:C語言使用sqlite插入數據

name article void num mes cut cpp content int 前面創建了一張表,如今給他插入一些數據。插入數據跟創建表差點兒相同,不過SQL語言不一樣而已,完整代碼例如以下: #include <stdio.h> #inclu

Excel靈活運用運算(乘)快速將文格式批量改為數字格式

都是 fff oss blog ado 解決 ext term 數據類型 我們在使用excel過程中,在導入數據的時候,很多數據都是以文本形式存在的,可能不方便參與計算或設置數據類型,此時可以靈活運用excel運算(乘)快速將文本格式改為數字格式。【常見問題】如何把一列文本

Python3 tkinter基礎 Text image 文插入圖片

rules height 意思 wxwidgets .org tro import logs details ? python : 3.7.0 OS : Ubuntu 18.04.

通過資料庫批量向kettle插入資料,建立trans和job的模板(按照不同的要求需要自行調整)

import psycopg2 # 用來操作資料庫的類 class GPCommand(object): # 類的初始化 def __init__(self): self.hostname = 'XXX.XX.X.XX' self.username

使用Python-elasticsearch-bulk批量快速向elasticsearch插入資料

最近遇到一個批量向elasticsearch插入資料低效率的問題,在網上找到如下解決方案: https://segmentfault.com/q/1010000005027014 對,就是使用elasticsearch內建的bulk API進行批量的插入操作。 同樣

mybatis 在oracle資料庫插入資料時獲取自增ID sequence序列

在oracle中sequence就是序號,每次取的時候它會自動增加。sequence與表沒有關係。 Create Sequence 首先要有CREATE SEQUENCE或者CREATE ANY SEQUENCE許可權。 建立語句如下: CREATE SEQUEN

Mybatis的mapper.xml檔案插入資料返回自增主鍵

使用MyBatis往MySQL資料庫中插入一條記錄後,返回該條記錄的自增主鍵值。Mapper檔案應該怎麼寫呢? Mybatis的Mapper的標籤中有一個屬性,我們一起來看看: useGenerateKeys這個屬性,意思就是使用自增。我們需要將這個欄位設定為 true 。 同時,還需

向資料庫插入日期時間datetime型別資料,資料庫只有日期沒有時分秒

  java.util.Date是不能直接插入資料庫中的,雖然它包含了日期和時分秒。   java.sql.Date可以直接插入資料庫,但是它只有日期而沒有時間;   java.sql.Time可以直接插入資料庫,但是它只有時間,沒有日期 Java

有自增長主鍵時,插入資料的幾種方法

資料庫的表中有自增長主鍵時(如圖所示),我們該怎麼插入資料呢? 方式一:     當需要插入的資料比較少時,即可以通過一條一條的插入時,我們可以指定該列(id)的值,但是新插入的值不能和已有的值重複,而且必須大於其中最大的一個值 方式二:   

mysql多種插入資料的語句

此為博主(yjclsx)原創文章,如若轉載請標明出處,謝謝! mysql中常用的三種插入資料的語句 insert into表示插入資料,資料庫會檢查主鍵,如果出現重複會報錯;  replace into表示插入替換資料,需求表中有PrimaryKey,或者uniq

shell指令碼向hive動態分割槽插入資料

  set hive.exec.dynamic.partition=true;                     #開啟動態分割槽,預設是falseset hive.exec.dyn