MSSQL SHRINKFILE와 클라우드에서 용량이 줄지 않는 이유 USB로 DB를 옮겨야 했던 날, SHRINKFILE로 본 리소스 관리업무 중에 DB를 클라우드가 아닌 USB를 이용해 물리적으로 이동시켜야 할 일이 생겼다. 개발 서버에 데이터베이스를 백업한 뒤, DB 용량 줄이기에 들어갔다. 1. SHRINKFILE 후 8GB 이상의 차이용량을 줄이기 위해 전달될 필요가 없는 로그가 담긴 테이블이나 테스트용 테이블들을 모두 삭제하고 SHRINKFILE 명령어를 이용해 용량을 줄였는데, 이 과정에서 이상한 현상을 겪었다. 삭제하는 테이블은 거의 동일했고, 같은 DBCC SHRINKFILE(TRUNCATEONLY) 옵션을 사용했지만 어떻게 삭제하냐에 따라 SHRINKFILE 결과가 8GB 이상 차이 났던 것이다. 2. 삭제 방식에 따라 결과가 달랐다1) SSMS GU.. 2025. 7. 27. [MSSQL][SQL SERVER] SQL 성능 최적화: 캐싱과 동적 평가(Dynamic Evaluation)의 함정 연말연초라 그런지 프로그램 사용량이 늘어 성능 이슈가 늘었다. 업무상 성능 개선이 시급히 필요한 시점에서 SQL 튜닝을 하면서 새로 배운 점을 정리하고자 한다. (쿼리나 함수명, 변숫값은 예제로 새로 작성하였다.)문제의 쿼리: 병목WHERE a.Status LIKE '%' + @InputStatus + '%' -- 문제 부분실행계획을 분석해보니 위의 LIKE 연산자 조건 비교 부분에서 프로시저 전체의 56%에 달하는 비용이 발생하고 있었다. LIKE 연산자로 검색하려는 문자열의 앞에 '%'가 올 경우 인덱스를 활용하지 못한다. LIKE 조건에 일치하는 패턴을 찾아야 하는데 찾고자 하는 값이 문자열의 어느 부분에서 시작하는지 알 수 없으므로 전체를 스캔해야 하기 때문이다.@InputStatus는 'Orde.. 2025. 1. 5. 이전 1 다음