Sql-Server

數據倉庫不好的做法?

  • January 20, 2015

在我們的 Datawarehouse 上下文中,我們必須更新 ETL 中的事實表中的一些記錄。

我們做的一件事是在最繁重的查詢之前創建非聚集索引,然後刪除它們。這使我們在查詢中花費更少的時間掃描表,並且建構索引所花費的時間影響非常小(1-2 分鐘)。

這是一個不好的做法嗎?

注意:我們現在不能對錶進行分區。

如果它對您有用,那麼這是一個很好的做法。數據庫基本上沒有硬性規定。

為 ETL 作業建構臨時索引不一定是壞習慣,因為索引建構相當快。如果您在非常大的表上進行相對較小的增量更新,則可能效率不高,但聽起來情況並非如此。

唯一需要注意的是,如果您希望表格隨著時間的推移而大幅增長。如果它們只是 ETL 的工作表,那麼它可能沒問題。如果這些表是事實表,將在未來 5 年內積累大量數據,那麼索引重建可能會隨著時間的推移而變慢。

對於暫存數據,刪除索引然後載入將使批量載入到暫存的速度更快,並且您可能需要向暫存表添加索引以支持提供 ETL 過程的查詢。

引用自:https://dba.stackexchange.com/questions/89676