2014-02-16 53 views
0

從大約200萬條記錄中刪除表的列的最佳方法是什麼?用2M記錄刪除表中的列

該表包含用戶數據,我無法長時間鎖定它。恐怕簡單的DROP COLUMN可能太慢了。

我使用MS SQL Server 2012 Standard。

+1

2,000,000行*真*不是大數據。刪除不包含外鍵引用的200萬行的列在這裏不到四分之一秒。先備份。 –

回答

0

首先克隆它並嘗試下降,看看它需要多長時間。還要弄清楚什麼時候你的系統最容易被使用,比如凌晨3點或者其他地方,然後再做。

如果你真的必須保持24-7系統,那麼這是一個不同的問題。在這種情況下,您需要能夠記錄事務,然後將其轉回到數據中。根據系統的複雜程度,這可能相對容易或困難。換句話說,這將是一種修改表格的方式,當它很熱並且沒有任何鬆動時。

(據我所知,一些比較好的數據庫中可能有此內置功能。你可以找一個更強大的數據基礎。)

0

我有同樣的問題在客戶現場的一個。這是我所做的,它需要更多的工作,但我發現非常有用。在最後PERSON_1(但「_1」)與原來的表來區分:

  1. 創建前完全一樣的表。

  2. 使用IMPORT AND EXPORT WIZARD將數據從原始表傳輸到新表。

  3. 刪除原始表中的列。

  4. 關注STEP2(不會有一列映射,因爲你已經在原表中刪除)

  5. 檢查數據是相同的,你可以刪除這個表(Person_1)。