Bagaimana Mendapatkan Statistik Penggunaan Anda SQL Server Database

Bagikan sekarang:

Saat bekerja di tempat yang sangat besar SQL Server lingkungan, sangat umum bahwa tidak ada seorang pun dalam organisasi yang mengetahui siapa yang menggunakan database tertentu. Skenario ini sangat umum jika ada beberapa sistem lama. Ikuti artikel ini untuk mengidentifikasi seberapa efektif file SQL Server database digunakan.

Metode 1:

Dalam metode ini, kita akan membaca output dari sp_who2 dan menangkapnya dalam sebuah tabel. Langkah pertama adalah membuat tabel 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()
    );

Jadwalkan dan jalankan skrip ini sebagai SQL Server Pekerjaan. Kita dapat meninjau tabel log kapan saja untuk mengidentifikasi apakah basis data target 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;

Metode 2:

Berbeda dengan metode di atas, jika Anda tidak tertarik pada terlalu banyak detail dan hanya ingin tahu apakah database sedang digunakan atau tidak, maka skrip ini paling cocok. Jika Anda menggunakan SQL Server Jika menggunakan versi yang lebih lama dari tahun 2014, maka ini tidak akan berfungsi. Output dari skrip ini menunjukkan 3 kolom. Kolom pertama memberikan informasi tentang nama basis data. Ini adalah kolom kunci bagi kita karena akan membantu kita mengidentifikasi apakah basis data target kita sedang digunakan. Kolom kedua akan membantu kita mengklasifikasikan koneksi ke basis data sebagai koneksi pengguna atau koneksi administrator. SQL Server koneksi internal. Kolom terakhir mencantumkan jumlah koneksi ke 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;

Metode 3:

Sebelum memasukkan data ke dalam tabel log, pada metode 1, kita tidak dapat melakukan filter pada nama database. Namun itu mungkin dalam Metode 2 dan Metode 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;

Metode 4:

Profiler SQLMetode ini sangat ampuh dalam mengidentifikasi penggunaan database tetapi sangat intensif sumber daya. Ya, kami berbicara tentang profiler. Pilih template dari Profiler atau gunakan template kustom dan lacak koneksi database.

Hapus database

Hapus DatabaseDari metode yang tercantum di atas, Anda akan dapat mengidentifikasi apakah database Anda masih digunakan atau tidak. Jika Anda sampai pada kesimpulan bahwa itu tidak digunakan lagi, praktik terbaiknya adalah memberi tahu masing-masing tim bahwa itu akan dihapus dari server. Pada hari yang cerah, ambil cadangan LENGKAP dari database yang tidak digunakan ini dan lepaskan dari server. Perhatian harus diberikan untuk tidak korup SQL Server db selama proses ini.

Pengantar Penulis:

Neil Varley adalah pakar pemulihan data di DataNumen, Inc., yang merupakan pemimpin dunia dalam teknologi pemulihan data, termasuk memperbaiki kesalahan data pst Outlook dan unggul dalam produk perangkat lunak pemulihan. Untuk informasi lebih lanjut kunjungi www.datanumen.com

Bagikan sekarang:

Komentar ditutup.