Избор на правилното сортиране на SQL Server за съхранение

Как сортирането влияе на SQL Server по отношение на съхранението и как това се отразява на типовете данни Unicode и non-unicode?

  • Съпоставянето влияе ли върху съхранението на Unicode? или просто управлява правилата за сортиране в базата данни?

  • Когато използвам типовете данни, различни от Уникод, какви ограничения са свързани с сортирането?

  • Ако се прилагат ограничения, какво се случва, когато се опитам да запазя знак, който не е в сортирането на база данни от тип данни, различен от Unicode?

Моето разбиране е, че типът данни Unicode може винаги да съхранява пълния набор от данни Unicode, докато възможностите за съхранение на типовете данни, различни от Unicode, зависят от кодовата страница (която се дефинира от сортирането) и могат да представляват само определен брой общи знаци в това съпоставяне.

Очевидно всеки знак в тип данни Unicode ще заема най-малко 2 байта, докато типовете данни, различни от Unicode, заемат 1 байт на знак (или това също варира в зависимост от сортирането?)

Кажете ми направо, как точно работи това?


person John Leidegren    schedule 01.12.2009    source източник


Отговори (1)


SQL Server съхранява Unicode данни (NTEXT, NVARCHAR) в UCS2, което винаги води до 2 байта на знак.

Подреждането засяга само сортирането (и регистъра).

В не-Unicode типове данни (TEXT, VARCHAR) се използва само един байт за символ и могат да се съхраняват само символи от кодовата страница на сортирането (точно както посочихте). Вижте тази статия на MSDN относно сортирането

person devio    schedule 01.12.2009