<p>I wish to perform an experiment many different times.  After every trial, I am left with a "large" set of output statistics -- let's say, 1000.  I would like to store the outputs of my experiments in a table, but what's the best way...?</p>

<h3>Option 1</h3>

<p>Have a table with 1000 columns.  Seems like a bad idea.  What if the number of statistics one day exceeds the maximum number of columns?</p>

<h3>Option 2</h3>

<p>Have a table with three columns.  Let's say, ID, StatisticType, and StatisticValue.  That way, you can have as many statistics as you want.  However, reading a single experiments statistics becomes more complicated.  Moreover, what if different statistics are different data types??</p>

<p>Any suggestions?</p>

Option 2, with ID, TrialID, StatisticID, StatisticValue
With proper indexing, it will perform fairly well (you can use PIVOT to get the values out on columns fairly easily in SQL Server 2005).
When the statistics are different datatypes, the problem becomes more interesting, but in many cases, I just up-size the datatype (sometimes ints just end up in the money field).  For other non-compatible types, the best design in my mind is really separate tables for each type, but I've also seen multiple columns or a free-form text column.