2014-09-22 158 views
0

我有非常大的數據庫(.db的)我的系統(> 20 GB) 持有aprrox 500表上的文件和一些表有十億條記錄。SQLite數據庫連接字符串

這個數據庫我打算使用C#程序。

我已準備好對這些數據庫執行查詢並提取記錄。我也寫了INDEXING查詢來執行這個數據庫。

以下是連接數據庫的第一步。

string fullPath = "D:\\Example.db" 

      using (SQLiteConnection con = new SQLiteConnection("Data Source=" + fullPath + ";Version=3;Count Changes=off;Journal Mode=off;Pooling=true;Cache Size=10000;Page Size=4096;Synchronous=off")) 
      { 
       con.Open(); 
       .... 
       .... 
} 
  • 我還可以能夠增加高速緩存的大小?
  • 我還可以增加頁面大小嗎?
  • 我是否應該缺少其他參數?

我正在循環中執行查詢所以我可以通過一些命令來發布CACHE大小的嗎?

回答

0

我明白,它是限制使用大量的數據庫與SQLLite,所以我已經遷移我的數據庫與Oracle數據庫。

1

您可以隨時用PRAGMA cache_size更改緩存大小。 但是,這不會有太大的影響,因爲操作系統將使用任何可用內存來將數據庫文件保留在文件緩存中。

在實際創建數據庫文件之前,必須設置頁面大小。 增加頁面大小可能會有幫助,但對於運行時由I/O支配的大型數據庫,效果可能會非常小。

當您編寫需要從數據庫讀取千兆字節數據的查詢時,這些查詢總是很慢。