Di masa lalu, menggunakan varchar
lebih dari char
besar tidak tidak, karena varchar
disimpan pada halaman yang berbeda dari sisa baris. Apakah ini masih terjadi hari ini dengan SQL Server 2008? Apakah saya akan melihat peningkatan memori / kinerja dari mengubah 1-3 varchar(5)
kolom menjadi char(5)
kolom pada tabel dengan
a) ucapkan 2.000.000 baris b) jika salah satu varchar
kolom adalah bagian dari indeks / kunci utama
sql-server
sql-server-2008
Carlo V. Dango
sumber
sumber
Jawaban:
Anda membingungkan teks / varchar (maks) (tipe LOB) dengan varchar (n) / char (n)
Kalau tidak, jika Anda menggunakan char (1000) bukan varchar (1000) dan panjang data rata-rata adalah, katakanlah, 42 ini adalah desain yang buruk dan banyak ruang yang terbuang.
sumber
Sulit untuk memberi tahu Anda tentang perolehan atau hit kinerja spesifik tanpa mengetahui lebih banyak tentang skema Anda, tetapi secara umum Anda ingin menentukan dataype agar sesuai dengan data Anda. Jika Anda membutuhkan lebar tetap (mis. Anda tahu Anda akan selalu memiliki lima karakter) maka Anda harus menggunakan char (5). Jika Anda memiliki jumlah data variabel maka Anda harus menggunakan varchar (5).
Untuk SQL, semakin banyak data yang dapat Anda muat di sebuah halaman, semakin baik kinerja Anda.
sumber
Sejauh yang saya tahu SQL Server tidak pernah menyimpan tipe data varchar atau nvarchar di luar baris. Teks dan NText berbeda. Ada beberapa bit tambahan yang disimpan untuk kolom lebar variabel, tetapi hanya itu saja.
sumber