【问题标题】:SQLite database connection stringSQLite 数据库连接字符串
【发布时间】:2014-09-22 06:10:38
【问题描述】:

我的系统上有非常大的数据库 (.db) 文件 (>20 GB) 它拥有大约 500 个表,有些表有 十亿条记录。

这个数据库我将被 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 大小吗?

【问题讨论】:

    标签: c# sql database sqlite


    【解决方案1】:

    您可以随时使用PRAGMA cache_size 更改缓存大小。 但是,这不会产生太大影响,因为操作系统将使用任何空闲内存将数据库文件保存在文件缓存中。

    必须在实际创建数据库文件之前设置页面大小。 增加页面大小可能会有所帮助,但对于运行时由 I/O 控制的大型数据库而言,效果可能非常小。

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

    【讨论】:

      【解决方案2】:

      我明白 SQLLite 使用大容量数据库的局限性,所以我已经用 Oracle 数据库迁移了我的数据库。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-03-18
        相关资源
        最近更新 更多