title: The Best Way to shred XML data into SQL Server database columns
body: <p>What is the best way to shred XML data into various database columns? So far I have mainly been using the nodes and value functions like so:</p>
  
  <pre><code>INSERT INTO some_table (column1, column2, column3)
  SELECT
  Rows.n.value('(@column1)[1]', 'varchar(20)'),
  Rows.n.value('(@column2)[1]', 'nvarchar(100)'),
  Rows.n.value('(@column3)[1]', 'int'),
  FROM @xml.nodes('//Rows') Rows(n)
  </code></pre>
  
  <p>However I find that this is getting very slow for even moderate size xml data.</p>