sql >> Database >  >> RDS >> Sqlserver

Microsoft SQL Server 2005/2008:gegevenstype XML versus tekst/varchar

Als u xml opslaat in een xml-getypte kolom, worden de gegevens niet opgeslagen als eenvoudige tekst, zoals in het geval van nvarchar, maar worden ze opgeslagen in een soort geparseerde gegevensboom, die op zijn beurt kleiner zal zijn dan de niet-geparseerde xml-versie. Dit verkleint niet alleen de databasegrootte, maar geeft u ook andere voordelen, zoals validatie, gemakkelijke manipulatie enz. (ook al gebruikt u geen van deze, toch zijn ze er voor toekomstig gebruik).

Aan de andere kant zal de server de gegevens moeten ontleden bij het invoegen, wat waarschijnlijk uw database zal vertragen - u moet een beslissing nemen over snelheid versus grootte.

Bewerken:

Persoonlijk denk ik dat gegevens in de database alleen als xml moeten worden opgeslagen als het een structuur heeft die moeilijk te implementeren is in een relationeel model, b.v. lay-outs, stijlbeschrijvingen enz. Meestal betekent dat dat er niet veel gegevens zijn en dat snelheid geen probleem is, dus toegevoegde xml-functies, zoals gegevensvalidatie en manipulatie (ook, last but not least, de mogelijkheid om op de waarde te klikken in managementstudio en zie geformatteerde xml - ik ben echt dol op die functie!), weegt zwaarder dan de kosten.

Ik heb geen directe ervaring met het opslaan van grote hoeveelheden xml in de database en ik zou dat ook niet doen als ik de mogelijkheid had, aangezien het bijna altijd langzamer is dan een relationeel model, maar als dat het geval zou zijn, zou ik' d raad aan beide opties te profileren en te kiezen tussen grootte en snelheid die het beste bij uw behoeften passen.



  1. Hoe het verschil tussen twee datums in MySQL te berekenen?

  2. Het is beter om Cursor-adapter of Array-adapter te gebruiken

  3. CHARTOROWID() Functie in Oracle

  4. Hoe de DateTime()-functie werkt in SQLite