Pri práci vo veľmi veľkom SQL Server prostredí, je veľmi bežné, že nikto v organizácii nevie, kto používa konkrétnu databázu. Tento scenár je veľmi častý, ak existuje viac starších systémov. Postupujte podľa tohto článku a zistite, ako efektívne je vaše SQL Server používajú sa databázy.
Metóda 1:
V tejto metóde budeme čítať výstup sp_who2 a zaznamenávať ho do tabuľky. Prvým krokom je vytvorenie tabuľky pomocou tohto skriptu.
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() );
Naplánujte a vykonajte tento skript ako a SQL Server Úloha. Tabuľku protokolov môžeme kedykoľvek skontrolovať, aby sme zistili, či sa naša cieľová databáza používa.
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;
Metóda 2:
Na rozdiel od vyššie uvedenej metódy, ak vás nezaujíma príliš veľa podrobností a chcete len vedieť, či sa databáza používa alebo nie, potom je tento skript najvhodnejší. Ak používate SQL Server s verziou staršou ako 2014 to nebude fungovať. Výstup tohto skriptu zobrazuje 3 polia. Prvé pole poskytuje informácie o názve databázy. Toto je pre nás kľúčové pole, pretože nám pomôže identifikovať, či sa naša cieľová databáza používa. Druhé pole nám pomôže klasifikovať pripojenia k databáze ako používateľské pripojenia vs. SQL Server vnútorné spojenia. V poslednom stĺpci je uvedený počet pripojení k databáze.
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;
Metóda 3:
Pred vložením údajov do tabuľky denníkov v metóde 1 nemôžeme urobiť filter na názov databázy. Je to však možné v metóde 2 a metóde 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;
Metóda 4:

Odstráňte databázu

Úvod autora:
Neil Varley je odborníkom na obnovu dát v odbore DataNumen, Inc., ktorá je svetovým lídrom v oblasti technológií obnovy dát, vrátane opraviť chybu údajov pst v programe Outlook a vynikajúce softvérové produkty na obnovenie. Pre viac informácií navštívte www.datanumen. S