檢索程式作業:更新與 Updall

「更新」及 Updall 作業可使視圖索引及全文索引保有最新的資訊。

更新

預設為「更新」在伺服器啟用時載入並持續地執行,會檢查其需要更新之視圖及資料夾的工作佇列。索引程式會在每個執行的資料庫更新作業間等待五秒,來使用有限的系統資源。

「更新」作業執行三種不同的更新作業:

  • 更新 Domino® 名錄中的視圖。
  • 更新所有其他資料庫中的視圖。做出更新視圖的要求時,只有在上次更新後至少有 20 份文件有變更,而且在過去 7 天內曾經存取該視圖,才會更新視圖。在 Notes® 用戶端中開啟視圖時,視圖更新服務可加快視圖存取的速度。如果不常更新視圖,對使用者或應用程式的唯一影響是視圖開啟速度緩慢,因為會在開啟時自動更新視圖。
  • 更新全文索引。全文索引能夠搜尋最近新增的文件。如果文件是在完成最近一次全文索引之後新增的,那麼全文搜尋將找不到該份文件。

更新可以維護兩種工作佇列:立即佇列與延遲佇列。如路由器與抄寫器的其他伺服器元件,會在對資料庫進行變更時將要求貼入更新程式。部分要求會貼入為延遲進行,而部分要求會貼入為立即進行。

1. 全文索引依更新頻率更新

更新頻率

說明

每日

由每晚的「更新」作業執行。如果未每晚執行此作業,就不會執行每日更新。

已排程

由執行 Updall 的「程式」文件執行。您必須設定「已排程」的頻率,並建立適當的「程式」文件。您也可以使用此方法在不同時間更新不同的資料庫。

每小時

如果更新作業正在執行,就會由 Chronos 作業觸發並由更新作業執行。如果更新作業未執行,Chronos 就會執行更新。如果 Chronos 作業未執行,就不會執行更新。

立即

由「更新」作業執行。如果「更新」作業未執行,就不會執行更新。所有立即要求會在收到時進行處理。

延遲

延遲要求會在保留 15 分鐘後,才進行處理。當時要更新相同資料庫的要求會視為重複的要求而被忽略。

將視圖及資料夾的變更記錄到佇列時,「更新」會等待大約 15 分鐘,然後才更新此資料庫中的所有視圖索引,以便此更新可包含 15 分鐘周期內產生的任何其他資料庫變更。更新資料庫中的視圖索引後,它會隨之更新將全文搜尋索引設定為立即或每小時更新的所有資料庫。

「更新」遇到毀損的視圖索引或全文索引時,會重建視圖索引或全文索引以嘗試更正此問題。更新刪除視圖索引或全文索引,然後重建它。

若要增進視圖檢索效能,而且如果您的伺服器具有足夠的 CPU 能力,則您可以執行多個「更新」作業。

管理更新作業與此作業所使用的系統資源

如果伺服器的更新率低,亦即如果伺服器上的資料庫幾乎沒有變更,索引程式就能夠跟上伺服器預設配置中的更新率。如果由於應用程式資料庫使用頻繁、有大量的郵件使用者或大量的郵件,而讓伺服器有很高的更新率,預設資源使用量配置會使更新程式佇列變得很大。如判斷更新佇列過大,請決定對該伺服器執行更新的方法。很長的佇列通常代表那個視圖與全文索引並非最新。

以下是您可能想要使用的一些範例實務與作法,以及用來實作它們的步驟。

  • 實例一:除非對更新量很大的資料庫開始進行全文索引,否則佇列通常會很短。發生此種情況時,視圖更新要求會等待全文索引完成。這會讓佇列不斷增加,直到完成全文索引。若要稍微多使用一些系統資源以維持簡短的佇列,請以不同的執行緒執行視圖更新與全文索引更新。若要執行此動作,請在伺服器的 NOTES.INI 檔案中輸入 UPDATE_FULLTEXT_THREAD=1 變數。
  • 實例二:因為「更新程式」作業未能取得足夠的系統資源,以維持簡短的佇列,而使佇列隨著時間慢慢增加而變得太長。若要使用額外的資源以維持簡短的佇列,請在每個「更新」作業之間設定延遲。若要設定延遲,請在伺服器的 NOTES.INI 檔案中輸入 UPDATE_IDLE_TIME(以及 FTUPDATE_IDLE_TIME,如果使用兩個執行緒的話)等變數。根據預設,為延遲 5 秒。若要容許「更新」作業使用額外的系統資源,請將延遲設為小於 5 秒。較大型的伺服器可能需要較細微的精準度。在此情形下,您可以將 UPDATE_IDLE_TIME_MS(以及 FTUPDATE_IDLE_TIME_MS,如果使用兩個執行緒的話)等變數新增至伺服器的 NOTES.INI 檔案,來設定延遲(以毫秒為單位)(僅限 Domino® 以及更新版本)。
  • 實例:更新率很高的伺服器經常要求過多的系統資源,以維持少量的佇列。在此情況下,您可以決定完全不執行視圖更新,而只容許開啟視圖以自動執行更新。請將 UPDATE_DISABLE_VIEWS=1 變數新增至伺服器的 NOTES.INI 檔案中,來停用視圖更新。另一個選擇是限制全文資料庫的即時更新數目。您可以將資料庫的更新頻率變更為每小時、每天或變更為特定排程。您也可以刪除無關的完全索引。

    若只要容許少數的資料庫頻繁進行全文索引,而且要避免其他資料庫進行全文索引,請停用「更新程式」中的全文索引,然後新增「程式」文件來排程執行 Updall,例如,每隔半個小時(30 分鐘)執行一次。若要停用「更新程式」中的全文索引,請在伺服器的 NOTES.INI 檔案中輸入 UPDATE_DISABLE_FULLTEXT=1 變數。

    您可以完全避免執行任何更新項目,而且只容許開啟視圖以自動執行視圖更新。若要避免執行更新項目,請編輯 NOTES.INI 變數,方法是移除更新字串。

    如果系統有足夠的系統資源可執行更新,您就可以執行多個「更新」作業。若要執行此動作,請編輯 NOTES.INI 檔案中的 ServerTasks 變數,然後新增第二個「更新」作業。

    您可以調整可判定實際上是否已經更新修改視圖的控制。資料庫與視圖必須維持開啟的狀態,但如果未達到這些臨界值,就不會更新視圖。

如需相關資訊,請參閱 UPDATE_ACCESS_FREQUENCYUPDATE_NOTE_MINIMUM 及其他 NOTES.INI 設定。

Updall

Updall 與「更新」類似,但它不會持續地執行或從佇列運作;而是在需要時才執行 Updall。您可以在執行 Updall 時指定選項,但若沒有這些選項 Updall 會更新此伺服器上需要更新的任何視圖索引或全文搜尋索引。若要節省磁碟空間,Updall 也可從資料庫中清除刪除片段,並捨棄那些已 45 天沒使用之視圖的視圖索引,除非資料庫設計者已為捨棄視圖索引指定了不同的標準。如要變更 Updall 捨棄未使用視圖之索引的時間,請使用 NOTES.INI 設定 Default_Index_Lifetime_Days

類似「更新」,Updall 會重建它所遇到的所有已毀損的視圖索引及全文搜尋索引。

依預設,NOTES.INI 設定 ServerTasksAt2 中包含 Updall,因此 Updall 會在每天凌晨 2 點執行。每天執行 Updall 會清除刪除片段及捨棄未使用的視圖索引,幫助節省磁碟空間。它也會確保更新設定為每日更新的所有全文搜尋索引。

註: 透過 Designer 或 Updall 作業重建視圖時,在啟動重建程序之後所嘗試的所有新伺服器階段作業都會遭到鎖定。因此,建議變更為主要範本並完成視圖重新建置,以排程至使用者還需要很久才需要存取伺服器的深夜時刻。

下列表格比較「更新」與 Updall 的性質。對於 Updall,此表格說明預設性質。您也可以利用 Updall 選項,修改其中一些性質。

2. 更新及 Updall 的比較

性質

更新

Updall

執行時間

伺服器啟用後持續地執行

凌晨 2 點及執行時間

在所有資料庫上執行嗎?

否。僅在已變更的資料庫上執行。

要重新整理視圖索引嗎?

要更新全文索引嗎?

是。更新全文索引設定為立即及每小時更新。

是。更新所有全文索引

要偵測並嘗試重建毀損的視圖索引嗎?

要偵測並嘗試重建毀損的全文索引嗎?

要清除刪除片段嗎?

要捨棄未使用的視圖索引嗎?

是(已有 45 天未使用視圖之後,或根據設計者指定的視圖捨棄選項)

是(已有 45 天未使用視圖之後,或根據設計者指定的視圖捨棄選項)

要忽略「重新整理索引」視圖內容嗎?

可以使用選項自訂嗎?