Όταν εργάζεστε σε πολύ μεγάλο SQL Server περιβάλλον, είναι πολύ κοινό ότι κανείς στον οργανισμό δεν γνωρίζει ποιος χρησιμοποιεί μια συγκεκριμένη βάση δεδομένων. Αυτό το σενάριο είναι πολύ κοινό εάν υπάρχουν πολλά συστήματα παλαιού τύπου. Ακολουθήστε αυτό το άρθρο για να προσδιορίσετε πόσο αποτελεσματικά σας SQL Server χρησιμοποιούνται βάσεις δεδομένων.
Μέθοδος 1:
Σε αυτήν τη μέθοδο, θα διαβάσουμε την έξοδο του sp_who2 και θα την καταγράψουμε σε έναν πίνακα. Το πρώτο βήμα είναι να δημιουργήσετε τον πίνακα χρησιμοποιώντας αυτό το σενάριο.
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() );
Προγραμματίστε και εκτελέστε αυτό το σενάριο ως SQL Server Δουλειά. Μπορούμε να ελέγξουμε τον πίνακα καταγραφής ανά πάσα στιγμή για να προσδιορίσουμε εάν μας tarχρησιμοποιείται η βάση δεδομένων get.
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;
Μέθοδος 2:
Σε αντίθεση με την παραπάνω μέθοδο, εάν δεν σας ενδιαφέρουν πάρα πολλές λεπτομέρειες και απλά θέλετε να μάθετε εάν η βάση δεδομένων χρησιμοποιείται ή όχι, τότε αυτό το σενάριο είναι το καλύτερο. Εάν χρησιμοποιείτε SQL Server με έκδοση παλαιότερη από το 2014, τότε αυτό δεν θα λειτουργήσει. Η έξοδος αυτού του σεναρίου εμφανίζει 3 πεδία. Τα πρώτα πεδία παρέχουν πληροφορίες σχετικά με το όνομα της βάσης δεδομένων. Αυτό είναι το βασικό πεδίο για εμάς, καθώς αυτό θα μας βοηθήσει να εντοπίσουμε εάν μας tarχρησιμοποιείται η βάση δεδομένων. Το δεύτερο πεδίο θα μας βοηθήσει να ταξινομήσουμε τις συνδέσεις στη βάση δεδομένων ως συνδέσεις χρήστη έναντι SQL Server εσωτερικές συνδέσεις. Η τελευταία στήλη παραθέτει τον αριθμό των συνδέσεων στη βάση δεδομένων.
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;
Μέθοδος 3:
Πριν προωθήσουμε τα δεδομένα στον πίνακα καταγραφής, στη μέθοδο 1, δεν μπορούμε να κάνουμε ένα φίλτρο στο όνομα της βάσης δεδομένων. Ωστόσο, είναι δυνατό στη Μέθοδο 2 και στη Μέθοδο 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;
Μέθοδος 4:

Καταργήστε τη βάση δεδομένων

Εισαγωγή συγγραφέα:
Ο Neil Varley είναι ειδικός στην ανάκτηση δεδομένων στο DataNumen, Inc., η οποία είναι ο παγκόσμιος ηγέτης στις τεχνολογίες ανάκτησης δεδομένων, συμπεριλαμβανομένων επιδιορθώστε το σφάλμα δεδομένων pst του Outlook και υπερέχουν προϊόντα λογισμικού ανάκτησης. Για περισσότερες πληροφορίες επισκεφθείτε www.datanumen.com