2013-08-29 6 views
0

У меня есть база данных нот лотоса, в которой содержится почти 34 000 документов, с кучей просмотров почти 200. Таким образом, производительность для меня - главная проблема.Как улучшить производительность базы данных заметок?

Я попробовал пару трюков, таких как:

  1. Создание индексов на сервере с помощью Ctrl + Shift + F9
  2. Я бегу по расписанию агент в базе данных, которая проходит каждые 3 часа код просто обновить каждый вид
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 пользователей в день.

+0

Зачем вам нужно обновить 200 просмотры каждые 3 часа? –

+0

Итак, когда пользователи делают обновления документов, эти представления требуют времени, чтобы открыть ... так что мой план состоял в том, чтобы обновить представления в фоновом режиме, чтобы следующий пользователь, когда он открыл представление, уже обновлен? это неправильная идея? – Marshell

+4

View.refresh НЕ делает, что вы хотите ... Это даже не влияет на индекс представления ... Вы должны найти причину медленного представления производительности, а не работать вокруг ... 30 000 документов и 200 просмотров смешно для базы данных NotesDatabase и даже не заставляйте вас думать о производительности ... В представлениях должен быть очень плохой дизайн, чтобы это небольшое приложение имело проблемы с производительностью. Есть такие вещи, как сегодня или сейчас во взглядах? У вас много полей для чтения? Есть много сортируемых столбцов? Эти вещи (среди прочего) делают базы данных медленными, а не 30 000 документов и 200 просмотров –

ответ

8

Существует множество возможных причин низкой производительности и многие вещи, которые мы могли бы предложить. Например, мы могли бы говорить о фрагментации диска. Мы могли бы обсудить, какая у вас версия Domino (о которой вы не упоминали) и о возможных обновлениях. Мы могли бы обсудить подсистему ввода/вывода вашего сервера ...

Но первая и наиболее очевидная проблема заключается в том, что у вас есть слишком много просмотров !! Дело в том, что 30 000 документов вовсе не являются необоснованными для базы данных Notes, даже с приличным количеством новых и отредактированных документов в день. В правильно спроектированной и поддерживаемой базе данных на довольно базовом оборудовании это должно выполняться просто отлично. Я видел базы данных с 100 000 или более документов с десятками тысяч новых и удаленных документов каждый день, все в порядке, но я также видел, что они плохо работают, если, например, удаленные заглушки не были очищены достаточно часто.

Но я отвлекся ... У вас слишком много просмотров, простых и простых. Вот где вы должны начать. Независимо от того, что еще вы делаете, я могу гарантировать, что база данных с 200 видами представлений будет плохо работать по сравнению с базой данных с 20 видами. Некоторые из ваших взглядов действительно могут быть проблемами сами по себе из-за плохого дизайна, поэтому вам нужно посмотреть на каждую из них; но даже перед тем, как вы посмотрите на дизайн, вы должны спросить: почему это мнение здесь? Кому это нужно? Если я удалю его, кто-нибудь заметит? Есть ли другой взгляд или лучший способ удовлетворить все потребности, с которыми сталкивается эта точка зрения?

3

А пары вещей, чтобы проверить:

не Убедитесь, что ни один из ваших формул выбора видов и формулы столбцов содержат какую-либо дату-время таких функций, как @Now

Проверить просмотреть свойства, на вкладку Дополнительно Комплект: Refresh: Авто, после первого использования Сбросить: если неактивно в течение 45 дней

Оставьте агента по обновлению, сервер должен уметь следить за индексом.

3

Определите «производительность» в первую очередь. Вы говорите об открытии просмотров? Или это когда вы запускаете код, он медленный? Как сказал Ричард в своем ответе, у вас слишком много просмотров. 30 000 документов - ничто, у меня есть базы данных с миллионами документов и около 100 просмотров, они работают нормально. Я подозреваю, что у вас может быть плохо разработанное приложение. Возможно, вы используете функции даты/времени в представлениях, GetNthDocument(), несколько @DbLookup для форм и т. Д.?

Начало, читая эту белую бумагу Андре 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

Смежные вопросы