Hoe u de gebruiksstatistieken van uw SQL Server Databases

Bij het werken in een zeer grote SQL Server omgeving, is het heel gebruikelijk dat niemand in de organisatie weet wie een bepaalde database gebruikt. Dit scenario is heel gebruikelijk als er meerdere legacysystemen zijn. Volg dit artikel om te bepalen hoe effectief uw SQL Server databases worden gebruikt.

Methode 1:

Bij deze methode gaan we de uitvoer van sp_who2 lezen en vastleggen in een tabel. De eerste stap is om de tabel te maken met behulp van dit script.

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) INTRIME, Sest-ID_ID_ID_IME, Sest-ID_ID_ID_IME, Sest.-ID_ID_ID_ KRIJG DATUM()    );

Plan en voer dit script uit als een SQL Server Job. We kunnen de logtabel op elk moment bekijken om te bepalen of onze target-database wordt gebruikt.

VOEG IN T1 (sessie_id, status_bericht, 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;

Methode 2:

In tegenstelling tot de bovenstaande methode, als u niet in teveel details geïnteresseerd bent en alleen wilt weten of de database in gebruik is of niet, dan is dit script de beste keuze. Als u SQL Server met een versie ouder dan 2014, dan zal dit niet werken. De output van dit script toont 3 velden. De eerste velden geven informatie over de databasenaam. Dit is het sleutelveld voor ons, aangezien dit ons zal helpen te identificeren of onze target-database is in gebruik. Het tweede veld helpt ons om de verbindingen met de database te classificeren als gebruikersverbindingen versus SQL Server interne verbindingen. In de laatste kolom staat het aantal verbindingen met de database.

SELECT DB_NAME (sys.dm_exec_sessions.database_id) AS [databasenaam], CASE WANNEER sys.dm_exec_sessions.is_user_process = 1 DAN 'JA' WANNEER sys.dm_exec_sessions.is_user_process = 0 DAN 'NEE' EINDE ALS [Is het een gebruikersverbinding?], COUNT (sys.dm_exec_sessions.session_id) AS [Aantal verbindingen] FROM sys.dm_exec_sessions GROEP BY DB_NAME (sys.dm_exec_sessions.database_id), sys.dm_exec_sessions.is_user_process ORDER BY 1, 2;

Methode 3:

Voordat we de gegevens in de logtabel pushen, in methode 1, kunnen we geen filter op de databasenaam uitvoeren. Het is echter mogelijk in methode 2 en methode 3.

SELECTEER t1.objtype AS [Object], t1.refcounts AS [ReferredCount], t1.usecounts AS [Gebruik], t1.size_in_bytes / 1024 AS [KB-grootte], db_name (t3.dbid) AS [DatabaseName] FROM sys.dm_exec_cached_plans t1 BUITEN TOEPASSING sys.dm_exec_text_query_plan (plan_handle, 0, - 1) t2 BUITEN TOEPASSING sys.dm_exec_sql_text (plan_handle) AS t3 WAAR db_name (t3.dbid) = 'DESP10_SandBox' ORDER BY t1.usecounts;

Methode 4:

SQL-profilerDeze methode is zeer krachtig bij het identificeren van databasegebruik, maar vergt veel middelen. Ja, we hebben het over profiler. Kies een sjabloon uit Profiler of gebruik een aangepast sjabloon en houd databaseverbindingen bij.

Verwijder de database

Verwijder de databaseAan de hand van bovenstaande methoden kunt u bepalen of uw database nog steeds wordt gebruikt of niet. Als u tot de conclusie komt dat het niet meer wordt gebruikt, kunt u het beste de respectievelijke teams laten weten dat het van de server zal worden verwijderd. Maak op een mooie dag een VOLLEDIGE back-up van deze ongebruikte database en verwijder deze van de server. Er moet voor worden gezorgd dat dit niet gebeurt corrupt SQL Server db tijdens dit proces.

Auteur Introductie:

Neil Varley is een expert op het gebied van gegevensherstel in DataNumen, Inc., de wereldleider in technologieën voor gegevensherstel, waaronder reparatie Outlook pst-gegevensfout en Excel-herstelsoftwareproducten. Voor meer informatie bezoek www.datanumen.com

Reacties zijn gesloten.