MSSQL 19

[MSSQL] 10. 테이블 마지막 접근 시간(Access Time) 조회 쿼리

특정 테이블의 마지막 접근 시간(Access Time)을 조회하는 쿼리입니다. 해당 테이블이 사용되고 있는지, 미사용 테이블인지 대략적으로 확인할 때 사용할 수 있습니다. select DB_NAME(usage.database_id) AS db_name, schema_name, table_name, max(last_access) as last_access from( select sta.database_id as database_id, schema_name(schema_id) as schema_name, name as table_name, (select max(last_access) from (values(last_user_seek), (last_user_scan), (last_user_lookup), (l..

SQL Server 2023.04.14

[MSSQL] 7. 전체 인덱스 사용 여부 조회

sys.indexes DMV를 이용하여 각 DB별로 접속하여 조회하는 쿼리입니다. 아래 쿼리로 대략적으로 인덱스가 사용되고 있는지를 확인해볼 수 있습니다. 만약 인덱스가 불필요로 나와 삭제하려는 경우 세션 모니터링 등을 통해 삭제하려는 인덱스가 정말로 미사용 중인지 다시 한번 체크해야합니다. 그 이유는 sys.dm_db_index_usage_stats DMV가 메모리 상에만 존재하기 때문에(저장이 안되기 때문에) DB가 재기동된지 얼마 지나지 않았거나, 서버 메모리가 부족해 해당 DMV의 성능 정보가 Cached-Out되었으면 조회가 불가능하기 때문입니다. IF OBJECT_ID(N'tempdb..#DB') IS NOT NULL BEGIN DROP TABLE #DB END CREATE TABLE #DB ..

SQL Server 2023.04.14

[MSSQL] 3. SP 내에서 특정 문자열 찾기

1. 특정 DB 안에서만 찾을 경우 SELECT OBJECT_NAME(object_id), OBJECT_DEFINITION(object_id) FROM sys.procedures WHERE OBJECT_DEFINITION(object_id) LIKE '%MERGE%' 2. 장비 내에 모든 DB 대상으로 찾을 경우 DROP TABLE IF EXISTS #TblSearchProcedure GO SELECT TOP 0 OBJECT_NAME(object_id) AS _object_name, OBJECT_DEFINITION(object_id) as _object_definition INTO #TblSearchProcedure FROM sys.procedures WHERE OBJECT_DEFINITION(objec..

SQL Server 2023.04.14