For IO bottlenecks you need sys.dm_io_virtual_file_stats and sys.dm_io_pending_io_requests
For Memory pressure you can use sys.dm_os_buffer_descriptors, sys.dm_os_performance_counters and others.
The full grouped list of the dynamic views is here http://technet.microsoft.com/en-us/library/ms188754.aspx
For e.g. you can find the Page Life Expectancy using this query
SELECT
ple.[Node]
,LTRIM(STR([PageLife_S]/3600))+':'+REPLACE(STR([PageLife_S]%3600/60,2),SPACE(1),'0')+':'+REPLACE(STR([PageLife_S]%60,2),SPACE(1),'0') [PageLife]
,ple.[PageLife_S]
,dp.[DatabasePages] [BufferPool_Pages]
,CONVERT(DECIMAL(15,3),dp.[DatabasePages]*0.0078125) [BufferPool_MiB]
,CONVERT(DECIMAL(15,3),dp.[DatabasePages]*0.0078125/[PageLife_S]) [BufferPool_MiB_S]
FROM
(
SELECT [instance_name] [node],[cntr_value] [PageLife_S] FROM sys.dm_os_performance_counters
WHERE [counter_name] = 'Page life expectancy'
) ple
INNER JOIN
(
SELECT [instance_name] [node],[cntr_value] [DatabasePages] FROM sys.dm_os_performance_counters
WHERE [counter_name] = 'Database pages'
) dp ON ple.[node] = dp.[node]
Regards
IgorMi
Igor Micev,My blog: www.igormicev.com