当文件大小增加时,是否可以强制Sqlite保留空间?

时间:2011-11-22 22:12:31

标签: sqlite

由于遗留设计决策,我们使用SqLite而不是文件共享。 我们有一个中央服务,可以将配置写入远程计算机上的SqLite.dbs。这些机器将数据库视为只读,因此我们避免了大多数同步问题。其中一些机器通过非常慢的连接访问。 我正在努力提高此配置过程的性能,我似乎遇到了导致文件大小增加的插入瓶颈。

在我们最慢的连接上,我们从大约100毫秒跳到10秒甚至一分半钟(取决于其他网络流量):

2011-11-22 15:13:07,766 --insert uses free space
2011-11-22 15:13:07,844 --insert uses free space
2011-11-22 15:13:07,922 --insert uses free space
2011-11-22 15:13:08,000 --insert uses free space
2011-11-22 15:13:51,035 --free space gone, file size grows to fit
2011-11-22 15:14:16,298 --free space gone, file size grows to fit
2011-11-22 15:14:38,876 --free space gone, file size grows to fit

我知道在SqlServer中可以设置一个autogrowth值来保持一定的填充量。 是否有可能将这种行为从成长适应变为成长保留?

如果重要,配置服务是用C#编写的。数据库访问是通过NHibernate完成的(包含在由我们留下这些遗产的人编写的层中)并引用System.Data.Sqlite。

1 个答案:

答案 0 :(得分:1)

让人惊讶。我唯一看到的是将page_size设置为可能(和允许)最大(或最可能)的值。上限为2 ^ 16字节。