Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 真空导致磁盘100%运行,这正常吗?我能防止吗?_Windows_Sqlite_Vacuum - Fatal编程技术网

Windows 真空导致磁盘100%运行,这正常吗?我能防止吗?

Windows 真空导致磁盘100%运行,这正常吗?我能防止吗?,windows,sqlite,vacuum,Windows,Sqlite,Vacuum,我目前有一个9Gb的Sqlite3数据库,我有一个“维护”任务,在晚上随机运行到VACUMM数据库(平均每周一次)。数据库位于Windows 10计算机上 一天早上,我看到任务还在运行。正如预期的那样,VACUMM命令使用的磁盘空间量是原来的两倍,但我不希望它运行+2小时并使用100%的磁盘利用率 我的问题是, 对于一个9Gb的数据库,使用100%的磁盘并运行超过2小时是否正常?(数据库不再真正增长) 有没有办法我可以吸尘器数据库,而不在此过程中杀死我的驱动器?(可能是低优先级真空或类似的情况?

我目前有一个9Gb的Sqlite3数据库,我有一个“维护”任务,在晚上随机运行到
VACUMM数据库(平均每周一次)。数据库位于Windows 10计算机上

一天早上,我看到任务还在运行。正如预期的那样,
VACUMM命令使用的磁盘空间量是原来的两倍,但我不希望它运行+2小时并使用100%的磁盘利用率

我的问题是,

对于一个9Gb的数据库,使用100%的磁盘并运行超过2小时是否正常?(数据库不再真正增长)

有没有办法我可以
吸尘器数据库,而不在此过程中杀死我的驱动器?(可能是低优先级真空或类似的情况?)

Nå我不认为så,但我还是希望您将其与手动(非跨国)版本的真空进行对比:

echo ".dump" | sqlite3 old_db.db3 | sqlite3 new_db.db3; rm old_db.db3; mv new_db.db3 old_db.db3;
与适当的真空相比,它的性能如何?在100%cpu下仍然超过2小时?如果这个性能明显更好,我想这可能是某个地方的sqlite3真空性能缺陷

我有没有办法抽真空;在这个过程中,数据库不会杀死我的驱动器吗?(可能是低优先级真空或类似的情况?)

嗯。。但是它会更慢,显然,它应该在非常低的io优先级和非常低的cpu优先级下工作和运行:

echo "VACUUM;" | ionice -c 3 nice -n 19 sqlite3 db.db3
您可以尝试使用而不是
VACUUM
,然后删除原始数据库文件并重命名新创建的数据库文件。这将消除一半的磁盘抖动

另外,您可以考虑不使用<代码>真空>代码>。如您所说,如果db的大小已经稳定下来,那么几个空页面就不太值得关注了。您可以先将其缩短为每月一次,而不是每周一次,然后看看您是否注意到查询性能的差异。很可能你不会

echo "VACUUM;" | ionice -c 3 nice -n 19 sqlite3 db.db3