title: Can anybody explain SQL Server 2005 table size
body: <p>I'm working with SQL Server 2005 and have a single table:</p>
  
  <pre><code>int Code1,
  int Code2, 
  real Val1,
  real Val2,
  real Val3,
  </code></pre>
  
  <p>Code1 &amp; Code2 serve as a primary key and are part of the clustered index (only one index).
  Each parameter occupies 4 bytes (each row occupies 20 bytes).</p>
  
  <p>There are 24.5 million records in the table, fill factor is 100%, the index occupies 2MB, and the page size is 4k.</p>
  
  <p>Assuming that each page is filled by as many records as possible then each page should hold 204 records which are 4080 bytes (%99.6 page fill)</p>
  
  <p>So, I would expect that the size the table occupies on the disk would be around 500MB (20 Bytes * 24.5 M records) but a fact is that the table occupies 773MB.</p>
  
  <p>I tried shrink and reindex but the table size didn't change.</p>
  
  <p>I'm no SQL expert, can anybody help?</p>