Slide 1

Slide 1 text

ビュー索引(前編) 中野晴幸 (Haruyuki Nakano) @harunakano (Twitter) harunakano.blogspot.com (blog)

Slide 2

Slide 2 text

免責事項 • 本資料はメーカーの承認を得たものではありません。本資料の内容につい てメーカーへ問い合わせすることはしないでください。 • 内容については既出の資料を筆者なりに解釈したものであり、誤りを含ん でいる可能性があります。詳細については、メーカーが公開している技術 文書やヘルプなどからご確認ください。 • 本資料に基づいて発生した不具合について、筆者は一切の責任を負わない ものといたします。

Slide 3

Slide 3 text

ビューとは ビューとは、ソートまたは分類された文書の一覧です。ビューは、 データベースに格納されたデータへの入口です。 ビューの設計 https://www.ibm.com/support/knowledgecenter/ja/SSVRGU_9.0.1/basic/H_ABOUT_DESIGNING_VIEWS.html

Slide 4

Slide 4 text

ビュー ナビゲーション [移動] Ctrl + Shift + [移動]

Slide 5

Slide 5 text

Notes と Domino の制限事項の一覧 https://www.ibm.com/support/knowledgecenter/ja/SSVRGU_9.0.1/basic/H_NOTES_AND_DOMINO_KNOWN_LIMITS.html

Slide 6

Slide 6 text

ビュー索引とは ビュー索引とは、ビューに属する文書のリストを作成するための 内部的なファイリングシステムです。 ビュー索引を更新する https://www.ibm.com/support/knowledgecenter/ja/SSVRGU_9.0.1/basic/H_ABOUT_REFRESHING_VIEW_INDEXES.html

Slide 7

Slide 7 text

ビュー 索引 郵便番号順 読み仮名順 都道府県別 ●●● ビューメモ

Slide 8

Slide 8 text

コレクションに格納する索引3種 • NOTE ID によって分類された索引 • 文書のソート順を定義した索引 • 親文書-子文書索引 ビューメモ

Slide 9

Slide 9 text

クイズ(1) ビュー索引はいつも存在… する する訳ではない

Slide 10

Slide 10 text

クイズ(1) ビュー索引はいつも存在… する する訳ではない 最初にユーザーがビューへアクセスするとき、ビュー索引が無ければ構築さ れます。アクセスしないビューの索引は自動で削除されます。 (参考)Lotus Notes/Domino の Index の基本 - Updall スイッチ、Update および NIF https://www-01.ibm.com/support/docview.wss?uid=swg21467469

Slide 11

Slide 11 text

ビュー索引の終生 なければ作る、あれば最新をキープ、使わなければ削除する

Slide 12

Slide 12 text

ビュー索引のメンテナンス用語 1. 構築(Build) 存在しないビュー索引を新たに作成する 2. 更新(Update) データベースへの変更をビュー索引へ反映する 3. 再構築(Rebuild) 既存のビュー索引を破棄し、再び構築する 4. 廃棄(Purge) 既存のビュー索引を削除する

Slide 13

Slide 13 text

1. 構築 ユーザー/サーバー/アプリケーションがビューへアクセスしたとき、そのビュー索引がな ければただちに構築されます。 コマンド updall -C を投入して構築することも可能です。 (参考)Lotus Notes/Domino の Index の基本 - Updall スイッチ、Update および NIF https://www-01.ibm.com/support/docview.wss?uid=swg21467469

Slide 14

Slide 14 text

2. 更新 ユーザーが文書を保存したり削除してデータベースに変更を加えたとき、操作している ビューが古いままだとおかしなことになるため、ユーザーが使用しているビューは即座に 更新されます。 このユーザーが別のビューへ切り替えます。データベースの最新の内容を表示するため、 ビュー索引が更新されます。 このユーザーがデータベースを閉じます。するとデータベース内でユーザーが使用しな かったビューを更新するため、15分後に更新するようキューへ要求をあげます。

Slide 15

Slide 15 text

2. 更新(続き) キューには、複製やルーター(メールの受信)からも要求があがるため、要求をまとめるため に待機します。キュー内に同じ対象への要求が重複しないよう工夫されています。 キューにある要求は 5 秒ごとに処理されます。キューに入る要求には即時要求と遅延要求があ ります。遅延要求は 15 分後に処理されます。 キューの要求からビューを更新するかどうかは、文書によりデータベースが最後に変更された 日時と、ビューが最後に更新を始めた日時とを比較して判断します。ビューの日時が古い場合 に索引を更新します。このときビュー索引が構築されていない(削除されている)場合、わざ わざ構築することはありません。 Lotus Notes/Domino 7 アプリケーションのパフォーマンス 第2部:データベースのビューの最適化 https://www.ibm.com/developerworks/jp/lotus/library/notes7-application-performance2/index.html

Slide 16

Slide 16 text

3. 再構築 索引は更新以外にも再構築といって、作成済みの索引をわざわざ廃棄して作り直すことが あります。 再構築の要因 • ビューの設計変更 • ビュー索引の破損 • ビューの選択式や列式にある日時関数 • ショートカットキー(Shift + F9) など (参考)Notes データベースの索引はどのような場合に再構築されるのでしょうか https://www-01.ibm.com/support/docview.wss?uid=swg21467092

Slide 17

Slide 17 text

4. 廃棄 ビュー索引は、削除オプションに従って削除されます。 ディスク容量の節約などの理由で、コマンド compact -D を投入してビュー索引を削除する ことも可能です。 ビュー索引を更新する https://www.ibm.com/support/knowledgecenter/ja/SSVRGU_9.0.1/basic/H_ABOUT_REFRESHING_VIEW_INDEXES.html

Slide 18

Slide 18 text

ビュー索引のオプション • 更新時オプション • 削除オプション • 更新の表示オプション ビュー索引を更新する https://www.ibm.com/support/knowledgecenter/ja/SSVRGU_9.0.1/basic/H_ABOUT_REFRESHING_VIEW_INDEXES.html

Slide 19

Slide 19 text

更新時オプション 主にクライアントがビューを開いたときの動作に影響を与える。 自動(最初の使用後) 開かれるときに強制的に最新の状態に更新されます。(デフォルト) 自動 開かれるときに強制的に最新の状態に更新されます。 update または updall を実⾏したときにビュー索引がまだ構築されていなければ構築 されます。 手動 ビューを開いても最新の状態に更新されません。 自動(周期) ユーザーが開くときに、指定した期間内に更新されていなかった場合に限り、最新の 状態に更新されます。

Slide 20

Slide 20 text

更新時オプション(続き) 更新時オプション 索引が無い場合 索引がある場合 自動(最初の使用後) 構築する 更新する 自動 構築する 更新する 手動 構築する 更新しない 自動(周期) 構築する 指定した期間内に更新されていなかった場合 に限り、更新する(※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

Slide 21

Slide 21 text

削除オプション 使用後に削除 ユーザーがデータベースを閉じると、すぐにビュー索引を削除します。 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

Slide 22

Slide 22 text

更新の表示オプション インジケータを表示 変更が自動的には表示されない。更新アイコンがビューに表示され、表示を更新する には、ユーザーがそのアイコンをクリックする必要がある 表示の更新 ユーザーにビューを表示する前に表示を自動で更新します。 最初の行から表示の更新 ビューを先頭から更新します。ユーザーがビューの先頭から順に変更を探す可能性が 高い、逆時間順の表示の場合に便利です。 最後の行から表示の更新 ビューを末尾から先頭へと更新します。ユーザーがビューの末尾から順に変更を探す 可能性が高い、時間順の表示の場合に便利です。

Slide 23

Slide 23 text

【参考】キーボードショートカット 最新表示(Refresh): [F9] 索引が読み取られ、それに応じて画面が再描画されます。索引は再構築されません。 再構築 (Rebuild): [Shift] + [F9] 開いているビューのコレクションが再構築されます。 更新 (Update): [Ctrl] + [Shift] + [F9] データベース内のすべてのビューが更新もしくは構築されます。ビューが構築されていない場合 は構築され、すでに構築されている場合は、再構築ではなく、更新されます。

Slide 24

Slide 24 text

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 開く

Slide 25

Slide 25 text

クイズ(2) どっちの処理の負荷が高い? 更新 変更分のみ 構築/再構築 全ての文書

Slide 26

Slide 26 text

クイズ(2) どっちの処理の負荷が高い? 更新 変更分のみ 構築/再構築 全ての文書 負荷:低 負荷:高 再構築中に利用できるメモリ容量によっては、再構築するビューごとに一時 フォルダに必要になるディスク容量は、最も大きいビューのサイズの約2倍か、 文書のデータの合計サイズの約2倍のどちらか大きいほうの値になります。 ビューの再構築に使用する一時フォルダを変更する https://www.ibm.com/support/knowledgecenter/ja/SSKTMJ_9.0.1/admin_changingthetemporaryfolderusedforviewrebuilds_t.h tml

Slide 27

Slide 27 text

インデクサ ビュー索引を維持する仕組み

Slide 28

Slide 28 text

インデクサの仕事 • ビュー索引の管理 • 全文索引の管理 • クライアントからのDB圧縮要求 (Domino 7.xよりデフォルト)

Slide 29

Slide 29 text

インデクサ 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

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

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 索引 • 文書のソート順索引 • 親文書-子文書索引

Slide 32

Slide 32 text

Update サーバー起動時にタスクを起動し、継続的に動作 ServerTasks=Update キューにある更新要求を5秒ごとに調べ、徐々に索引を更新 更新要求は2種類(即時と遅延) 即時:5秒ごと • Router によるメール配信処理に伴うメールデータベースのビューの更新処理 • データベースプロパティより実⾏される「圧縮」処理 遅延:15分後 • ユーザーがデータベースプロパティよりリクエストした全文索引の作成や更新処理 • ユーザーの文書追加/削除に伴う全文索引の更新処理(更新頻度が"即時"以外?) • 複製によって発生するビューの更新処理

Slide 33

Slide 33 text

Updall 随時起動し、処理完了後に終了する ServerTasksAt2=Updall すべてのデータベースが対象 コマンド投入による起動 オプション次第で特定のデータベースを対象にすることも可能 Update との違い • キューから起動しない • 削除スタブのパージ • ビュー索引の廃棄 [タスク] - [開始] ツールのオプショ ン コマンドラインオプション 説明 このビューのみ更新 database -T viewtitle データベースの特定のビューを更新します。たとえば -R と併用 して、破損の問題を解決します。 単一のビューに対して Updall を実⾏するには、次の構文を使用 します。 Load Updall Database filename.nsf -T "viewname" –R [更新] - [すべての作成済みのビュー] -V 構築されているビューを更新しますが、全文索引は更新しません。 [再構築] - [すべての使用中のビュー] -R 使用されているすべてのビューを再構築します。このオプション を使うと、リソースを大量に消費するので、特定のデータベース の破損の問題を解決するときに、最後の手段として使用してくだ さい。 [再構築] - [全文索引と以下の選択項 目] - [すべての未使用のビュー] database -C データベースの未使用ビューと全文索引を再構築します。データ ベースを指定する必要があります。

Slide 34

Slide 34 text

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

Slide 35

Slide 35 text

クイズ(3) Update, Updall を実⾏しないとビュー索引は.. 更新される 更新されない

Slide 36

Slide 36 text

クイズ(3) Update, Updall を実⾏しないとビュー索引は.. 更新される 更新されない Update, Updall ともにバックグラウンドで更新するものです が、ユーザーがビューを開けばすぐさま更新されます

Slide 37

Slide 37 text

後編へつづく