我一直在分析一个实现SQLite数据库的项目。数据文件(.dat)是177MB,我所做的只是只读查询(少数选择)。
在我的开发机器(SSD)上,查询协作运行大约0.1秒。虽然当我在生产和测试环境中运行相同的查询时,完全相同的调用需要7秒钟。
我想知道哪些环境因素会如此剧烈地影响这一点,SSD和硬盘之间的区别肯定不会那么慢?它不是防病毒软件,但是我可以在.dat文件本身上放置任何东西吗?我想知道过去是否有人有这个问题。这令人沮丧,因为它在我的机器上本地执行如此高效,但在部署时却如此不同。
另外需要注意的是,查询比其他查询更复杂,但服务器上的性能时间并没有增加其复杂性,似乎只是为每个调用添加一个静态时间段。例如:
|---------------------|------------------|-------------------|
| Query | Local Elapsed | Prod/Test Elapsed |
|---------------------|------------------|-------------------|
| 1 | 00:00:00.1135747 | 00:00:01.3858359 |
|---------------------|------------------|-------------------|
| 2 | 00:00:00.0624730 | 00:00:01.3923305 |
|---------------------|------------------|-------------------|
正如您所看到的,通常几乎是运行时间的两倍,在其他环境中不会加倍。作为参考,这是一个.net核心应用程序,使用System.Data.DataTable
以c#编写。