Sqlite在.NET下的使用和Sqlite數據庫清理


Sqlite 是一款輕量級的關系型數據庫,她的好處我就不詳細道來了。本文的初衷是為.net平台的使用者提供幫助。

Sqlite有專門為VS2010開發的程序包,大家可以到System.Data.SQLite Download Page 下去下載,注意是:This is the only setup package that is capable of installing the design-time components for Visual Studio 2010. 

安裝后,在VS2010中新建數數庫鏈接就會看到有System.Data.SQLite的鏈接,在這里你可以創建和打開Sqlite數據庫:

 

在sqlite鏈接中,你可以為你的sqlite數據庫設置密碼和其他配置。確定后,會生成一個沒有擴展名的數據文件。

大家一般都了解到,sqlite數據文件是.db或.sqlite或其他擴展結尾,而用VS2010創建的sqlite數據庫文件是沒有擴展名的,並且其加密能力特別高,一般的sqlite程序在沒密碼的情況下,很難打開。

用VS2010創建sqlite數據庫后,就可以像操作sql server那樣操作sqlite,如:建表,查詢等都非常方便,感興趣的可以嘗試下,這里就不一一截圖說明了。

在項目,需要添加sqlite引用:System.Data.SQLite.dll和System.Data.SQLite.Linq.dll

Sqlite數據庫清理

最后,說明下SQLite的一個不好的地方,當數據庫中的一個或多個數據表存在大量的插入、更新和刪除等操作時,將會有大量的磁盤空間被已刪除的數據所占用,在沒有執行VACUUM命令之前,SQLite並沒有將它們歸還於操作系統。

由於該類數據表中的數據存儲非常分散,因此在查詢時,無法得到更好的批量IO讀取效果,從而影響了查詢效率。 

在SQLite中,僅支持清理當前連接中的主數據庫,而不能清理其它Attached數據庫。VACUUM命令在完成數據清理時采用了和PostgreSQL相同的策略,即創建一個和當前數據庫文件相同大小的新數據庫文件,之后再將該數據庫文件中的數據有組織的導入到新文件中,其中已經刪除的數據塊將不會被導入,在完成導入后,收縮新數據庫文件的尺寸到適當的大小。可以使用VACUUM的方法對sqlite數據庫進行清理:

SQLiteConnection sqlconn = new SQLiteConnection(@"Data Source=C:\cache;Version=3;Password=123");
                sqlconn.Open();
                SQLiteCommand sqlCom = sqlconn.CreateCommand();
                sqlCom.CommandText = "VACUUM";
                sqlCom.ExecuteNonQuery();

希望本文對你有所幫助,Thank you!

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM