Увеличение скорости работы бд

Dragon108

Well-Known Member
19.01.2010
265
0
#1
Хотелось бы узнать, какие есть методы по увеличению скорости работы бд? или хотя бы просто "как" лучше создавать архитектуру, для того, что бы бд работала быстрее? Был бы признателен ссылкам на какие-нибудь статьи. Спасибо.
 
S

slangID

Гость
#3
Все зависит от платформы на которой ты работаешь. Но если кратко то можно придерживаться следующего:
Выделим несколько групп методов:
сервер:
  • запустить сервер без консоли с помощью вызова "nservice.exe -jc -c" (помогает устранить утечку оперативной памяти, возникающую из-за консольного окна Windows); если потом оно все-таки понадобиться, то запустите "jconsole.exe".

свойства БД:
  • "не сохранять отметки о непрочтении".
  • не "сохранять свойство LastAccessed".
  • "оптимизировать схему таблиц документов".

представления:
  • ни в коем случае не использовать @now.
  • используйте минимум сортировок; двойные можно заменить на комбинацию противоположных в значениях свойств колонки: "по умолчанию" и "запросу пользователя".
открытие документов:
  • определить события QueryOpen, PostOpen в субформах и формах функцией Print, если они еще не определены.
  • обращаясь с рисунку не забудьте нажать на Reset в его основных свойствах.
  • в свойствах EmbeddedView поставьте галочку "single category", если каждый раз отображается лишь часть от всего содержимого представления (есть категоризация).
  • соответствие между версиями Lotus Designer и Lotus Client.
  • при отправки шаблонов на предприятие избавиться от субформ, интегрировав их содержимое в формы. Отдельная "ветка" для отправки.

Lotus Script:
  • используйте db.Search() в самом крайнем случае. Вместо него - view.GetAllDocumentsByKey(). А о db.FTSearch() забудьте сразу.
  • используйте forall вместо for, если это возможно.
  • скажите нет функции evaluate().
  • объявляйте все используемые переменные (не используйте постфиксы %, $,..) и удаляйте не используемые.
  • при переключении документов в коллекции не используйте сочетание оператора for и метода dc.GetNthDocument(i), гораздо быстрее и безопасней сочетание while и dc.GetNextDocument(doc).
  • удалить все вызовы команды stop; поиск лучше осуществлять с помощью синопсиса.
 

Shandrik

Well-Known Member
Lotus team
30.12.2010
268
26
#4
> А о db.FTSearch() забудьте сразу.
Видимо, Вы забыли проиндексировать базу :KillMe: Работает шустро.
Забыв о db.FTSearch() лишаетесь многого.

> скажите нет функции evaluate().
Наоборот - на собаках можно наваять здоровенную портянку, которую Evaluate выполнит быстрее скриптового эквивалента.

>не используйте постфиксы %, $,..
По моим наблюдениям, как раз наоборот - постфиксы способствуют ускорению.
 

ToxaRat

Чёрный маг
Lotus team
06.11.2007
3 226
25
#6
свойства БД
- не использовать иеархию
 

Akupaka

А че я?.. О.о
04.10.2007
3 360
2
#7
свойства БД
- не использовать иеархию
А есть ли у тебя какие-либо подтверждения того, на сколько это улучшает эффективность такого приложения. И будет ли эта эффективность перекрывать те недостатки, которые получает приложение без данного функционала?
Может следует предупреждать сразу, что это свойство можно отключить для каких-то конкретных приложений? Краткость не всегда сестра таланта ;)
 

valeri2005

New Member
04.10.2011
1
0
#8
А не пробовали scanEZ "окурки" убрать из базы?
У меня не получилось, к сожалению, эту EZ установить....