PDA

View Full Version : تفاوت بين nvarchar max , nvarchar



REZAEE22
یک شنبه 08 مرداد 1391, 11:42 صبح
سلام به همه !
من ميدونم كه:
Nvarchar :
در اين نوع داده ها , داده هاي يوني كد با طول ثابت و حداكثر 4000 كاراكتر را ذخيره مي نمايند , و مانند nchar هستند ولي در مواقعي كه تعداد كاراكتر ها كمتر باشد فضاي كمتري از ديسك را مصرف مي كند .
و
Nvarchar(max :
اين نوع داده ها دقيقا مانند nvarchar هستند اما به اندازه Max معين 2^31-1 بايت از داده را ذخيره مي كند .


اما نمي دونم فضاي اشغالي nvarchar(max براساس تعداد كاراكتر هاي وارد شده است يا خير؟؟!!!! اگه جواب مثبته پس ايجاد فضاي داده اي بنام nvarcharچه تو جيهي ميتونه داشته باشه!!!؟؟؟؟؟:متفکر:

حمیدرضاصادقیان
یک شنبه 08 مرداد 1391, 13:20 عصر
سلام.بله از لحاظ ساختاری تفاوتی باهم ندارند.
اگر تعداد کارکتر شما کمتر از 4000 کارکتر باشد در نوع ذخیره سازی تفاوتی نمیکند ولی اگر بیشتر باشد نوع MAX داده ها رو به صورت Text ذخیره سازی میکند که روی سرعت شما نیز تاثیرگذار خواهد بود.
این نکته هم هست که SQL Server هنگام Compile دستور شما 50% فضای متغیر تعریف شده رو در RAM به خودش اختصاص میده که همین نیز روی سرعت شما تاثیر میذاره.
پیشنهاد میکنم این لینک (https://sites.google.com/site/mrmbookmarks/msg/sql-performancecomparisonnvarchar4000vsnvarcharmax) رو نیز مشاهده کنید.