我的系统上有非常大的数据库(.db)文件(> 20 GB) 它拥有aprrox 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 大小?
答案 0 :(得分:1)
您可以随时使用PRAGMA cache_size更改缓存大小。 但是,这不会产生太大影响,因为操作系统将使用任何可用内存将数据库文件保存在文件缓存中。
必须在实际创建数据库文件之前设置页面大小。 增加页面大小可能有所帮助,但是对于运行时由I / O支配的大型数据库,效果可能非常小。
当您编写需要从数据库中读取千兆字节数据的查询时,这些查询将始终很慢。
答案 1 :(得分:0)
我明白使用大量数据库和SQLLite是有限的,所以我用Oracle数据库迁移了我的数据库。