매우 큰 작업을 할 때 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 작업. 우리는 언제든지 로그 테이블을 검토하여 대상 데이터베이스가 사용되고 있는지 확인할 수 있습니다.
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년 이전 버전에서는 이 스크립트가 작동하지 않습니다. 이 스크립트의 출력은 세 개의 필드를 보여줍니다. 첫 번째 필드는 데이터베이스 이름에 대한 정보를 제공합니다. 이 필드는 대상 데이터베이스가 사용 중인지 확인하는 데 중요한 역할을 합니다. 두 번째 필드는 데이터베이스 연결을 사용자 연결과 서버 연결로 분류하는 데 사용됩니다. 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.는 다음과 같은 데이터 복구 기술 분야의 세계적 리더입니다. Outlook pst 데이터 오류 복구 그리고 엑셀 복구 소프트웨어 제품. 자세한 내용은 WWW.datanumen.COM