분류 전체보기 25

[MSSQL] 14. 데이터 파일 사용률 조회

DB별 파일 그룹, 물리적 파일 위치(mdf, ndf, ldf), 파일 크기, 파일 안에서의 실제 사용률, 빈공간 등을 조회할 때 사용할 수 있습니다. IF OBJECT_ID(N'tempdb..#DB') IS NOT NULL BEGIN DROP TABLE #DB END CREATE TABLE #DB (name sysname, dbid smallint) INSERT INTO #DB (name, dbid) SELECT name, dbid FROM master.dbo.sysdatabases WHERE name not in ('master', 'msdb', 'model') GO DECLARE @dbname sysname DECLARE @min_dbid smallint DECLARE @SQL varchar(800..

SQL Server 2023.04.20

[MSSQL] 13. VLF 갯수 보는 쿼리

DB별 로그 사이즈, LDF 내 Log 사용률 등을 조회할 때 사용합니다. DBCC SQLPERF(LOGSPACE) GO 만약 DB별 Recovery Mode, VLF 갯수 등도 조회가 필요하다면 아래 쿼리도 사용 가능합니다. IF OBJECT_ID(N'tempdb..#LOGFILECNT') IS NOT NULL BEGIN DROP TABLE #LOGFILECNT; END CREATE TABLE #LOGFILECNT ( database_id INT ,dbname SYSNAME ,vlfcount INT ); INSERT INTO #LOGFILECNT (database_id, dbname, vlfcount) SELECT database_id, name, 0 AS vlfcount FROM sys.databas..

SQL Server 2023.04.20

[MSSQL] 11. 인스턴스 구성 정보 조회 쿼리

1. Machine Name 2. Instance Name 3. Server Name 4. Service Port 5. Service Account 6. Collation 7. Data Root Directory 8. CPU / Memory Spec 9. DBMS Version 위 메타 정보를 조회하는 쿼리입니다. DECLARE @HkeyLocal NVARCHAR(18) DECLARE @Instance1 VARCHAR(100) DECLARE @Instance2 VARCHAR(100) DECLARE @MSSqlServerRegPath NVARCHAR(200) DECLARE @PortNumber NVARCHAR(100) DECLARE @SQLDataRoot NVARCHAR(100) DECLARE @SQLPa..

SQL Server 2023.04.20

[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