Saya berharap posting ini akan membantu Anda.
http://geekswithblogs.net/johnsPerfBlog/archive/2008/04/16/ntext-vs-nvarcharmax-in-sql-2005.aspx
Fakta-fakta kunci:
- Secara default TEXT dan NTEXT menyimpan nilai teks dalam struktur LOB
- Secara Default NVARCHAR (MAX) menyimpan nilai teks dalam struktur tabel (Kecuali jika lebih dari 8000 byte)
Ketika Anda mengubah kolom dari TEXT / NTEXT ke NVARCHAR (MAX), cara data disimpan tidak diubah, itu memperbarui metadata tabel saja. Struktur data hanya diubah pada saat nilai diubah. Ini dapat dilakukan segera dengan menjalankan sesuatu seperti ini:
update mytable set mycolumn1 = mycolumn1
Jika Anda menggunakan pengaturan opsi tabel default untuk NVARCHAR (MAX), maka data di tabel Anda akan lebih besar.
- Anda perlu melihat pengaturan opsi meja dan lingkungan sebelum mengubah pengaturan sesuai dengan kebutuhan Anda.
Ukuran tabel Anda akhirnya akan menyusut, jika Anda mengikuti pernyataan tabel alter Anda dengan pernyataan tabel pembaruan.
Singkatnya, jika Anda menjalankan pernyataan pembaruan, memaksa penyimpanan struktur data diubah, ukuran basis data Anda akan lebih kecil, seperti yang diharapkan.
EDIT : Seperti yang telah Anda sebutkan TEXT dan bukan NTEXT, keuntungan Anda dalam ruang akan kurang jelas dari yang Anda kira. NTEXT mengambil dua kali lipat jumlah ruang seperti yang dilakukan TEXT, tetapi pada saat yang sama, Anda harus mengharapkan NVARCHAR (MAX) mengambil sekitar setengah ruang seperti apa yang dilakukan NTEXT. Dengan perhitungan saya, Anda akan melihat sedikit perubahan dari ukuran database asli Anda.
Penghargaan khusus untuk http://www.douglubey.com/