PDA

View Full Version : تفاوت بین varchar و nvarchar چیست؟



argess
سه شنبه 18 فروردین 1394, 19:56 عصر
تفاوت بین varchar و nvarchar چیست؟ و استفاده از کدام یک بهتر و به صرفه تر است؟

argess
سه شنبه 18 فروردین 1394, 19:59 عصر
همانطور که پیداست نوع داده ای nvarchar اطلاعات را به صورت یونیکد (Unicode) ذخیره می کند. در صورتی که varchar محدود به کد پیج 8 بیت است.خیلی ها معتقدند که باید از varchar استفاده کنیم چون حجم اطلاعاتی که ذخیره می کند کمتر است. من با این نظر موافق نیستم. عدم سازگاری کد پیج درد بزرگی است و علاج آن در استفاده از یونیکد Unicode می باشد. امروزه مشکل حافظه هارد و RAM خیلی وجود ندارد و شما به راحتی می توانید حافظه های بیشتر استفاده نمایید.

خیلی از سیستم عامل ها و زبانهای برنامه نویسی مدرن به صورت پیش فرض از یونیکد استفاده می کنند. این به معنی آن است که اگر شما از یونیکد یا همان nvarchar استفاده کنید زمان خواندن و نوشتن اطلاعات نیازی به کانورت اطلاعات از حالت اسکی به یونیکد وجود ندارد و این باعث بهبود کارایی و سرعت می شود.

کانورت اطلاعات زمانبر است و در برخی مواقع نیز منجر به ایجاد خطا می شود.

این پست را از سایت خارجی و معتبر StackOverFlow ترجمه کرده ام.
برای خواندن سایر ترجمه ها به سایت زیر مراجعه نمایید. هر روز تعدادی از مطالب StackOverFlow ترجمه و در سایت زیر قرار می گیرد.

آموزش SQL Server - ترجمه پست های سایت Stackoverflow (http://majiksource.ir/index.php?forums/t-sql.37/)

samaneh_abyaneh
چهارشنبه 19 فروردین 1394, 13:44 عصر
varchar : یک رشته با طول متغیر می باشد. این نوع، با بیشتر دیتابیس ها همخوانی دارد. در صورتی که یک فیلد (varchar(10 ایجاد نموده و کلمه test را در آن وارد نمائید، تنها test را ذخیره می نماید.
این فیلد تا 8000 کاراکتر را می تواند ذخیره نماید.

nvarchar : رشته داده ای Unicode (مناسب برای ذخیره سازی داده به زبان فارسی) با طول متغیر می باشد. n طول رشته را مشخص می نماید و می تواند از 1 تا 4000 باشد. Max نشان دهنده بیشترین اندازه ذخیره داده می باشد و آن برابر 2 - 2^31 بایت می باشد(2GB).
میزان فضای ذخیره سازی، به بایت، دو برابر داده وارد شده به علاوه 2 می باشد.