這是繼我的previous question後確定分區切換作爲快速獲取數據到大量索引的事實類型表中的最佳方式,該表需要保持對讀者可用。在SQL Server 2008中使用索引表的分區切換進行並行批量加載
雖然它似乎是最好的方法,但它還不足以真正滿足允許多個(< 5)用戶同時批量插入,並將新數據編入索引並出現在索引視圖(不一定是真正的索引視圖,只是依賴索引的選擇)。
分區的想法是,以分區爲根的每個分區和索引子樹可以並行鎖定爲只讀,複製到工作表中,插入/更新新數據並重建索引,然後切換回來進入主表,以便讀者不受影響。
問題是單個工作表。每個並行批量插入都需要自己的副本,與主表具有相同的約束以允許切換。
到目前爲止,我已經打了幾個牆試圖繞過這個瓶頸:
- 我嘗試使用同一個分區 功能分區的工作表。這不起作用,因爲您無法禁用基於分區的索引 以插入一個,而在另一個基礎上重建索引 。
- 創建臨時表作爲工作表。此 不起作用,因爲儘管您可以使用相同的索引名稱,但 無法輕鬆地動態創建約束,並且無論如何也不能切換 。
- 有一組固定的命名工作表?我如何選擇一個並在別名下使用它,所以我只有一個存儲過程?
- 動態SQL?我非常努力地避免走這條路。它很複雜。
很大的挑戰,但任何人有任何想法之前,我接受瓶頸? Sql 2012會有幫助嗎?正確的數據倉庫如何處理這個問題?