由于遗留设计决策,我们使用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。