Sql-Server

空表:插入表 WITH (TABLOCK)

  • February 20, 2019

我們有一個空的聚集索引表。表大約有:20 列,5000 萬行,大約(40GB)。

對這樣的空表應用 Insert With (TABLOCK) 是最佳做法嗎?該表是一個數據倉庫表,在 ETL 時間內執行。沒有並髮使用者,我們處於簡單恢復模式。只是好奇,如果是這樣,我們可以更新我們的 100 多個儲存過程。

像許多與數據庫相關的事情一樣,此選項解決了一些問題,但可能會導致其他問題。

通過使用 TABLOCK,您將避免鎖升級。通過使用 TABLOCKX,您甚至可以避免鎖轉換。缺點是針對該表的其他活動必須等待該鎖被釋放。你說沒有並發活動,所以這不應該是現實生活中的實際問題。獲取鎖非常便宜和快速,所以我也不認為這會是一個問題。

所以我的回答是——你想解決什麼問題?更改 100 多個儲存過程的工作是否會因您所看到的改進而得到回報?

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