• This is probably very general advice, but it's what's worked for me as far as learning goes :-). First, in your dev environment, try to create a giant lump of data by using a method such as the one in this article:

    http://weblogs.sqlteam.com/joew/archive/2008/02/06/60490.aspx

    That should give you a rather large heap of data, completely free of indexes and such. Once you have that basic framework, try adding some additional components; perhaps a DateCreated column for each name that you'll have in that table, and then think of a way to generate the dates. Add more columns and populate them as needed, possibly with purchase values, occasional notes on some of the names, and so on.

    Once all of this is set up, go ahead and try to retrieve data that a company would want; say, who the biggest spenders are, what days they shopped on, what day has the most sales, and other similar scenarios. The important part for you here, it seems, is not so much figuring out how to get that data; you've said you're good at querying as it is, so that should be the easy part. The major step here is to look at the execution plans for the queries you cook up to get that data. With about 14 million rows, the effects of performance tuning will be quite noticeable once you've got it worked out, and if you can get even more rows tossed in there, the effects will be magnified that much further. Any faults with performance outside of the query and table design should also be made manifest in the process, and you should be able to experiment happily with indexes and tuning to see what makes the biggest impact with the fewest tradeoffs.

    Mostly, that's how I've been practicing at my current job, where I've been the DBA for almost a year now. My practice runs have been done with a dev copy of our data, though, so I've got things like dates and other values already set in. From this, though, I've been able to formulate test cases to dig up information I was merely interested about, such as finding out what year was out best year for sales, what items we have are the most profitable ones, the slowest months we have each year, typical variance in profits from month to month, and so on.

    This is probably quite basic advice, but I've been browsing these forums regularly and trying to apply problems I see brought up by others to my dev environment, and I've learned a ton from all the testing :-).

    - 😀