视图索引总是在重建

View Index is always being rebuilt

最近,我遇到了一个问题,我的视图索引一直在重建,用户对这个特定视图有很多问题。

我认为这是由于我的选择公式以及我的一个列公式中的 @Date。这样,每经过一秒,选择公式就会不同。 所以我想,因为我的公式中不需要 hours/minutes/seconds,所以我会使用 @Today。这在 2-3 天内运行良好,之后再次出现同样的问题。

既然问题又回来了,我不太确定这是否会导致问题。当这个特定的视图打开时,我在笔记中打开的每个选项卡中都有问题,而不仅仅是这个特定的数据库。

这是 common/known 问题吗?我该怎么做才能避免这个问题?

是的,这是一个常见问题,自 20 多年前 Notes 的早期阶段就广为人知。

@Date 本身不是问题。 @Now 和@Today 都是问题。

使用@TextToTime("Today") 是一种很早就发现的流行解决方法。这对索引器隐藏了问题,因此服务器无法意识到视图已过时。但是,它并没有解决根本问题,即视图正在尝试做一些视图根本不打算做的事情。视图旨在是静态的,仅在文档更改时才需要更新。将时间引入选择或列公式会使它们变得动态,这会扼杀该假设并且是性能问题的主要来源。使用此解决方法需要每晚完全重建视图。您可以通过为特定数据库设置 view index options to "Manual", and setting up a program document to run an updall command with the -T option 并每晚查看一次来做到这一点。请注意,如果您的用户分布在不同的时区,您将不得不选择一个特定的时间作为标准,如果您的服务器分布在不同的时区,那么您将会很有趣地弄清楚如何让它们全部出现始终在视图中显示相同的文档 - 但几乎所有解决问题的方法都是如此。

请参阅此 IBM Technote for a description of several other options that people have used over the years, with their pros and cons. Also see this article by Andre Guirard,其中详细介绍了 date/time 个问题。

我要补充一点,他们在 Technote 中描述的 agent-and-folder 解决方案通常是我的首选方法,但它确实有一个他们没有提到的额外缺点:它最终会导致一个模糊的情况服务器抛出错误 "Folder is larger than supported"。该错误实际上与文档中文件夹的大小无关;它指的是随着时间的推移大量文档移入和移出文件夹时发生的内部结构碎片。它只能通过删除和 re-creating 文件夹来修复,您可以在代理代码中执行此操作。我相信这个问题可能会在较新版本的 Domino 中得到修复,但在 Notes 6 和 7 时间框架中它让我很伤心。