Databas SQL Server 2000 ntext är unicode vilket innebär att ett tecken = två bytes. Varfär lagra en XML sträng i en databas? Det är ju tårta på tårta. Det går säkert att hacka ihop en dictionary-baserad komprimering i SQL om man är lite envis, men enklast och bäst torde vara att bryta isär din xml riktiga data i en egen datamodell... Tack för frågorna och kommentarerna. Nu har jag fått ytterligare lite saker att fundera över.Komprimering av fälttypen ntext i SQL Server
Jag har två fält i en tabell, ett id och ett som är ntext. I ntext-fältet lägger jag in en lång xml-sträng (170Kb). När jag tar och kikar på tabellen för att se hur mycket den växer, så växer den ca 300Kb per inlagd rad.
Finns det något i SQL Server som gör att man kan komprimera datat som ligger i ntext-fältet?
Måste jag själv komprimera datat innan jag lägger in det i ntext-fältet kanske?
Vänliga hälsningar Johan KällSv: Komprimering av fälttypen ntext i SQL Server
Ändra fälttypen till text så halveras storleken.
Det förutsätter naturligtvis att du inte behöver unicode.
(om du inte vet vad det är och arbetar med svenska/engelska kan du tryggt glömma unicode dvs skippa ntext och använd text ;)
OlaSv: Komprimering av fälttypen ntext i SQL Server
Sv: Komprimering av fälttypen ntext i SQL Server
Sv: Komprimering av fälttypen ntext i SQL Server
Tyvärr måste jag använda mig av unicode, eftersom det kommer att behöva lagras data med konstiga tecken (arabiska, kineskiska etc.).
Varför jag vill lagra en xml-sträng i databasen beror på prestandan. Det tar ett par sekunder varje gång jag ska skapa xml-strängen. Detta pga en oerhört massa regler och plockande från andra tabeller och checkar med olika prislistor. Tårta på tårta... ja, det blir det ju kan man säga, men å andra sidan kan jag direkt ta bort två tabeller som ändå innehåller denna informationen. Så där kan man ju säga att jag sparar lite plats. Visserligen är plats inte det största bekymret eftersom det är billigt. Men jag vill ändå hålla ned storleken, eftersom det växer ganska fort.
Den här xml-strängen är bara en del i en ännu större xml-sträng som ska plockas ihop och skickas vidare och den kan användas fler gånger utan att behöva generera den varje gång. Detta borde spara mycket tid.