Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ビュー索引のキホン(前編)

 ビュー索引のキホン(前編)

Notes/Domino のビューの索引についてまとめた資料の前編です。

2019年7月11日開催の「のの会 第16回」で使用した資料です。

Haruyuki Nakano

September 08, 2022
Tweet

More Decks by Haruyuki Nakano

Other Decks in Technology

Transcript

  1. 2. 更新(続き) キューには、複製やルーター(メールの受信)からも要求があがるため、要求をまとめるため に待機します。キュー内に同じ対象への要求が重複しないよう工夫されています。 キューにある要求は 5 秒ごとに処理されます。キューに入る要求には即時要求と遅延要求があ ります。遅延要求は 15 分後に処理されます。

    キューの要求からビューを更新するかどうかは、文書によりデータベースが最後に変更された 日時と、ビューが最後に更新を始めた日時とを比較して判断します。ビューの日時が古い場合 に索引を更新します。このときビュー索引が構築されていない(削除されている)場合、わざ わざ構築することはありません。 Lotus Notes/Domino 7 アプリケーションのパフォーマンス 第2部:データベースのビューの最適化 https://www.ibm.com/developerworks/jp/lotus/library/notes7-application-performance2/index.html
  2. 3. 再構築 索引は更新以外にも再構築といって、作成済みの索引をわざわざ廃棄して作り直すことが あります。 再構築の要因 • ビューの設計変更 • ビュー索引の破損 •

    ビューの選択式や列式にある日時関数 • ショートカットキー(Shift + F9) など (参考)Notes データベースの索引はどのような場合に再構築されるのでしょうか https://www-01.ibm.com/support/docview.wss?uid=swg21467092
  3. 更新時オプション(続き) 更新時オプション 索引が無い場合 索引がある場合 自動(最初の使用後) 構築する 更新する 自動 構築する 更新する

    手動 構築する 更新しない 自動(周期) 構築する 指定した期間内に更新されていなかった場合 に限り、更新する(※1) ※1:過去 [n] 時間以内に更新されたビューは、即時に開きます。この更新は Chronos タスクによって実現され、頻繁に変 更される大規模なデータベースに特に適しています。ユーザーは、ビューを開いたときに更新を待つ必要がなく、ビュー は即時に表示されます。 (参考)Notes ビュー索引の更新に関する基本 https://www-01.ibm.com/support/docview.wss?uid=swg21464512 Lotus Notes/Domino 7 アプリケーションのパフォーマンス 第2部:データベースのビューの最適化 https://www.ibm.com/developerworks/jp/lotus/library/notes7-application-performance2/index.html?ca=drs- ビュー索引を更新する https://www.ibm.com/support/knowledgecenter/ja/SSVRGU_9.0.1/basic/H_ABOUT_REFRESHING_VIEW_INDEXES.html
  4. 【参考】キーボードショートカット 最新表示(Refresh): [F9] 索引が読み取られ、それに応じて画面が再描画されます。索引は再構築されません。 再構築 (Rebuild): [Shift] + [F9] 開いているビューのコレクションが再構築されます。

    更新 (Update): [Ctrl] + [Shift] + [F9] データベース内のすべてのビューが更新もしくは構築されます。ビューが構築されていない場合 は構築され、すでに構築されている場合は、再構築ではなく、更新されます。
  5. 9:00 Update 9:02 更新 ビュー#1 開く 文書を 作成更新削除 9:05 再ロード

    矢印表示 9:25 F9押下 ⇒ すぐに表示 サーバーはビュー#1 を直ちに更新 Lotus Notes/Domino 7 アプリケーションのパフォーマンス 第2部:データベースのビューの最適化 https://www.ibm.com/developerworks/jp/lotus/library/notes7-application-performance2/index.html 更新 データベースを 閉じる 更新要求をキューへ登録 9:10 再ロード 矢印表示 ビュー#1 開く ビュー#2 開く
  6. クイズ(2) どっちの処理の負荷が高い? 更新 変更分のみ 構築/再構築 全ての文書 負荷:低 負荷:高 再構築中に利用できるメモリ容量によっては、再構築するビューごとに一時 フォルダに必要になるディスク容量は、最も大きいビューのサイズの約2倍か、

    文書のデータの合計サイズの約2倍のどちらか大きいほうの値になります。 ビューの再構築に使用する一時フォルダを変更する https://www.ibm.com/support/knowledgecenter/ja/SSKTMJ_9.0.1/admin_changingthetemporaryfolderusedforviewrebuilds_t.h tml
  7. インデクサ 3つのサブシステムの複合体 • Notes Indexing Facility (NIF) • Update •

    Updall (参考)Lotus Notes/Domino の Index の基本 - Updall スイッチ、Update および NIF https://www-01.ibm.com/support/docview.wss?uid=swg21467469 インデクサ NIF Update Updall
  8. Notes Index Facility (NIF) ビュー索引の操作に使用する機能群 • メモのコレクションを開く • コレクションをスキャンしてコレクションにあるエントリについての情報を返す •

    トータルの文書数やトータルサイズなどのコレクションに関する詳細情報を参照する • 特定のメモのコレクションから検索できるように検索オプションを使用する • フォーム、ビュー、共有フォルダ、エージェント、フィールドメモのメモ ID を検索する • コレクションから特定のメモ ID の位置を調べる、そしてコレクションの位置を更新する • 開いたコレクションを更新する • コレクションを閉じる Inside Notes (R5) https://www.ibm.com/developerworks/jp/lotus/ldd_tech/20050128_2.html
  9. Notes Index Facility (NIF)(続き) Update タスクや Updall は、ビュー索引を維持するために NIF を使用します。

    NIF は NSF ファンクションを使用して各ビューから選択式を読み込み、選択式に見合う文書 を順番に検索します。 そして索引を含んだコレクション情報を構築します。 (参考)Lotus Notes/Domino の Index の基本 - Updall スイッチ、Update および NIF https://www-01.ibm.com/support/docview.wss?uid=swg21467469 コレクション • NOTE ID 索引 • 文書のソート順索引 • 親文書-子文書索引
  10. Update サーバー起動時にタスクを起動し、継続的に動作 ServerTasks=Update キューにある更新要求を5秒ごとに調べ、徐々に索引を更新 更新要求は2種類(即時と遅延) 即時:5秒ごと • Router によるメール配信処理に伴うメールデータベースのビューの更新処理 •

    データベースプロパティより実⾏される「圧縮」処理 遅延:15分後 • ユーザーがデータベースプロパティよりリクエストした全文索引の作成や更新処理 • ユーザーの文書追加/削除に伴う全文索引の更新処理(更新頻度が"即時"以外?) • 複製によって発生するビューの更新処理
  11. Updall 随時起動し、処理完了後に終了する ServerTasksAt2=Updall すべてのデータベースが対象 コマンド投入による起動 オプション次第で特定のデータベースを対象にすることも可能 Update との違い • キューから起動しない

    • 削除スタブのパージ • ビュー索引の廃棄 [タスク] - [開始] ツールのオプショ ン コマンドラインオプション 説明 このビューのみ更新 database -T viewtitle データベースの特定のビューを更新します。たとえば -R と併用 して、破損の問題を解決します。 単一のビューに対して Updall を実⾏するには、次の構文を使用 します。 Load Updall Database filename.nsf -T "viewname" –R [更新] - [すべての作成済みのビュー] -V 構築されているビューを更新しますが、全文索引は更新しません。 [再構築] - [すべての使用中のビュー] -R 使用されているすべてのビューを再構築します。このオプション を使うと、リソースを大量に消費するので、特定のデータベース の破損の問題を解決するときに、最後の手段として使用してくだ さい。 [再構築] - [全文索引と以下の選択項 目] - [すべての未使用のビュー] database -C データベースの未使用ビューと全文索引を再構築します。データ ベースを指定する必要があります。
  12. インデクサの一日 リアルタイム • ユーザー/サーバー/アプリケーションがビューを開く ビュー索引がなければ構築、更新は「更新オプション」に従う • ユーザーが作業しているビューから、文書を追加/更新/削除する • ユーザーが Ctrl

    + Shift + F9 をタイプ、または Shift + F9 をタイプ 5秒ごと(Update がキューから起動) • メール受信後(ルータータスク) • データベースプロパティからの「圧縮」 1分ごと(Directory Indexer) ドミノディレクトリのビュー索引を更新 15分待機(Update がキューから起動) • データベースプロパティからの全文索引の「作成/更新」 • 複製終了 • ユーザーが文書を作成/更新/削除した後、データベースを閉じる 毎日(ServerTasksAt2=Updall) • すべてのデータベースのビュー索引と全文索引を更新 • 削除スタブのパージ その他 • ビューの破損 すべてのユーザーがログアウトした後、updall -r が実⾏されるか、 ユーザーがビューへアクセスすると再構築される • ビュー設計変更 色やフォントなどの見た目の変更でなく選択式、列式、ソート順 などを変更すると再構築される • エージェント データベースに対して文書の追加・変更・削除を⾏う処理を実⾏ すると更新される など