SQL scripts commonly used by DBAs in production server environments:

Some SQL scripts commonly used by DBAs in production server environments:

Script to Monitor Blocking Queries:

SELECT

    r.session_id,

    r.blocking_session_id,

    t.text AS [SQL Text]

FROM

    sys.dm_exec_requests r

    CROSS APPLY sys.dm_exec_sql_text(r.sql_handle) t

WHERE

    r.blocking_session_id <> 0;

Script to Monitor Server Performance:

SELECT

    [object_name],

    [counter_name],

    [cntr_value]

FROM

    sys.dm_os_performance_counters

WHERE

    [object_name] LIKE '%:SQLServer%'

    AND [counter_name] IN ('Batch Requests/sec', 'Transactions/sec', 'User Connections')

ORDER BY

    [object_name], [counter_name];

Script to Identify Index Fragmentation:

SELECT

    dbschemas.[name] + '.' + dbtables.[name] AS [Table Name],

    dbindexes.[name] AS [Index Name],

    indexstats.avg_fragmentation_in_percent

FROM

    sys.dm_db_index_physical_stats(DB_ID(), NULL, NULL, NULL, NULL) AS indexstats

    INNER JOIN sys.tables dbtables ON dbtables.[object_id] = indexstats.[object_id]

    INNER JOIN sys.schemas dbschemas ON dbtables.[schema_id] = dbschemas.[schema_id]

    INNER JOIN sys.indexes AS dbindexes ON dbindexes.[object_id] = indexstats.[object_id] AND indexstats.index_id = dbindexes.index_id

WHERE

    indexstats.avg_fragmentation_in_percent > 10

ORDER BY

    indexstats.avg_fragmentation_in_percent DESC;

Script to Find High CPU Queries:

SELECT TOP 10

    total_worker_time/execution_count AS Avg_CPU_Time,

    total_worker_time AS Total_CPU_Time,

    execution_count,

    creation_time,

    last_execution_time,

    st.text AS [SQL Text]

FROM

    sys.dm_exec_query_stats AS qs

    CROSS APPLY sys.dm_exec_sql_text(qs.[sql_handle]) AS st

ORDER BY

    total_worker_time/execution_count DESC;

Script to Check Database Size and Space Usage:

EXEC sp_MSforeachdb '

    USE [?];

    SELECT

        DB_NAME() AS [Database Name],

        (size * 8) AS [Size (KB)],

        FILEGROUP_NAME(data_space_id) AS [Filegroup],

        name AS [Logical Name],

        (size * 8 - FILEPROPERTY(name, ''SpaceUsed'') * 8) AS [Unused Space (KB)]

    FROM

        sys.master_files

    WHERE

        type = 0;

    ';




Comments

Popular posts from this blog

Frequently Raised Errors in Log-Shipping

Welcome to my blog!