2011-05-27 38 views
0

我有一些導出的行要導入到當前正在運行的數據庫中。在進行批量插入之前,我是否應該禁用與數據庫交互的應用程序,以便BI是唯一正在執行的操作?SQL Server批量插入 - 在操作期間是否應允許其他插入?

我認爲這將是最佳做法,但只是想與社區進行覈對。

非常感謝!

+0

取決於您試圖實現的目標。 – 2011-05-27 10:58:23

回答

1

我通常不會禁用任何其他使用數據庫的應用程序。對我來說,批量加載只是數據庫的另一個客戶端,並且受到通常的併發/隔離機制的約束。

但也有例外,其中的大部分負載需要長時間運行的釋放過程或maintanance日常工作的一部分,在這種情況下,它會出來幾個小時反正

我總是用一個臨時表來雖然加載數據。經過處理,清理,清理和密鑰查找等後,我會通過一次原子操作將數據刷新到實時表。換句話說,我不會將批量加載與其他表訪問混合在一起:我會通過臨時表緩存批量加載

+0

謝謝你。只是一個簡短的問題,你將使用什麼技術將數據從臨時表中移出?你會用select語句的insert語句將數據從一個表移動到另一個表嗎? – Paul 2011-05-27 12:08:59

+0

@paul:是的。但它將是一個單獨的INSERT:所有其他工作將在臨時表上完成(例如,查找鍵) – gbn 2011-05-27 12:15:03