Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

varchar (maks) di mana-mana?

Dengan menggunakan VARCHAR(MAX) Anda pada dasarnya memberi tahu SQL Server "simpan nilai di bidang ini bagaimana Anda melihat yang terbaik", SQL Server kemudian akan memilih apakah akan menyimpan nilai sebagai VARCHAR biasa atau sebagai LOB (Objek besar). Secara umum jika nilai yang disimpan kurang dari 8.000 byte, SQL Server akan memperlakukan nilai sebagai VARCHAR biasa ketik.

Jika nilai yang disimpan terlalu besar maka kolom diperbolehkan untuk keluar dari halaman ke halaman LOB, persis seperti yang mereka lakukan untuk jenis LOB lainnya (text , ntext dan image ) - jika ini terjadi maka pembacaan halaman tambahan diperlukan untuk membaca data yang disimpan di halaman tambahan (yaitu ada kinerja yang baik), namun ini hanya terjadi jika nilai yang disimpan terlalu besar .

Bahkan di bawah SQL Server 2008 atau yang lebih baru, data dapat meluap ke halaman tambahan bahkan dengan tipe data panjang tetap (mis. VARCHAR(3,000) ), namun halaman ini disebut halaman data luapan baris dan diperlakukan sedikit berbeda.

Versi singkat: dari perspektif penyimpanan tidak ada kerugian menggunakan VARCHAR(MAX) lebih dari VARCHAR(N) untuk beberapa N .

(Perhatikan bahwa ini juga berlaku untuk jenis bidang panjang variabel lainnya NVARCHAR dan VARBINARY )

FYI - Anda tidak dapat membuat indeks di VARCHAR(MAX) kolom



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara mengekstrak banyak string dari satu baris di SQL Server

  2. SQL Server 2012 :ekstrak grup Regex

  3. Tambahkan Kolom ke Tabel yang Ada di Database SQL Server

  4. Masukkan semua nilai tabel ke tabel lain di SQL

  5. Cara Mendapatkan Informasi Statistik SQL Server Menggunakan Fungsi Statistik Sistem