Çox böyük bir yerdə işləyərkən SQL Server mühitdə, təşkilatda heç kimin müəyyən bir verilənlər bazasından kimin istifadə etdiyini bilməməsi çox yaygındır. Bir neçə köhnə sistem varsa, bu ssenari çox yaygındır. Nə qədər effektiv olduğunuzu müəyyən etmək üçün bu məqaləni izləyin SQL Server verilənlər bazalarından istifadə olunur.
Metod 1:
Bu üsulda biz sp_who2-nin çıxışını oxuyacağıq və onu cədvəldə tutacağıq. İlk addım bu skriptdən istifadə edərək cədvəl yaratmaqdır.
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() );
Bu skripti a kimi planlaşdırın və icra edin SQL Server İş. Hədəf verilənlər bazamızın istifadə olunub-olunmadığını müəyyən etmək üçün istənilən vaxt jurnal cədvəlini nəzərdən keçirə bilərik.
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;
Metod 2:
Yuxarıdakı metoddan fərqli olaraq, əgər siz çox detallarla maraqlanmırsınızsa və sadəcə məlumat bazasının istifadədə olub-olmadığını bilmək istəyirsinizsə, bu skript ən uyğundur. Əgər istifadə edirsinizsə SQL Server 2014-cü ildən köhnə versiya ilə bu işləməyəcək. Bu skriptin çıxışı 3 sahə göstərir. Birinci sahələr verilənlər bazasının adı haqqında məlumat verir. Bu, bizim üçün əsas sahədir, çünki bu, hədəf verilənlər bazamızın istifadədə olub olmadığını müəyyən etməyə kömək edəcək. İkinci sahə verilənlər bazasına olan əlaqələri istifadəçi əlaqələri və SQL Server daxili əlaqələr. Son sütunda verilənlər bazasına qoşulmaların sayı göstərilir.
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;
Metod 3:
Məlumatı jurnal cədvəlinə köçürməzdən əvvəl, 1-ci üsulda verilənlər bazası adına filtr edə bilmərik. Lakin 2-ci və 3-cü üsulda bu mümkündür.
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;
Metod 4:

Verilənlər bazasını silin

Müəllif Giriş:
Neil Varley məlumatların bərpası üzrə mütəxəssisdir DataNumendaxil olmaqla məlumatların bərpası texnologiyaları üzrə dünya lideri olan , Inc Outlook pst məlumat səhvini təmir edin və excel bərpa proqram məhsulları. Ətraflı məlumat üçün ziyarət edin www.datanumen.com