• A common misconception is that table variables are always stored in memory. 

    http://support.microsoft.com/default.aspx?scid=kb;en-us;305977

    Q4: Are table variables memory-only structures that are assured better performance as compared to temporary or permanent tables, because they are maintained in a database that resides on the physical disk?

    A4: A table variable is not a memory-only structure. Because a table variable might hold more data than can fit in memory, it has to have a place on disk to store data. Table variables are created in the tempdb database similar to temporary tables. If memory is available, both table variables and temporary tables are created and processed while in memory (data cache).

    Generally I find that performance is good with table variables that store smaller amts of data.  A larger dataset usually runs better in a temp table.