Category Archives: SQL Server

MS-SQL

shirink file이란

SHRINKFILE은 SQL Server에서 데이터베이스 파일(예: MDF, NDF, LDF) 의 물리적인 크기를 줄이는 명령어입니다. 특히, 사용되지 않는 여유 공간(free space) 을 회수하여 파일 크기를 줄이는 데 사용됩니다. 📌 DBCC SHRINKFILE 이란? DBCC SHRINKFILE은 특정 데이터베이스 파일에서 사용하지 않는 공간을 반환하여 파일 크기를 줄이는 명령어입니다. 📚 문법: DBCC SHRINKFILE (logical_file_name, target_size_in_MB); 인자 설명 logical_file_name sys.database_files에 나오는 파일의… Read More »

Azure에서 Trucate후 압축한 후 Freespace 를 줄이는 방법

Azure SQL Database 또는 Azure SQL Managed Instance에서 TRUNCATE 후 데이터베이스 파일의 실제 크기(Freespace)를 줄이는 것은 일반적인 온프레미스 SQL Server와는 차이가 있습니다. ✅ 기본 개념 요약 작업 설명 TRUNCATE TABLE 테이블의 데이터를 빠르게 삭제하지만, 파일 크기(DB 공간)는 줄어들지 않음 DBCC SHRINKDATABASE / DBCC SHRINKFILE 사용하지 않는 공간을 줄임 (하지만 Azure에서는 주의 필요) Azure SQL 자동… Read More »

의심쿼리 찾는 법

MSSQL에서 Deadlock이나 성능 문제를 유발하는 “의심 쿼리” 를 찾으려면, 다음과 같은 진단 포인트를 중심으로 쿼리를 수집하고 분석할 수 있습니다. 🔍 1. 현재 실행 중이거나 블로킹 중인 쿼리 찾기 — 현재 실행 중이며 다른 세션을 블로킹 중인 쿼리 찾기 SELECT r.session_id, r.blocking_session_id, r.status, r.cpu_time, r.total_elapsed_time, r.wait_type, r.wait_time, r.wait_resource, SUBSTRING(t.text, (r.statement_start_offset / 2) + 1, ((CASE r.statement_end_offset… Read More »

DEAD LOCK을 모니터링할 수 있는 쿼리

MSSQL에서 Deadlock(교착 상태) 을 모니터링하거나 탐지하려면 다음과 같은 방법들을 사용할 수 있습니다: ✅ 1. Deadlock 모니터링용 기본 DMV 쿼리 — 현재 블로킹 또는 교착 상태 의심 세션 조회 SELECT r.session_id, r.status, r.command, r.blocking_session_id, r.wait_type, r.wait_time, r.wait_resource, t.text AS query_text, s.host_name, s.program_name, s.login_name FROM sys.dm_exec_requests r JOIN sys.dm_exec_sessions s ON r.session_id = s.session_id CROSS APPLY sys.dm_exec_sql_text(r.sql_handle)… Read More »

REPL SNAPSHOT 에러 원인과 해결방법

REPL SNAPSHOT 작업(= Snapshot Agent)이 실패하는 경우는 권한 문제, 디스크 경로 문제, 데이터 문제, 리플리케이션 설정 오류 등 다양한 이유로 발생할 수 있습니다. 이 작업은 초기 스냅샷 파일(테이블 스키마 + 데이터)을 생성해서 구독자에게 배포할 준비를 하는 핵심 프로세스입니다. 아래에 자주 발생하는 원인과 해결 방법을 정리해 드릴게요. ✅ Snapshot Agent 실패 주요 원인 및 해결 방법… Read More »

Exprired Subscribtion CleanUp에러이유

Expired Subscription Clean Up 작업이 실패하는 경우는 주로 리플리케이션 구성 문제, 권한 부족, 데이터 손상, 내부 시스템 오류 때문입니다. 이 작업은 만료된 구독(subscription) 을 제거하는 역할을 하며, 리플리케이션을 유지관리하는 데 중요합니다. ✅ 주요 원인 및 해결 방법 1. 구독자 정보 손상 또는 일치하지 않음 🛠️ 해결: 2. 배포자(Distributor)에 잘못된 연결 또는 설정 🛠️ 해결: 3.… Read More »

MSSQL Distribution CleanUp 에러나는 이유

MSSQL에서 Distribution CleanUp Job이 에러가 나는 이유는 여러 가지가 있을 수 있습니다. 이 작업은 Transactional Replication에서 오래된 트랜잭션을 정리(clean up)하는 중요한 역할을 합니다. 에러가 발생하는 주요 원인을 아래에 정리해 드릴게요. ✅ 주요 에러 원인 1. 에이전트 권한 부족 🛠️ 해결 방법: 2. 대량의 미처리된 트랜잭션 🛠️ 해결 방법: 3. 테이블 락 또는 블로킹 🛠️ 해결… Read More »

Mssql 데드락 발생시 락발생시킨 쿼리 찾는 방법

MSSQL에서 데드락(deadlock) 이 발생했을 때, 어떤 쿼리나 프로세스가 데드락을 유발했는지 찾는 방법은 다음과 같습니다. 🔍 1. SQL Server 데드락 확인 방법 요약 ✅ 방법 1: SQL Server 에이전트 로그 또는 시스템 헬스 세션(XE) SQL Server 2008 이상에서는 시스템 헬스 세션 (system_health extended event) 이 기본적으로 데드락 정보를 기록합니다. 💡 데드락 XML 조회 (가장 흔한 방법) — 최근 데드락 이벤트 추출… Read More »