简介:Lotus Notes/Domino 开发人员谁都不想听到如下评论:“这个应用程序很棒,但是太慢了!” ,在这个由两部分组成的文章系列中,我们将解释如何构建对性能进行了优化的 Notes/Domino 应用程序 ,从而避免诸如此类的尴尬局面。
我们知道一个很棒的应用程序最大的缺憾之一是,速度太慢以至于无法使用 —— 由于其非常慢的响 应速度而使得用户的大量时间和辛苦工作都被浪费了。在过去的 12 年里,我们花费了大量的时间研究和 测试 Domino 应用程序及其功能,以了解如何优化性能以及哪些特性最适合用来优化性能。我们在 20 世 纪 90 年代早期开始支持和开发 Domino 应用程序,并且很快就被应用程序的性能所吸引。许多我们当时 (今天仍然是这样)认为是服务器的性能问题实际上都是应用程序的性能问题。因此解决方案经常是在应 用程序内部找到的,而不是在服务器上找到的。
在这个由两部分组成的文章系列中,我们将与您分享一些我们知道的东西。这个文章系列覆盖了应用 程序性能的三个方面:数据库属性、文档集合以及视图。在第 1 部分中,我们将探讨数据库属性和文档 集合。在所有情况下,我们都会指出最重要的地方并提供简洁的现实示例,以帮助您理解如何优化自己的 应用程序。我们将使用来自许多应用程序的示例;在这些示例中至少能够找到一个与您现在所要做的或者 是所使用的类似。我们的目标是帮助您构建既好又快的应用程序。
本文假设您是一位经验丰富的 Notes/Domino 应用程序开发人员。
数据库属性
有一些与应用程序性能相关的数据库属性。
不维护未读标记
如果选中该复选框,那么不管对每个视图的设置如何,在应用程序中都不会跟踪未读标记。我们使用 client_clock 来跟踪打开一个数据库所花费的时间,我们的发现令人吃惊。对于一个大型应用程序(比 如说带有 200,000 个文档的 20 GB 的应用程序),在不使用未读标记时,Notes 客户机只需大约五秒钟 的时间就能够打开数据库(包括网络传输)。如果打开了未读标记,必须多等六秒或更多的时间。这些多 出来的时间是花费在 GET_UNREAD_NOTE_TABLE 和 RCV_UNREAD 上的。如果关闭了未读标记,就不会进行 这些调用。
在一个小一些的数据库(小于 1 GB)中,关闭未读标记可以节省大约 0.5 秒钟的时间。当然,与大 型数据库相比,不管是否打开未读标记,打开小数据库的时间都要更快一些。所以在将应用程序投入运行 前,应该考虑是否需要使用未读标记特性。