Töötades väga suures SQL Server keskkonnas, on väga tavaline, et keegi organisatsioonis ei tea, kes konkreetset andmebaasi kasutab. See stsenaarium on väga levinud, kui on olemas mitu pärandsüsteemi. Järgige seda artiklit, et teha kindlaks, kui tõhusalt teie SQL Server kasutatakse andmebaase.
Meetod 1:
Selle meetodi puhul loeme sp_who2 väljundit ja jäädvustame selle tabelisse. Esimene samm on tabeli loomine selle skripti abil.
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() );
Planeerige ja käivitage see skript kui a SQL Server Töö. Saame logitabeli igal ajal üle vaadata, et teha kindlaks, kas meie tarGet andmebaasi kasutatakse.
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;
Meetod 2:
Erinevalt ülaltoodud meetodist, kui teid ei huvita liiga palju üksikasju ja soovite lihtsalt teada, kas andmebaas on kasutusel või mitte, sobib see skript kõige paremini. Kui kasutate SQL Server versiooniga, mis on vanem kui 2014, siis see ei tööta. Selle skripti väljund näitab 3 välja. Esimesed väljad annavad teavet andmebaasi nime kohta. See on meie jaoks võtmevaldkond, kuna see aitab meil kindlaks teha, kas meie target andmebaas on kasutusel. Teine väli aitab meil klassifitseerida ühendusi andmebaasiga kasutajate ühendusteks vs SQL Server sisemised ühendused. Viimases veerus on andmebaasiga ühenduste arv.
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;
Meetod 3:
Enne andmete logitabelisse surumist ei saa me 1. meetodi puhul andmebaasi nime filtrit teha. Kuid see on võimalik 2. ja 3. meetodi puhul.
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;
Meetod 4:

Eemaldage andmebaas

Autori sissejuhatus:
Neil Varley on andmete taastamise ekspert DataNumen, Inc., mis on maailmas juhtiv andmete taastamise tehnoloogiate, sealhulgas Outlook pst andmete vea parandamine ja Exceli taastamise tarkvaratooted. Lisateabe saamiseks külastage www.datanumenCom