2016-03-15 57 views
-1

理論上我們知道索引字段被修改時索引就會重建。但是有沒有什麼方法可以使用進度數據庫的任何命令來識別索引構建。如何從技術上識別索引重建?

+0

你想解決什麼問題? – Jensd

+0

這不是爲了解決任何問題。如果有任何方法可以幫助理解索引重建清楚 – Anburaja

回答

0

不,沒有簡單的,一刀切的命令說「你需要重建索引」。

您需要重建索引,如果:

  • 你會得到一個錯誤消息,指示您這樣做。
  • 技術支持建議您這樣做。
  • 您已執行轉儲&加載且索引已停用。
  • 您希望啓用以前停用的索引。
  • 指數利用(如由proutil dbanalsys報告)已經 下降到不可接受的水平(即,小於70%的超過1000 索引塊)
  • 到代碼頁或字斷規則的某些更改

您斷言當字段更改時索引「重建」不正確。如果一個字段是一個索引字段,那麼一個或多個索引的相關部分也可能會被更新以反映與字段更改相關的適當更改 - 但這與重建索引相距甚遠。

+0

當我搜索索引時,我從這個鏈接http://www.geekinterview.com/question_details/44552得到了一個信息,它說 進度創建一個新的索引條目在第一次出現以下任何一項時的記錄: - 在Progress中將值分配給索引條目的所有組件的語句的末尾。 - Progress 4GL創建記錄的最接近的迭代子事務塊的末尾。 - 當Progress處理一個VALIDATE語句時。 - 當Progress從記錄緩衝區釋放記錄時。 - Progress創建記錄的事務結束時。 – Anburaja

+0

我們如何確定針對上述情況更新的索引條目。 – Anburaja

+0

破解打開一個十六進制編輯器並檢查數據庫。 –

0

這並不完全清楚你在找什麼。有一個實用程序執行「索引重建」 - 它遍歷表中的所有數據並重新創建一個或多個索引。但我不認爲這就是你問的,

你是否試圖確定哪些指數將更新時記錄被更改?這是可能的;它將涉及解析數據字典中的索引定義以確定每個索引中涉及哪些字段。然後,您需要跟蹤在寫入記錄時哪些字段已更新。最後,你會使用這個已更改字段的列表來計算受影響的索引。

您是否只是試圖確定Progress是否正確更新您的索引?如果是這樣,我想你有理由擔心這一點。讓我們知道它是什麼,我們會盡力幫助您確定您的擔憂是否有根據。

您想查看Progress如何存儲索引數據嗎?然後,正如湯姆所說,十六進制編輯器是你的朋友。網上還有其他地方可以找到內外知道這些東西的人,這些包括PEG mailint列表和Progress社區。你可能會在那裏獲得更多的技術細節。

您是否想了解有關進度指數的更多信息?有一些白皮書對它們進行討論 - 但主要是從「在查詢中使用哪種索引」的觀點來看。一般來說,索引更新過程被認爲是正常工作。

如果是其中之一,請告訴我們,我們將爲您填寫詳細信息。如果是別的東西,也許你可以再試一次問這個問題。我們會盡力幫助。