Bagaimana Mendapatkan Statistik Penggunaan Anda SQL Server Pangkalan data lain

Kongsi Sekarang:

Semasa bekerja di tempat yang sangat besar SQL Server persekitaran, sangat umum bahawa tidak ada seorang pun dalam organisasi yang mengetahui siapa yang menggunakan pangkalan data tertentu. Senario ini sangat biasa jika terdapat banyak sistem warisan. Ikuti artikel ini untuk mengenal pasti seberapa berkesan anda SQL Server pangkalan data digunakan.

Kaedah 1:

Dalam kaedah ini, kita akan membaca output sp_who2 dan menangkapnya dalam jadual. Langkah pertama adalah membuat jadual menggunakan skrip ini.

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()
    );

Jadualkan dan laksanakan skrip ini sebagai SQL Server Kerja. Kita boleh menyemak jadual log pada bila-bila masa untuk mengenal pasti sama ada pangkalan data sasaran kita sedang digunakan.

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;

Kaedah 2:

Tidak seperti kaedah di atas, jika anda tidak terlalu berminat dengan perincian dan hanya ingin mengetahui sama ada pangkalan data digunakan atau tidak, maka skrip ini paling sesuai. Sekiranya anda menggunakan SQL Server dengan versi yang lebih lama daripada 2014, maka ini tidak akan berfungsi. Output skrip ini menunjukkan 3 medan. Medan pertama memberikan maklumat tentang nama pangkalan data. Ini adalah medan utama bagi kami kerana ini akan membantu kami mengenal pasti sama ada pangkalan data sasaran kami sedang digunakan. Medan kedua akan membantu kami mengklasifikasikan sambungan ke pangkalan data sebagai sambungan pengguna vs. SQL Server hubungan dalaman. Lajur terakhir menyenaraikan jumlah sambungan ke pangkalan data.

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;

Kaedah 3:

Sebelum memasukkan data ke dalam jadual log, dalam kaedah 1, kita tidak dapat melakukan penapis pada nama pangkalan data. Walau bagaimanapun, ini mungkin berlaku dalam Kaedah 2 dan Kaedah 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;

Kaedah 4:

Profil SQLKaedah ini sangat ampuh dalam mengenal pasti penggunaan pangkalan data tetapi sangat memerlukan sumber. Ya, kita bercakap mengenai profiler. Pilih templat dari Profiler atau gunakan templat khusus dan lacak sambungan pangkalan data.

Keluarkan pangkalan data

Keluarkan Pangkalan DataDari kaedah yang disenaraikan di atas, anda akan dapat mengenal pasti sama ada pangkalan data anda masih digunakan atau tidak. Sekiranya anda membuat kesimpulan bahawa ia tidak digunakan lagi, amalan terbaik adalah memberitahu pasukan masing-masing bahawa ia akan dikeluarkan dari pelayan. Pada hari yang baik, ambil sandaran LENGKAP pangkalan data yang tidak digunakan ini dan lepaskan dari pelayan. Penjagaan mesti diambil untuk tidak rasuah SQL Server db semasa proses ini.

Pengenalan Pengarang:

Neil Varley adalah pakar pemulihan data di DataNumen, Inc., yang merupakan pemimpin dunia dalam teknologi pemulihan data, termasuk membaiki ralat data pst Outlook dan produk perisian pemulihan yang unggul. Untuk maklumat lebih lanjut, lawati www.datanumen.com

Kongsi Sekarang:

Ruangan komen telah ditutup.