title: Should I Put An XML Blob Into A Separate Table?
body: <p>I'm designing a transactional table which will have a lot of records. It will have a lot of reads and writes.</p>
  
  <p>There will be one point at which the user uploads an XML file, and I store this in a database column of type XML.</p>
  
  <p>For a given transactional record, this XML will not be needed as often as everything else. It will probably only get read a couple of times, and will usually just get inserted and not updated.</p>
  
  <p>I'm wondering whether there is any advantage in storing this XML field in a separate table. Then, I can just join to it only when I need it. The only advantage that I perceive is that the individual records on the "main" table will take up less space. But, if my table is properly indexed, does that really even matter?</p>
  
  <p>I suspect that I'm overthinking this and being premature with my optimization. Should I just leave the XML field on the main table?</p>
  
  <p>One sample XML file I have is 12KB. I don't expect it to get much larger than that. I'm not sure if SQL Server's XML data type would store the information more efficiently than that.</p>
  
  <p>To clarify, it is a one-to-one relationship. There will be one XML blob for every transaction. There won't be one XML blob for multiple transactions. And every transaction should <em>eventually</em> get an XML blob, even if it's not immediate.</p>
  
  <p>Thanks,
  Tedderz</p>