2011-01-21 7 views
6

Nvarchar, çok dilli verileri depolamak için kullanılan unicode verilerini depolamak için kullanılır. Unicode saklamakla bitmiyorsa, hala aynı alanı kaplıyor mu?Nvarchar her zaman varchar olarak iki kat fazla yer kaplıyor mu?

+1

Ben o independet inanıyorum sadece bir tür saklanan depolanan chars kullanılır, bu nedenle, depolanan char'lar ne olursa olsun unicode chars'dan alan alacaktır – John

cevap

6

EVET.

Bkz. MSDN Books Online on NCHAR and NVARCHAR.

NCHAR:

depolama boyutu iki kez n bayttır.

DEPARTMENTNAME

bayt depolama boyutu, karakterlerin ait iki kez sayı girilen + 2 byte

+0

Satır/sayfa sıkıştırmasının bunu nasıl etkilediği hakkında bir fikriniz var mı? 'select cast (N'This, varbinary (20)' den bir testtir ''0x5400680069007300200069007300200061002000' verir. Prensip olarak, bu sıfırların oldukça iyi sıkışabileceğini düşünürdüm. –

1

Sıralama. Tüm unicode karakterleri iki bayt kullanmaz. Örneğin, Utf-8 hala karakter başına bir bayttır, ancak çok nadiren karakter başına 4 bayta ihtiyacınız olabilir. Ne nvarchar yapacak karakter başına iki bayt ayırmak.

+1

n (var) char sütunları, 16 bit sabit genişlikli kodlama olan UCS-2'yi kullanır. Bu baytlardan biri tamamen sıfır olsa bile, karakter başına her zaman tam olarak iki bayt kullanır. – JLRishe

İlgili konular