是什麼導致從 Informatica 載入到 SQL Server 的磁碟空間增長?
我們一直在處理來自 Informatica 的 SQL Server 上的巨大磁碟增長。載入後,數據庫增長到 2.4TB。數據庫收縮後,達到 1.05TB。什麼可能導致這種情況發生?我們可以在 Informatica 和/或 SQL Server 中檢查哪些設置,以便下次執行以解決此問題或進行猜測/檢查?
編輯:
使用 Informatica 映射移動數據的方法有兩種。使用 SQL 轉換類型或使用具有 Informatica 開箱即用功能的內置數據流使用 SQL 覆蓋(直接執行 SQL)。在這種情況下,我們使用的是數據流。使用數據流時,仍使用直接 SQL,但 Informatica 在幕後創建 SQL 程式碼。我們以 1,000,000 個記錄增量載入。我想也許 Informatica 可能會告訴 SQL Server 在載入時分配磁碟空間,但我什至不確定要查找哪些命令。
我的數字不正確。收縮完成,大小為 0.3TB。所以 SQL Server 有 6 倍分配的儲存空間,而不是 2 倍分配的儲存空間。在刪除目標表上的索引後,我通過創建目標定義(通過在 Informatica 中導入表模式)解決了這個問題。SQL Server 正在分配磁碟空間,即使索引被禁用。可能是因為 Informatica 告訴它這樣做的。所以現在 Informatica 只是載入數據,即使有索引也不關心是否有索引。我們現在不是在 ETL 前禁用它們並在 ETL 後啟用它們,而是在 ETL 前刪除索引,然後在 ETL 後創建它們。
檢查以下一些:
- 備份前產品中數據庫的可用空間。您可能只是在 prod 中預先保留了很多可用空間。在引入IFI之前,它曾經是最佳實踐。您仍然需要預先分配。
DBCC SQLPERF (LOGSPACE)
-事務日誌大小恢復後但通過執行兩次預收縮。也許事務日誌在還原後沒有打開的事務,您現在正在檢查點/縮小它。這意味著您可能不會進行 prod tlog 備份,並且您的恢復模式是FULL
.-按恢復後大小的順序列出所有表的大小,然後按收縮後的順序列出,然後進行比較。