ورود

View Full Version : NVarchar یا NChar



dr_csharp
دوشنبه 26 آذر 1386, 10:39 صبح
سلامدوستان کدام نوع داده برای فیلدها بهینه تر است ؟NVarChar یا NChar ؟

JAFO_IRAN
دوشنبه 26 آذر 1386, 11:16 صبح
سلام

بستگی به ماهیت داده داره. اگه اسم یا شرح یا مانند اینها است (پیش بینی بشه که اندازه داده‌ها در بین رکوردهای مختلف واریانس قابل ملاحظه‌ای داره) اونوقت nvarchar بهتره. اما اگر یک ترکیب ثابت و بدون تغییر (مثل کد پستی یا شماره ملی) مورد بحث باشه، "شاید" استفاده از nchar بهتر باشه. در کل nvarchar مزایای زیادی داره و فقط یک کم سربار داره - من که همیشه از این سربار صرفنظر میکنم و از nvarchar استفاده میکنم...

ارادت

dr_csharp
دوشنبه 26 آذر 1386, 12:23 عصر
جدا از بحث Unicode بودن ها در مقایسه ی انواع داده ای .. ممنون میشم از لحاظ میزان فضای لازم جهت ذخیره سازی هر کاراکتر و مجموع فضای اشغال شده دوستان توضیح بدن مثلا :NVarchar(100 و NChar(100

JAFO_IRAN
دوشنبه 26 آذر 1386, 13:24 عصر
سلام

از نظر فضا تقریبا مسئله معلومه: nchar(100 همیشه 200 بایت فضا میگیره و nvarchar(100 به تعداد حروفی که وارد شده ضربدر 2 بایت فضا میگیره. البته به ازای هر فیلد variable length حتما یک جایی در سطر، باید اطلاعات اضافی نگهداری بشه که فکر کنم قابل صرف نظر باشه:



Total size of variable-length columns (Variable_Data_Size) = 2 + (Num_Variable_Cols x 2) + Max_Var_Size
If there are no variable-length columns, set Variable_Data_Size to 0.
This formula assumes that all variable-length columns are 100 percent full. If you anticipate that a lower percentage of the variable-length column storage space will be used, you can adjust the result by that percentage to yield a more accurate estimate of the overall table size.


اون چیزی که من به عنوان سربار گفتم، بیشتر منظورم cpu time در پردازش رکورد دارای فیلدهای variable length بود. که البته من هیچوقت بهش توجه نمیکنم و همه فیلدها رو nvarchar میگیرم.

ارادت