如何提高笔记数据库的性能?

时间:2013-08-29 15:16:12

标签: performance lotus-notes lotus-domino lotusscript

我有一个莲花笔记数据库,其中有近34,000个文档,其中一组视图差不多200个。因此,性能对我来说是一个主要问题。

我尝试了几个技巧,例如:

  
      
  1. 使用Ctrl + Shift + F9
  2. 在服务器上创建索引   
  3. 我在数据库上运行一个预定代理,每隔3小时运行一次,代码很简单,刷新每个视图
  4.   
Sub Initialize
    Dim session As New NotesSession
    Dim db As NotesDatabase
    Dim view As NotesView

    Set db = session.currentdatabase
    ForAll v In db.views
        v.refresh
    End ForAll
End Sub

但他们似乎没有那么好用吗?任何提高本地和服务器副本性能的想法或建议都会很棒吗?

另外为了让您知道我有100个用户以不同的间隔进行更新,每天可能有10-20个用户。

3 个答案:

答案 0 :(得分:8)

表现不佳有很多可能的原因,我们可以提出很多建议。例如,我们可以谈论磁盘碎片。我们可以讨论您拥有的Domino版本(您没有提及)和可能的升级。我们可以讨论你的服务器的i / o子系统......

但第一个也是最明显的问题是你有太多观点 !!事实上,对于Notes数据库来说,30,000个文档根本不合理,即使每天都有大量新的和编辑过的文档。在相当基本的硬件上正确设计和维护的数据库,这应该执行得很好。我已经看到拥有100,000或更多文档的数据库,每天有成千上万的新文档和已删除的文档都可以正常运行,但是我也看到它们表现不佳,例如,删除存根没有经常被清除。

但我已经离题了....你有太多的看法,简单明了。这就是你必须开始的地方。无论你做什么,我都可以保证,与具有20个视图的数据库相比,具有200个视图的数据库将表现不佳。由于设计不佳,你的一些观点可能确实是问题,所以你需要看看它们中的每一个;但即使在你看到设计之前,你也要问:为什么这个观点在这里?谁需要它?如果我删除它,有人会注意到吗?是否有不同的观点或更好的方式来满足这种观点遇到的任何需求?

答案 1 :(得分:3)

要检查的几件事情:

确保您的视图选择公式和列公式都不包含任何日期时间函数,如@now

在“高级”选项卡集上检查视图属性:  刷新:首次使用后自动  丢弃:如果不活动45天

删除更新代理,服务器应该能够处理索引。

答案 2 :(得分:3)

首先定义“性能”。你在谈论开放观点吗?或者当你运行代码时它很慢? 正如里奇在答案中已经说过的那样,你的观点太多了。 30,000个文档什么都没有,我有数百万个文档的数据库和大约100个视图,它们工作正常。 我怀疑你可能有一个设计糟糕的应用程序。也许您在视图中使用日期/时间函数,GetNthDocument(),在表单上使用多个@DbLookup等?

首先阅读Andre Guirard撰写的这份白皮书:http://www.ibm.com/developerworks/lotus/documentation/d-ls-notesperformance/

您还可以在此处获得信息:http://www-10.lotus.com/ldd/ddwiki.nsf/xpDocViewer.xsp?lookupName=IBM+Redbooks%3A+Lotus+Domino+Development+Best+Practices#action=openDocument&res_title=6.0_Performance_considerations&content=pdcontent

在这里:http://www-01.ibm.com/support/docview.wss?uid=swg27008849