我已在 SQL 2008 服务器上成功设置了 FILESTREAM;但是我注意到,即使我删除了包含 FILESTREAM 数据的行,物理数据文件似乎也没有被删除....
我已在 SQL 2008 服务器上成功设置了 FILESTREAM;但是我注意到,即使我删除了包含 FILESTREAM 数据的行,物理数据文件似乎也没有被删除。
我所说的物理文件是指 SQLServer 托管目录中以唯一标识符作为文件名的文件,而不是添加到数据库中的原始文件。
有人知道 SQLServer 最终是否会删除该文件吗?如果从数据库中删除了大量大文件,我希望能够快速回收空间,仅此而已。
首先,您必须 为 垃圾收集器 检查点 。删除行后,您可以运行此代码来消除所有不属于任何行的文件。
USE [DataBaseName] GO -- Create a checkpoint on current database CHECKPOINT GO -- Execute Garbage Collector after a checkpoint created EXEC sp_filestream_force_garbage_collection 'DataBaseName' GO