2014-09-22 159 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支配的大型数据库,效果可能会非常小。

当您编写需要从数据库读取千兆字节数据的查询时,这些查询总是很慢。