資料庫查詢效能 LinqDB vs Sql查詢

2021-10-06 04:55:52 字數 2541 閱讀 8624

使用linqdb查詢sqlite資料庫資料,不管是大資料還是少量的資料,感覺特別耗時,尤其是首次查詢

乙個含有2.7萬條資料的資料表

首次查詢:

二次查詢:

我們來嘗試優化一下,使用sql語句查詢

sql連線字串:

1

var dbrelativepath = "

dbs\\englishdict.db3";

2var connectionstring = "

data source=

" + system.environment.currentdirectory + "

\\" + dbrelativepath + "

;version=3;

";

sql查詢,返回dataset集合

1

///2

///獲得資料列表

3///

4public dataset getlist(string strwhere, string

tablename)5

");9if (strwhere.trim() != "")10

13return

query(strsql.tostring());14}

15///

16///

執行查詢語句,返回dataset

17///

18///

查詢語句

19///

dataset

20public dataset query(string

sqlstring)

2131

catch

(system.data.sqlite.sqliteexception ex)

3235

return

ds;36

}37 }

1. 使用反射,對映到entity資料類中

見 資料庫查詢 - datatable轉entity型別資料

1

///2

///獲得資料列表

3///

4public listgetcoursewares()511

///12

///獲得資料列表

13///

14public listgetcoursewares(string

querytext)

15%'";

17 dataset ds = getlist(querystring, "

courseware");

18//

通過對映,dataset轉實體類

19var modellist = datatableconverter.tolist(ds.tables[0

]);20

return

modellist;

21 }

我們來看下查詢資料的效能,還是同一資料表

首次查詢:

二次查詢:

此方案耗時較多,應該是反射傷效能,放棄

2. 直接給資料類欄位屬性賦值

datatable轉資料類:

1

///2

///將datatable轉換成entity列表

3///

4///

5///

6public listconvertdttomodellist(datatable dt)713

return

list;14}

15///

16///

得到乙個物件實體

17///

18public

coursewareinfo datarowtomodel(datarow row)

1927

return

model;

28 }

獲取資料列表:

1

///2

///獲得資料列表

3///

4public listgetcoursewares()511

///12

///獲得資料列表

13///

14public listgetcoursewares(string

querytext)

15%'";

17 dataset ds = getlist(querystring, "

courseware");

18//

通過字段賦值,dataset轉實體類

19var modellist = convertdttomodellist(ds.tables[0

]);20

return

modellist;

21 }

來看下查詢資料的效能,還是同一資料表

首次查詢:

二次查詢:

此方案,資料查詢效能很明顯的改善。

總結:相對lindb,使用sql查詢方案查詢資料效能會好很多

資料庫SQL效能查詢

作為乙個開發 測試人員,或多或少都得和資料庫打交道,而對資料庫的操作歸根到底都是sql語句,所有操作到最後都是運算元據,那麼對sql效能的掌控又成了我們工作中一件非常重要的工作。下面簡單介紹下一些檢視oracle效能的一些實用方法 1 查詢每台機器的連線數 select t.machine,coun...

oracle資料庫效能查詢

作為乙個開發 測試人員 或多或少都得和資料庫打交道,而對資料庫的操作歸根到底都是 sql語句,所有 操作到最後都是 運算元據 那麼對 sql效能 的掌控又成了我們 工作中一件非常重要的工作。下面簡單介紹下 一些檢視oracle 效能的一些實用方法 1 查詢每台機器的連線數 select t.mach...

提公升資料庫查詢的效能

資料庫查詢效能的提公升也是涉及到開發中的各個階段,在開發中選用正確的查詢方法無疑是最基礎也最簡單的。14.3.3.1 sql語句的優化 使用正確的sql語句可以在很大程度上提高系統的查詢效能。獲得同樣資料而採用不同方式的sql語句在效能上的差距可能是十分巨大的。由於hibernate是對jdbc的封...