Çok büyük bir alanda çalışırken SQL Server ortamında, kuruluştaki hiç kimsenin belirli bir veritabanını kimin kullandığını bilmemesi çok yaygındır. Birden çok eski sistem varsa bu senaryo çok yaygındır. ne kadar etkili olduğunu belirlemek için bu makaleyi takip edin. SQL Server veritabanları kullanılmaktadır.
Yöntem 1:
Bu yöntemde sp_who2'nin çıktısını okuyacağız ve bir tabloya kaydedeceğiz. İlk adım, bu betiği kullanarak tabloyu oluşturmaktı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 komut dosyasını bir program olarak planlayın ve yürütün. SQL Server İş tamamlandı. Hedef veritabanımızın kullanılıp kullanılmadığını belirlemek için günlük tablosunu istediğimiz zaman inceleyebiliriz.
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;
Yöntem 2:
Yukarıdaki yöntemin aksine, çok fazla ayrıntıyla ilgilenmiyorsanız ve yalnızca veritabanının kullanımda olup olmadığını öğrenmek istiyorsanız, bu komut dosyası en uygunudur. Eğer kullanıyorsanız SQL Server 2014'ten daha eski bir sürüm kullanıyorsanız, bu çalışmaz. Bu komut dosyasının çıktısı 3 alan gösterir. İlk alan veritabanı adı hakkında bilgi verir. Bu bizim için anahtar alandır çünkü hedef veritabanımızın kullanımda olup olmadığını belirlememize yardımcı olacaktır. İkinci alan, veritabanına olan bağlantıları kullanıcı bağlantıları ve diğer bağlantılar olarak sınıflandırmamıza yardımcı olacaktır. SQL Server dahili bağlantılar. Son sütun, veritabanına bağlantı sayısını listeler.
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;
Yöntem 3:
Verileri günlük tablosuna göndermeden önce, yöntem 1'de veritabanı adına bir filtre uygulayamayız. Ancak Yöntem 2 ve Yöntem 3'te 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;
Yöntem 4:

veritabanını kaldır

Yazar Tanıtımı:
Neil Varley bir veri kurtarma uzmanıdır. DataNumendahil olmak üzere veri kurtarma teknolojilerinde dünya lideri olan , Inc. Outlook pst veri hatasını onar ve excel kurtarma yazılımı ürünleri. Daha fazla bilgi için ziyaret edin www.datanumen.com