C SQLite執行效率優化結論

2022-02-19 03:59:46 字數 3045 閱讀 9177

一、如要使用sqlite,可以從visual studio中的「程式包管理器控制台」輸入以下命令完成安裝:

pm> install-package system.data.sqlite.core
sqlite則會安裝到專案中,支援32位或64位,如下圖所示:

二、新建乙個sqlite資料庫,名稱命名為test.db,其表名稱及列定義如下:

執行delete命令及收縮資料庫");

run(() =>','')";

command.executenonquery();

}command.executescalar();

}, "[---使用事務---]事務執行insert命令");

list

list1 = run(() =>;

tests.add(t);

}reader.close();

return

tests;

}, "[---不使用事務---]使用executereader方式執行select命令");

datatable table1 = run(() =>,

"[---不使用事務---]使用fill table方式執行select命令");

run(() =>,

"執行delete命令及收縮資料庫");

sqlitetransaction transaction = run(() => connection.begintransaction(), "

開始事務");

run(() =>','')";

command.executenonquery();

}var result =command.executescalar();

}, "[---使用事務---]執行insert命令");

list

list2 = run(() =>;

tests.add(t);

}reader.close();

return

tests;

}, "[---使用事務---]使用executereader方式執行select命令");

datatable table2 = run(() =>,

"[---使用事務---]使用fill table方式執行select命令");

run(() => transaction.commit(), "

提交事務");

run(() => connection.close(), "

關閉連線");

console.readkey();

}public

static

void run(action action,string

description)

: ms");

}public

static t run(funcfunc, string

description)

: ms");

return

result;}}

class

test

public

string name

public

long age }}

程式執行結果如下:

四、根據以上的程式執行結果,可以得出以下結論:

1)sqliteconnection物件初始化、開啟及關閉,其花費時間約為109ms,因此,最好不要頻繁地將該物件初始化、開啟與關閉,這與sql server不一樣,在這裡建議使用單例模式來初始化sqliteconnection物件;

在網上查詢了sqlitehelper幫助類,但很多都是沒執行一次sql語句,都是使用這樣的流程:初始化連線物件->開啟連線物件->執行命令->關閉連線物件,如下的**所示:

public

int executenonquery(string sql, params

sqliteparameter parameters)

affectedrows =command.executenonquery();

} catch (exception)

} }

return

affectedrows;

}

根據以上的結論,如果要求執行時間比較快的話,這樣的編寫**方式實在行不通。

2)使用executereader方式比使用adapter fill table方式快一點點,但這不是絕對的,這取決於編寫的**;

3)無論是執行插入或查詢操作,使用事務比不使用事務快,尤其是在批量插入操作時,減少得時間非常明顯;

比如在不使用事務的情況下插入3000條記錄,執行所花費的時間為17.252s,而使用事務,執行時間只用了0.057s,效果非常明顯,而sql server不存在這樣的問題。

4)不能每次執行一條sql語句前開始事務並在sql語句執行之後提交事務,這樣的執行效率同樣是很慢,最好的情況下,是在開始事務後批量執行sql語句,再提交事務,這樣的效率是最高的。

Ansible之優化提公升執行效率

今天分享一下ansible在工作環境中有那些可以優化的配置 環境介紹 以前在公司工作處理伺服器問題,需要用批量操作都是用shell指令碼編寫的工具,後來發現ansible這個自動化工具,安裝簡單,操作起來很方便,支援多個模組,由python開發基於ssh協議通訊的工具。這裡有個問題就是如果伺服器越來...

Oracle中update執行效率的優化

工作中經常遇到update大表的時候執行效率很低,那麼怎樣才能讓oracle中update資料量比較大的表執行的更快呢?先看個簡單的例子吧 需求是我們要將表intf cms calluser tpye中的lant id更新成cms.serv base msg表中的latn id,關聯條件是intf ...

優化PHP執行效率的40條技巧

1.如果乙個方法能被靜態,那就宣告他為靜態的,速度可提高1 4 2.echo的效率高於print,因為echo沒有返回值,print返回乙個整型 3.在迴圈之前設定迴圈的最大次數,而非在在迴圈中 4.銷毀變數去釋放記憶體,特別是大的陣列 5.避免使用像 get,set,autoload等魔術方法 6...