Nejdriv tabulka. Cislo rika kolik radku se vlezlo do tabulky, kde bylo v radku vzdy 1 hodnota int a 6 hodnot string – vsechny o stejne delce retezce(delka dostupneho pole mohla byt vyssi). Prvne se ulozili delky poctu v datovem typu bez Var, a kdyz pote se delalo totez s Var datovym typem, kdy se do toho retezce vygeneroval novy retezec, ale se stejnou delkou jako text na stejnem indexu, do ktereho bylo ulozeno kdyz se vytvareli datove prvky bez Var.
Pokud v bez Var uz by prvky nestacili, vygeneruje se nove cislo, ktere bylo v rozsahu mezi maximalni a minimalni delkou. Toto ale neplatilo u datovych typu Text a NText, kdy vzdy byla fixni velikost. Limit souboru .mdf byl 30 MB, ihned co se DB s jedinou tabulkou prehoupla pres 30 MB hranici, radky se prestaly pridavat.
Nasleduje tabulka, ve ktere je pocet takovych radku, ktery se vesel do prvku NText a NVarChar. Pro typ NChar se mi nepodarilo ulozit ani jeden radek z duvodu chyby “
Index ‘PK__Koc_Phot__3214EC27075BC5CD’ row length exceeds the
maximum permissible length of ‘8060’ bytes.” ktere vubec nerozumim.
Maximalni delka | NChar | NVarChar | Hodnota zmeny | Procento zmeny |
20 | 109249 | 194664 | +85415 | +43,8 |
40 | 54625 | 104076 | +49451 | +42,8 |
60 | 37555 | 70415 | +32860 | +46,6 |
2000 | 1752 | |||
4000 | 864 |
Princip vypoctu:
Procento zmeny = (NVarChar – NChar) / NVarChar posunute o 2 mista doprava
Hodnota zmeny = Procento zmeny * NVarChar nebo NVarChar – NChar
Fixni delka retezce | NText | Text | Hodnota zmeny | Procento zmeny |
20 | 41761 | 41761 | 0 | 0 |
40 | 22131 | 41761 | +19630 | +47 |
60 | 18341 | 41761 | +23420 | +56 |
2000 | 1111 | 1627 | +516 | +31,7 |
4000 | 564 | 1111 | +547 | +49,2 |
6000 | 378 | 570 | +192 | +33,6 |
10000 | 228 | 423 | +195 | +46 |
1000000 | 3 | 5 | +2 | +40 |
Pro datove typy VarChar a Char tu nemam srovnani, protoze je nepovazuji za az tak dulezite, mam tu pouze vysledek hodnot ktere dosahly u typu VarChar protoze Char se mi nepodarilo zprovoznit ani s jednou z techto hodnot – 6000, 4000, 2000:
Do souboru VarChar_6000 bylo zapsano 1072 radku.
Co se tyce pretahnuti velikosti 30MB, tak to se podarilo pouze 2 souborum a sice Text_1000000.mdf na 32MB rovnych a NText_1000000.mdf na rovnych 38MB. Holt tato DB ani zadna jina neni urcena na ukladani takto dlouhych retezcu.
Zajimave hodnoty lze ale pozorovat u souboru Logu(*.ldf). Zatimco vsechny DB meli soubor logu okolo 1MB, tak tyto 3 vyjimky meli soubor o velikosti 9 nebo dokonce 19MB:
NText_10000.ldf – 9
NText_1000000.ldf – 19
Text_1000000.ldf – 9
Nasleduje tabulka porovnani datovych SQL typu NText a Text:
Na male hodnoty do 2000 znaku se nejvice hodi datovy typ
NVarChar , na delsi pak
Text . Stejne je ale nejlepsi pokud zapasite o kazdy byte na databazi hostingu ukladat dlouhe texty do txt souboru napriklad, pokud je nepotrebujete mit z nejakeho duvodu v DB(napriklad indexace).