• 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