2014-09-03 90 views
1

我的FACT表中存在一個問題。 通過相同的工作, 我調用一個過程來加載這個FACT表,然後第二個過程來收集這個事實表的統計信息。加入索引或收集Teradata中更好的統計信息

作爲新需求的一部分,我需要創建一個連接索引,其中還包括上述事實表。

我相信只要有任何涉及的表有變化,就會執行連接索引。那麼在上述情況下會發生什麼?。我的收集統計過程等待連接索引執行完成。因爲收集統計數據的simulataneous次數和joinindex

問候, Anoop

回答

0

爭連接索引會自動由Teradata數據保持在ETL過程中添加,更改或在引用的表(一個或多個)刪除數據聯合指數。如果您將DDL更改應用於影響參與連接索引的列的連接索引中引用的表,或者在刪除連接索引中引用的表之前,則必須刪除連接索引。

連接索引或事實表上的統計信息收集應保留到事實表的ETL已完成或定期統計維護期內。無論您是在每個ETL過程之後收集統計信息,還是僅在常規統計維護期間收集統計信息,都取決於每個ETL週期中事實表中有多少數據發生變化。我猜測如果創建連接索引以提高查詢事實表的性能,那麼除非此ETL週期是每月或每季度ETL過程,否則可能不需要在每個ETL週期後收集同一事實表上的統計信息。 JI和事實表上的統計信息收集可以並行運行。收集統計所需的鎖不高於READ。 (它實際上可能是一個ACCESS鎖。)

根據您的Teradata版本,您可以利用THRESHOLD選項來優化器確定是否需要收集統計信息。我相信這被包含在Teradata 14中,作爲Teradata 14.10中引入的自動統計維護的墊腳石。

+1

對於AJI,我會補充說,對於較大的更新/插入,建議刪除AJI並在更新/插入完成後重新創建它。事實上,放棄AJI,執行ETL,然後重新創建AJI可能會更快。 – Andrew 2014-09-03 14:43:05

+0

好點。針對目標表的某些活動可能會受到AJI的阻礙。這是一個平衡的行爲,因爲某些環境重建AJI本身可能需要幾個小時。 :) – 2014-09-03 14:44:52