Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

257 views

Published on

Notes/Domino のデータベースには設計やデータの他、ビューの索引も含まれています。前編ではビューの索引の構造とメンテナンスするための基本的な仕組みについてまとめました。

Published in: Technology
  • Be the first to comment

  • Be the first to like this

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

  1. 1. ビュー索引(前編) 中野晴幸 (Haruyuki Nakano) @harunakano (Twitter) harunakano.blogspot.com (blog)
  2. 2. 免責事項 • 本資料はメーカーの承認を得たものではありません。本資料の内容につい てメーカーへ問い合わせすることはしないでください。 • 内容については既出の資料を筆者なりに解釈したものであり、誤りを含ん でいる可能性があります。詳細については、メーカーが公開している技術 文書やヘルプなどからご確認ください。 • 本資料に基づいて発生した不具合について、筆者は一切の責任を負わない ものといたします。
  3. 3. ビューとは ビューとは、ソートまたは分類された文書の一覧です。ビューは、 データベースに格納されたデータへの入口です。 ビューの設計 https://www.ibm.com/support/knowledgecenter/ja/SSVRGU_9.0.1/basic/H_ABOUT_DESIGNING_VIEWS.html
  4. 4. ビューナビゲーション [移動] Ctrl + Shift + [移動]
  5. 5. Notes と Domino の制限事項の一覧 https://www.ibm.com/support/knowledgecenter/ja/SSVRGU_9.0.1/basic/H_NOTES_AND_DOMINO_KNOWN_LIMITS.html
  6. 6. ビュー索引とは ビュー索引とは、ビューに属する文書のリストを作成するための 内部的なファイリングシステムです。 ビュー索引を更新する https://www.ibm.com/support/knowledgecenter/ja/SSVRGU_9.0.1/basic/H_ABOUT_REFRESHING_VIEW_INDEXES.html
  7. 7. ビュー 索引 郵便番号順 読み仮名順 都道府県別 ●●● ビューメモ
  8. 8. コレクションに格納する索引3種 • NOTE ID によって分類された索引 • 文書のソート順を定義した索引 • 親文書-子文書索引 ビューメモ
  9. 9. クイズ(1) ビュー索引はいつも存在… する する訳ではない
  10. 10. クイズ(1) ビュー索引はいつも存在… する する訳ではない 最初にユーザーがビューへアクセスするとき、ビュー索引が無ければ構築さ れます。アクセスしないビューの索引は自動で削除されます。 (参考)Lotus Notes/Domino の Index の基本 - Updall スイッチ、Update および NIF https://www-01.ibm.com/support/docview.wss?uid=swg21467469
  11. 11. ビュー索引の終生 なければ作る、あれば最新をキープ、使わなければ削除する
  12. 12. ビュー索引のメンテナンス用語 1. 構築(Build) 存在しないビュー索引を新たに作成する 2. 更新(Update) データベースへの変更をビュー索引へ反映する 3. 再構築(Rebuild) 既存のビュー索引を破棄し、再び構築する 4. 廃棄(Purge) 既存のビュー索引を削除する
  13. 13. 1. 構築 ユーザー/サーバー/アプリケーションがビューへアクセスしたとき、そのビュー索引がな ければただちに構築されます。 コマンド updall -C を投入して構築することも可能です。 (参考)Lotus Notes/Domino の Index の基本 - Updall スイッチ、Update および NIF https://www-01.ibm.com/support/docview.wss?uid=swg21467469
  14. 14. 2. 更新 ユーザーが文書を保存したり削除してデータベースに変更を加えたとき、操作している ビューが古いままだとおかしなことになるため、ユーザーが使用しているビューは即座に 更新されます。 このユーザーが別のビューへ切り替えます。データベースの最新の内容を表示するため、 ビュー索引が更新されます。 このユーザーがデータベースを閉じます。するとデータベース内でユーザーが使用しな かったビューを更新するため、15分後に更新するようキューへ要求をあげます。
  15. 15. 2. 更新(続き) キューには、複製やルーター(メールの受信)からも要求があがるため、要求をまとめるため に待機します。キュー内に同じ対象への要求が重複しないよう工夫されています。 キューにある要求は 5 秒ごとに処理されます。キューに入る要求には即時要求と遅延要求があ ります。遅延要求は 15 分後に処理されます。 キューの要求からビューを更新するかどうかは、文書によりデータベースが最後に変更された 日時と、ビューが最後に更新を始めた日時とを比較して判断します。ビューの日時が古い場合 に索引を更新します。このときビュー索引が構築されていない(削除されている)場合、わざ わざ構築することはありません。 Lotus Notes/Domino 7 アプリケーションのパフォーマンス 第2部:データベースのビューの最適化 https://www.ibm.com/developerworks/jp/lotus/library/notes7-application-performance2/index.html
  16. 16. 3. 再構築 索引は更新以外にも再構築といって、作成済みの索引をわざわざ廃棄して作り直すことが あります。 再構築の要因 • ビューの設計変更 • ビュー索引の破損 • ビューの選択式や列式にある日時関数 • ショートカットキー(Shift + F9) など (参考)Notes データベースの索引はどのような場合に再構築されるのでしょうか https://www-01.ibm.com/support/docview.wss?uid=swg21467092
  17. 17. 4. 廃棄 ビュー索引は、削除オプションに従って削除されます。 ディスク容量の節約などの理由で、コマンド compact -D を投入してビュー索引を削除する ことも可能です。 ビュー索引を更新する https://www.ibm.com/support/knowledgecenter/ja/SSVRGU_9.0.1/basic/H_ABOUT_REFRESHING_VIEW_INDEXES.html
  18. 18. ビュー索引のオプション • 更新時オプション • 削除オプション • 更新の表示オプション ビュー索引を更新する https://www.ibm.com/support/knowledgecenter/ja/SSVRGU_9.0.1/basic/H_ABOUT_REFRESHING_VIEW_INDEXES.html
  19. 19. 更新時オプション 主にクライアントがビューを開いたときの動作に影響を与える。 自動(最初の使用後) 開かれるときに強制的に最新の状態に更新されます。(デフォルト) 自動 開かれるときに強制的に最新の状態に更新されます。 update または updall を実⾏したときにビュー索引がまだ構築されていなければ構築 されます。 手動 ビューを開いても最新の状態に更新されません。 自動(周期) ユーザーが開くときに、指定した期間内に更新されていなかった場合に限り、最新の 状態に更新されます。
  20. 20. 更新時オプション(続き) 更新時オプション 索引が無い場合 索引がある場合 自動(最初の使用後) 構築する 更新する 自動 構築する 更新する 手動 構築する 更新しない 自動(周期) 構築する 指定した期間内に更新されていなかった場合 に限り、更新する(※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
  21. 21. 削除オプション 使用後に削除 ユーザーがデータベースを閉じると、すぐにビュー索引を削除します。 45日間使用されないとき ビューが45日間使用されていない場合は、そのビューの索引を削除します。 未使用期間により削除 ビューが指定した日数の間に使用されなかった場合は、そのビューの索引を削除します。 (参考)Notes ビュー索引の更新に関する基本 https://www-01.ibm.com/support/docview.wss?uid=swg21464512 ビュー索引を更新する https://www.ibm.com/support/knowledgecenter/ja/SSVRGU_9.0.1/basic/H_ABOUT_REFRESHING_VIEW_INDEXES.html
  22. 22. 更新の表示オプション インジケータを表示 変更が自動的には表示されない。更新アイコンがビューに表示され、表示を更新する には、ユーザーがそのアイコンをクリックする必要がある 表示の更新 ユーザーにビューを表示する前に表示を自動で更新します。 最初の行から表示の更新 ビューを先頭から更新します。ユーザーがビューの先頭から順に変更を探す可能性が 高い、逆時間順の表示の場合に便利です。 最後の行から表示の更新 ビューを末尾から先頭へと更新します。ユーザーがビューの末尾から順に変更を探す 可能性が高い、時間順の表示の場合に便利です。
  23. 23. 【参考】キーボードショートカット 最新表示(Refresh): [F9] 索引が読み取られ、それに応じて画面が再描画されます。索引は再構築されません。 再構築 (Rebuild): [Shift] + [F9] 開いているビューのコレクションが再構築されます。 更新 (Update): [Ctrl] + [Shift] + [F9] データベース内のすべてのビューが更新もしくは構築されます。ビューが構築されていない場合 は構築され、すでに構築されている場合は、再構築ではなく、更新されます。
  24. 24. 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 開く
  25. 25. クイズ(2) どっちの処理の負荷が高い? 更新 変更分のみ 構築/再構築 全ての文書
  26. 26. クイズ(2) どっちの処理の負荷が高い? 更新 変更分のみ 構築/再構築 全ての文書 負荷:低 負荷:高 再構築中に利用できるメモリ容量によっては、再構築するビューごとに一時 フォルダに必要になるディスク容量は、最も大きいビューのサイズの約2倍か、 文書のデータの合計サイズの約2倍のどちらか大きいほうの値になります。 ビューの再構築に使用する一時フォルダを変更する https://www.ibm.com/support/knowledgecenter/ja/SSKTMJ_9.0.1/admin_changingthetemporaryfolderusedforviewrebuilds_t.h tml
  27. 27. インデクサ ビュー索引を維持する仕組み
  28. 28. インデクサの仕事 • ビュー索引の管理 • 全文索引の管理 • クライアントからのDB圧縮要求 (Domino 7.xよりデフォルト)
  29. 29. インデクサ 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 UpdateUpdall
  30. 30. Notes Index Facility (NIF) ビュー索引の操作に使用する機能群 • メモのコレクションを開く • コレクションをスキャンしてコレクションにあるエントリについての情報を返す • トータルの文書数やトータルサイズなどのコレクションに関する詳細情報を参照する • 特定のメモのコレクションから検索できるように検索オプションを使用する • フォーム、ビュー、共有フォルダ、エージェント、フィールドメモのメモ ID を検索する • コレクションから特定のメモ ID の位置を調べる、そしてコレクションの位置を更新する • 開いたコレクションを更新する • コレクションを閉じる Inside Notes (R5) https://www.ibm.com/developerworks/jp/lotus/ldd_tech/20050128_2.html
  31. 31. 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 索引 • 文書のソート順索引 • 親文書-子文書索引
  32. 32. Update サーバー起動時にタスクを起動し、継続的に動作 ServerTasks=Update キューにある更新要求を5秒ごとに調べ、徐々に索引を更新 更新要求は2種類(即時と遅延) 即時:5秒ごと • Router によるメール配信処理に伴うメールデータベースのビューの更新処理 • データベースプロパティより実⾏される「圧縮」処理 遅延:15分後 • ユーザーがデータベースプロパティよりリクエストした全文索引の作成や更新処理 • ユーザーの文書追加/削除に伴う全文索引の更新処理(更新頻度が"即時"以外?) • 複製によって発生するビューの更新処理
  33. 33. Updall 随時起動し、処理完了後に終了する ServerTasksAt2=Updall すべてのデータベースが対象 コマンド投入による起動 オプション次第で特定のデータベースを対象にすることも可能 Update との違い • キューから起動しない • 削除スタブのパージ • ビュー索引の廃棄 [タスク] - [開始] ツールのオプショ ン コマンドラインオプション 説明 このビューのみ更新 database -T viewtitle データベースの特定のビューを更新します。たとえば -R と併用 して、破損の問題を解決します。 単一のビューに対して Updall を実⾏するには、次の構文を使用 します。 Load Updall Database filename.nsf -T "viewname" –R [更新] - [すべての作成済みのビュー] -V 構築されているビューを更新しますが、全文索引は更新しません。 [再構築] - [すべての使用中のビュー] -R 使用されているすべてのビューを再構築します。このオプション を使うと、リソースを大量に消費するので、特定のデータベース の破損の問題を解決するときに、最後の手段として使用してくだ さい。 [再構築] - [全文索引と以下の選択項 目] - [すべての未使用のビュー] database -C データベースの未使用ビューと全文索引を再構築します。データ ベースを指定する必要があります。
  34. 34. インデクサの一日 リアルタイム • ユーザー/サーバー/アプリケーションがビューを開く ビュー索引がなければ構築、更新は「更新オプション」に従う • ユーザーが作業しているビューから、文書を追加/更新/削除する • ユーザーが Ctrl + Shift + F9 をタイプ、または Shift + F9 をタイプ 5秒ごと(Update がキューから起動) • メール受信後(ルータータスク) • データベースプロパティからの「圧縮」 1分ごと(Directory Indexer) ドミノディレクトリのビュー索引を更新 15分待機(Update がキューから起動) • データベースプロパティからの全文索引の「作成/更新」 • 複製終了 • ユーザーが文書を作成/更新/削除した後、データベースを閉じる 毎日(ServerTasksAt2=Updall) • すべてのデータベースのビュー索引と全文索引を更新 • 削除スタブのパージ その他 • ビューの破損 すべてのユーザーがログアウトした後、updall -r が実⾏されるか、 ユーザーがビューへアクセスすると再構築される • ビュー設計変更 色やフォントなどの見た目の変更でなく選択式、列式、ソート順 などを変更すると再構築される • エージェント データベースに対して文書の追加・変更・削除を⾏う処理を実⾏ すると更新される など
  35. 35. クイズ(3) Update, Updall を実⾏しないとビュー索引は.. 更新される 更新されない
  36. 36. クイズ(3) Update, Updall を実⾏しないとビュー索引は.. 更新される 更新されない Update, Updall ともにバックグラウンドで更新するものです が、ユーザーがビューを開けばすぐさま更新されます
  37. 37. 後編へつづく

×