1) Sim, você pode ver o que está no cache de buffer do Sql Server (2005 e 2008) --- DEMO: contagem de buffers por objeto & index.sql --- Memória por objeto. --- quebrar os buffers por objeto (tabela, índice) SELECT b.database_id, database_name = CASE b.database_id QUANDO 32767 ENTÃO 'Recurso' ELSE db_name (b.database_id) END, p.object_id, Object_Name = object_name (p.object_id, database_id), p.index_id, buffer_count = count (*) FROM sys.allocation_units a JUNTAR sys.dm_os_buffer_descriptors b ON a.allocation_unit_id = b.allocation_unit_id JUNTAR sys.partitions p ON a.container_id = p.hobt_id WHERE object_id > 99 GROUP BY b.database_id, p.object_id, p.index_id ORDER BY buffer_count DESC
2) Você pode fixar tabelas no cache em 2005 - este recurso está sendo substituído em 2008 ... Acho que o algoritmo que o SQL Server usa para manter as tabelas quentes no cache é melhor que você decida que deseja fixar uma tabela no cache. O tempo seria melhor gasto na pesquisa.
3) Depende ......