2010-06-02 203 views
6

我們在SQL Server(2005 & 2008)數據庫中有幾個表,其中列定義爲nvarchar(4000)。我們有時需要能夠存儲更多的數據,並考慮使用nvarchar(max)來代替。現在回答問題。將nvarchar(4000)轉換爲nvarchar(max)

  1. 我們應該知道哪些性能影響?
  2. 使用「alter table」進行實際遷移還是有其他方法是否安全?
  3. 在轉換之前我們應該知道的其他東西嗎?

問候 約翰

回答

8

我們不得不因爲換做這個問題,以及在幾個景點

  1. 我們沒有看到任何性能命中,其過去5周
  2. 只要在轉換過程中表格沒有被寫入,'Alter table'就沒有問題
  3. 請確保備份以防萬一,並根據表中可能需要的數據量hile
+5

您的第二點的條件值得重複 - 它通常需要計劃達到該狀態。 – 2010-06-02 13:49:14

1

如果文本與其餘數據不匹配,則文本將存儲在另一頁中。這會導致讀取額外的數據庫頁面。所以性能可能會變慢。在負載很重,響應時間非常有限的系統上,也許。

SQL Server Management Studio可能會重命名當前表,使用新佈局創建一個新表,複製數據,刪除舊錶。 這可能會很慢。

我不知道alter table是否可以工作。