使用linqdb查詢sqlite資料庫資料,不管是大資料還是少量的資料,感覺特別耗時,尤其是首次查詢
乙個含有2.7萬條資料的資料表
首次查詢:
二次查詢:
我們來嘗試優化一下,使用sql語句查詢
sql連線字串:
1var 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的封...