Sqlite在.NET下的使用和Sqlite資料庫清理

來源:互聯網
上載者:User

標籤:design   his   刪除   blog   連結   nload   attach   doc   nts   

原文: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!

 

 

Sqlite在.NET下的使用和Sqlite資料庫清理

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.