Paano Kunin ang Mga Istatistika ng Paggamit ng Iyong SQL Server Databases

Ipamahagi ngayon:

Kapag nagtatrabaho sa isang napakalaking SQL Server kapaligiran, napakakaraniwan na walang sinuman sa organisasyon ang nakakaalam kung sino ang gumagamit ng partikular na database. Ang sitwasyong ito ay napaka-pangkaraniwan kung mayroong maraming legacy system. Sundin ang artikulong ito upang matukoy kung gaano ka epektibo ang iyong SQL Server ginagamit ang mga database.

Pamamaraan 1:

Sa pamamaraang ito, babasahin natin ang output ng sp_who2 at kukunin ito sa isang talahanayan. Ang unang hakbang ay gumawa ng talahanayan gamit ang script na ito.

CREATE TABLE T1 (
    session_id INT
    ,status_message VARCHAR(1000) NULL
    ,login_name SYSNAME NULL
    ,Name_of_Host SYSNAME NULL
    ,Blocked_By SYSNAME NULL
    ,Database_Name SYSNAME NULL
    ,Script_description VARCHAR(1000) NULL
    ,CPU_Time INT NULL
    ,Disk_Input_Output INT NULL
    ,Last_Batch VARCHAR(1000) NULL
    ,Name_of_Program VARCHAR(1000) NULL
    ,Session_ID_2 INT
    ,ID_of_Request INT NULL
    ,Log_Date DATETIME DEFAULT GETDATE()
    );

Iskedyul at isagawa ang script na ito bilang a SQL Server Trabaho. Maaari nating suriin ang log table anumang oras upang matukoy kung ginagamit ang ating target na database.

INSERT INTO T1 (
    session_id
    ,status_message
    ,login_name
    ,Name_of_Host
    ,Blocked_By
    ,Database_Name
    ,Script_description
    ,CPU_Time
    ,Disk_Input_Output
    ,Last_Batch
    ,Name_of_Program
    ,Session_ID_2
    ,ID_of_Request
    )
EXECUTE sp_who2 active;

Pamamaraan 2:

Hindi tulad ng pamamaraan sa itaas, kung hindi ka interesado sa masyadong maraming mga detalye at gusto lang malaman kung ang database ay ginagamit o hindi, kung gayon ang script na ito ang pinakaangkop. Kung gumagamit ka SQL Server kung ang bersyon ay mas luma kaysa sa 2014, hindi ito gagana. Ang output ng script na ito ay nagpapakita ng 3 field. Ang mga unang field ay nagbibigay ng impormasyon tungkol sa pangalan ng database. Ito ang pangunahing field para sa amin dahil makakatulong ito sa amin na matukoy kung ginagamit ang aming target na database. Ang pangalawang field ay makakatulong sa amin na uriin ang mga koneksyon sa database bilang mga koneksyon ng user vs. SQL Server mga panloob na koneksyon. Ang huling column ay naglilista ng bilang ng mga koneksyon sa database.

SELECT DB_NAME(sys.dm_exec_sessions.database_id) AS [Database Name]
    ,CASE 
        WHEN sys.dm_exec_sessions.is_user_process = 1
            THEN 'YES'
        WHEN sys.dm_exec_sessions.is_user_process = 0
            THEN 'NO'
        END AS [Is it User connection?]
    ,COUNT(sys.dm_exec_sessions.session_id) AS [Connections Count]
FROM sys.dm_exec_sessions
GROUP BY DB_NAME(sys.dm_exec_sessions.database_id)
    ,sys.dm_exec_sessions.is_user_process
ORDER BY 1
    ,2;

Pamamaraan 3:

Bago itulak ang data sa log table, sa paraan 1, hindi kami makakagawa ng filter sa pangalan ng database. Gayunpaman ito ay posible sa Paraan 2 at Paraan 3.

SELECT t1.objtype AS [Object]
    ,t1.refcounts AS [ReferredCount]
    ,t1.usecounts AS [Usage]
    ,t1.size_in_bytes / 1024 AS [KB Size]
    ,db_name(t3.dbid) AS [DatabaseName]
FROM sys.dm_exec_cached_plans t1
OUTER APPLY sys.dm_exec_text_query_plan(plan_handle, 0, - 1) t2
OUTER APPLY sys.dm_exec_sql_text(plan_handle) AS t3
WHERE db_name(t3.dbid) = 'ERP10_SandBox'
ORDER BY t1.usecounts DESC;

Pamamaraan 4:

SQL ProfilerAng pamamaraang ito ay napakalakas sa pagtukoy sa paggamit ng database ngunit ito ay napakalakas ng mapagkukunan. Oo, pinag-uusapan natin ang tungkol sa profiler. Pumili ng template mula sa Profiler o gumamit ng custom na template at subaybayan ang mga koneksyon sa database.

Alisin ang database

Alisin ang DatabaseMula sa mga nakalistang pamamaraan sa itaas, matutukoy mo kung ang iyong database ay ginagamit pa rin o hindi. Kung dumating ka sa isang konklusyon na hindi na ito ginagamit, ang pinakamahusay na kasanayan ay ipaalam sa kani-kanilang mga koponan na ito ay aalisin mula sa server. Sa isang magandang araw, kumuha ng BUONG backup ng hindi nagamit na database na ito at i-drop ito mula sa server. Ang pag-iingat ay dapat gawin na hindi sira SQL Server db sa panahon ng prosesong ito.

Panimula ng May-akda:

Si Neil Varley ay isang dalubhasa sa pagbawi ng data sa DataNumen, Inc., na pinuno ng mundo sa mga teknolohiya sa pagbawi ng data, kasama ang ayusin ang Outlook pst data error at excel mga produkto ng pagbawi ng software. Para sa karagdagang impormasyon pagbisita www.datanumen. Sa

Ipamahagi ngayon:

Mga komento ay sarado.