วันจันทร์ที่ 25 กรกฎาคม พ.ศ. 2554

คำสั่ง ดูรายงานข้อมูลในฐานข้อมูล Sqlserver

เนื่องจากระบบที่ผมดูแลอยู่มานาน ฐานข้อมูลเริ่มใหญ่ขึ้นเรื่อยจึงอยากทราบว่ามีตารางไหนบ้างที่มีจำนวน recode เยอะ มากจะได้clear โดยมีคำสั่งดังนี้

SELECT
    [TableName] = so.name,
    [RowCount] = MAX(si.rows)
FROM
    sysobjects so,
    sysindexes si
WHERE
    so.xtype = 'U'
    AND
    si.id = OBJECT_ID(so.name)
GROUP BY
    so.name
ORDER BY
    2 DESC


Check Query use CPU Time
<ที่มา:https://stackoverflow.com/questions/945063/how-do-i-find-out-what-is-hammering-my-sql-server>

SELECT TOP 20
    qs.sql_handle,
    qs.execution_count,
    qs.total_worker_time AS Total_CPU,
    total_CPU_inSeconds = --Converted from microseconds
        qs.total_worker_time/1000000,
    average_CPU_inSeconds = --Converted from microseconds
        (qs.total_worker_time/1000000) / qs.execution_count,
    qs.total_elapsed_time,
    total_elapsed_time_inSeconds = --Converted from microseconds
        qs.total_elapsed_time/1000000,
    st.text,
    qp.query_plan
FROM
    sys.dm_exec_query_stats AS qs
CROSS APPLY
    sys.dm_exec_sql_text(qs.sql_handle) AS st
CROSS APPLY
    sys.dm_exec_query_plan (qs.plan_handle) AS qp
ORDER BY
    qs.total_worker_time DESC