Saya memiliki beberapa database yang dibuat menggunakan Entity Framework Code First; aplikasi bekerja dan secara umum saya cukup senang dengan apa yang pertama kali saya lakukan dengan Code. Saya seorang programmer pertama, dan DBA kedua, karena kebutuhan. Saya membaca tentang DataAttributes untuk menjelaskan lebih lanjut dalam C # apa yang saya ingin database lakukan; dan pertanyaan saya adalah: hukuman apa yang akan saya makan dengan memasukkan nvarchar(max)
string ini di meja saya (lihat contoh di bawah)?
Ada beberapa kolom dalam tabel khusus ini; di C # mereka didefinisikan sebagai:
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int ID { get; set; }
public string Name { get; set; }
public string Message { get; set; }
public string Source { get; set; }
public DateTime Generated { get; set; }
public DateTime Written { get; set; }
Saya berharap untuk meminta dan / atau mengurutkan berdasarkan Nama, Sumber, Dihasilkan, dan Ditulis. Saya berharap Nama dan Sumber berada dalam panjang karakter 0-50, kadang-kadang hingga 150. Saya berharap tabel ini mulai cukup kecil (<100r baris), tetapi tumbuh secara signifikan dari waktu ke waktu (> 1jej baris). Jelas pesan bisa kecil atau besar, dan mungkin tidak akan dipertanyakan.
Yang ingin saya ketahui, apakah ada hit kinerja untuk kolom Nama dan Sumber saya didefinisikan sebagai nvarchar(max)
ketika saya tidak pernah berharap mereka lebih besar dari 150 karakter?
varchar(max)
mana - mana akan merusak kinerja Anda - jangan lakukan itu! Gunakan tipe data yang sesuai - varchar(max)
HANYA SAJA jika Anda BENAR - BENAR membutuhkan lebih dari 8000 karakter! (Saya belum pernah melihat nama atau email seseorang selama itu!) - Lihat Apa gunanya Menggunakan VARCHAR (n) Lagi? untuk info lebih lanjut
[MaxLength]
atau[StringLength]
atribut. Beberapa kemungkinan faktor negatif tambahan dari kolom yang