我試圖加快事實表加載作爲整體性能項目的一部分。這張桌子每晚大約增加了約120萬行約100k。該表格的索引非常龐大。對於快速裝載目的地使用表鎖定選項有什麼後果?
目前我正在使用SSIS快速加載OLE DB目標並加載100,000行大約需要15分鐘。對我來說,插入100k行看起來非常重要,所以我修改了軟件包以將結果轉儲到臨時表中,然後從臨時表中將T-SQL插入到事實表中。插入現在運行不到1分鐘。
我發現一個普通的舊T-SQL插入比SSIS快速加載更快,所以我開始考慮在OLEDB目的地上檢查哪些盒子。事實證明,表鎖沒有被選中。當我檢查這個選項時,SSIS負載現在不到1分鐘。 我的問題是:
- 什麼是離開表鎖檢查?
- 默認情況下T-SQL插入語句是否發出表鎖,這就是爲什麼它最初更快?
啊,所以多行級別的鎖定會解釋緩慢。很酷,謝謝。 – AS2012
@ AS2012:不僅如此,更多的鎖也會佔用更多的內存。我鏈接的文章在這個主題上非常相關和詳細。 –