sql-server - 在全文索引重新填充期间是否可以截断 LOG 文件?
问题描述
一个简单的问题...
作为数据库维护例程的一部分,我们偶尔会完全删除和重建全文索引及其基础聚集索引。
这工作得很好,没有任何问题,除了一件事情:在我们重新创建聚集索引之后,我们执行一个语句来重新创建全文索引:
CREATE FULLTEXT INDEX ON [dbo].[<ourtablename>] (<thefieldswewanttoindex>) KEY INDEX [<theclusteredindex>] ON [<thefulltextcatalog>] WITH CHANGE_TRACKING AUTO
同样,这工作得很好,需要几个小时才能完成,这也很好,因为这是在停机期间完成的,不会影响任何用户。但是有一件小事让我很恼火。当全文索引重新填充时,即:
SELECT FULLTEXTCATALOGPROPERTY('<thefulltextcatalog>', 'Populatestatus')
返回1,LOG文件不断增长,最大到110GB。之后我们只是截断它,用户在第二天继续。
所以问题是: 在 Populatestatus 返回 1 时偶尔截断 LOG 文件是否可以,以便我们将 LOG 文件大小保持在可管理的水平?
解决方案
这样做完全没问题,但是这可能不会释放用于重建索引的日志。换句话说,在填充索引之前,截断日志可能不会减小其大小。
这么大的数据量删除再重建总是会消耗IO和日志资源。如果您尝试避免删除/重新填充聚簇表,这将显着减少日志增长。在这种情况下,您也不需要重新创建全文索引。
推荐阅读
- google-bigquery - 使用nodejs从avro上传到bigquery中删除root
- marklogic - 在 MarkLogic 中进行实时摄取的不同方法是什么
- python - tkinter notebook python - 单击左事件
- json - 如何从添加到 Swift 控制台应用程序的包中读取 JSON 文件
- next.js - Storybook Navbar 组件突破 useRouter()
- laravel - 如何修复 npm ERR!Laravel 项目中的代码 1
- python - 我怎样才能停止模型训练并恢复它?
- javascript - Adonis JS v5 关系缺少模型属性
- opencv - 如何仅在计算机视觉中的另一个检测到的对象(y)内检测对象(x)?
- database - 在 ASP.NET Core 中的 View Data 中显示所选城市