Kur punoni në një shumë të madhe SQL Server mjedisi, është shumë e zakonshme që askush në organizatë nuk e di se kush përdor një bazë të dhënash të caktuar. Ky skenar është shumë i zakonshëm nëse ka shumë sisteme të vjetra. Ndiqni këtë artikull për të identifikuar sa efektivisht jeni SQL Server përdoren bazat e të dhënave.
Metoda 1:
Në këtë metodë, ne do të lexojmë daljen e sp_who2 dhe do ta kapim atë në një tabelë. Hapi i parë është krijimi i tabelës duke përdorur këtë skript.
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() );
Programoni dhe ekzekutoni këtë skript si a SQL Server Punë. Ne mund ta shqyrtojmë tabelën e regjistrave në çdo kohë për të identifikuar nëse baza e të dhënave e synuar po përdoret.
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;
Metoda 2:
Ndryshe nga metoda e mësipërme, nëse nuk jeni të interesuar për shumë detaje dhe thjesht dëshironi të dini nëse baza e të dhënave është në përdorim apo jo, atëherë ky skenar është më i përshtatshmi. Nëse përdorni SQL Server me version më të vjetër se viti 2014, atëherë kjo nuk do të funksionojë. Rezultati i këtij skripti tregon 3 fusha. Fushat e para japin informacion në lidhje me emrin e bazës së të dhënave. Kjo është fusha kyçe për ne pasi kjo do të na ndihmojë të identifikojmë nëse baza e të dhënave e synuar është në përdorim. Fusha e dytë do të na ndihmojë të klasifikojmë lidhjet me bazën e të dhënave si lidhje përdoruesi kundrejt SQL Server lidhjet e brendshme. Kolona e fundit liston numrin e lidhjeve me bazën e të dhënave.
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;
Metoda 3:
Përpara se të shtyjmë të dhënat në tabelën e regjistrit, në metodën 1, ne nuk mund të bëjmë një filtër mbi emrin e bazës së të dhënave. Megjithatë është e mundur në Metoda 2 dhe Metoda 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;
Metoda 4:

Hiq bazën e të dhënave

Hyrje e autorit:
Neil Varley është një ekspert i rikuperimit të të dhënave në DataNumen, Inc., e cila është lider botëror në teknologjitë e rikuperimit të të dhënave, duke përfshirë riparimi i gabimit të të dhënave të Outlook PST dhe produkte softuerike të rimëkëmbjes excel. Për më shumë informacion vizitoni www.datanumen.com