Varchar vs Nvarchar
Varchar on muutuva tähemärgi välja lühike nimi. Need märgid tähistavad määratlemata pikkusega andmeid. Varchar on tegelikus mõttes andmeveergude tüüp, mida leidub andmebaasihaldussüsteemides. Varchari veergude välja suurus võib varieeruda, sõltuvalt kaalutavast andmebaasist.
Oracle 9i puhul on välja maksimaalne lubatud tähemärkide arv 4000. MySQL-is on andmeedastuslimiit reas 65 535 ja Microsoft SQL server 2005 sisaldab väljalimiiti 8000. Varchari (max) kasutamisel võib see arv tõusta Microsoft SQL-i serveris kõrgemaks, tõustes 2 gigabaidini. Nvarchar seevastu on veerg, kuhu saab salvestada Unicode'i mis tahes pikkusega andmeid. Koodleht, millest Nvarchar peab kinni pidama, on 8-bitine kodeering. Varchari maksimaalne suurus on 8000 ja NVarchari maksimaalne suurus 4000. See tähendab tegelikult, et Varchari üks veerg võib olla maksimaalselt 8000 tähemärki ja Nvarchari üks veerg võib olla maksimaalselt 4000 tähemärki. Veeru väärtuste ületamine muutub tohutuks probleemiks ja võib põhjustada isegi tõsiseid probleeme, kuna read ei tohi hõlmata mitut lehte, välja arvatud SQL server 2005, ja piirangutest tuleb kinni pidada, vastasel juhul tekivad vead või kärpimine ...
Üks peamisi erinevusi Varchari ja Nvarchari vahel on Varchari väiksema ruumi kasutamine. Selle põhjuseks on asjaolu, et Nvarchar võtab tööle Unicode'i, mis spetsiifiliste andmete kodeerimise vaeva tõttu võtab rohkem ruumi. Iga salvestatud tähemärgi jaoks nõuab Unicode kahte baiti andmeid ja just see võib põhjustada andmete väärtuse kõrgema väljaarvutamise võrreldes Unicode'i andmetega, mida Varchar kasutab. Varchar seevastu nõuab iga salvestatud tähemärgi jaoks ainult ühte baiti andmeid. Veelgi olulisem on see, et kuigi Unicode'i kasutamine võtab rohkem ruumi, lahendab see siiski probleemid, mis tekivad koodilehtede sobimatusest, mille käsitsi lahendamine on valus.
Seega võib kosmosefunktsiooni tähelepanuta jätta lühema aja, mis kulub Unicode'il tekkivate vastuolude parandamiseks. Samuti on kettade ja mälu maksumus muutunud üsna taskukohaseks, tagades, et kosmosefunktsiooni saab sageli kahe silma vahele jätta, samas kui pikemat aega Varchari tekkivate probleemide lahendamiseks ei saa nii hõlpsalt vallandada.
Kõik arendusplatvormid kasutavad sisemiselt kaasaegseid opsüsteeme, võimaldades Unicode'i käivitada. See tähendab, et Nvarcharit kasutatakse sagedamini kui Varcharit. Välditakse teisenduste kodeerimist, lühendades andmebaasi lugemiseks ja kirjutamiseks kuluvat aega. See vähendab ka vigu märkimisväärselt, kuna tekkivate teisendusvigade taastamine muutub lihtsaks probleemiks.
Unicode'i kasutamise eelised kehtivad ka inimestele, kes kasutavad ASCII rakenduse liideseid, kuna andmebaas reageerib hästi, eriti opsüsteemi ja andmebaasi koalitsiooni algoritmid. Unicode'i andmed väldivad teisendusega seotud probleeme ja andmeid saab alati kinnitada, kui need piirduvad 7-bitise ASCII-ga, sõltumata pärandsüsteemist, mida tuleb hooldada.
Kokkuvõte
Varcharil ja Nvarcharil on erinevad märgitüübid. Varchar kasutab mitte-Unicode'i andmeid, Nvarchar aga Unicode andmeid.
Nii Varcharil kui ka Nvarcharil on erinevad andmetüübid, millest tuleb kinni pidada. Varchar salvestab andmeid ainult 1 baidises järjestuses ja Nvarchar salvestab andmed 2 tähemärki iga märgi kohta
Maksimaalne pikkus varieerub ka. Varchari pikkus on piiratud 8000 baitiga ja Nvarchari puhul on lubatud 4000 baiti.
Selle põhjuseks on asjaolu, et salvestusruumi suurus Varcharis on sirgjoonelisem kui Nvarchari kasutatavate Unicode'i andmete puhul.