[MSSQL] SQL Server 잠금(LOCK)의 종류
·
코딩 공부 기록/SQL
격리 수준에 대해 공부하다가 잠금의 종류를 몰라서 내용 이해가 어려웠다.그래서 격리 수준 공부 중단하고 잠금부터 공부...를.............................. 1. 잠금의 종류1) 공유 잠금 (Shared Lock, S)데이터를 읽을 때 사용되는 잠금이다.  (SELECT문)여러 트랜잭션이 동시에 데이터를 읽을 수 있지만, 데이터에 대한 수정은 불가능하다.여러 트랜잭션이 동시에 공유 잠금을 가질 수 있지만, 공유 잠금 동안 해당 데이터에 대한 배타적 잠금은 허용되지 않음.  2) 배타적 잠금 (Exclusive Lock, X)데이터를 수정할 때 사용되는 잠금으로 INSERT, UPDATE, DELETE에서 사용된다.배타적 잠금이 설정된 데이터는 다른 트랜잭션이 읽거나 수정할 수 없고,..
[SQL] 인덱스 조각화
·
코딩 공부 기록/SQL
인덱스 조각화란?데이터의 삽입, 업데이트, 삭제와 같은 작업이 반복되면서 인덱스 페이지들이 물리적으로 비효율적인 상태로 변하는 현상이로 인해 데이터 검색 성능이 저하되고, 쿼리 실행 시간이 길어질 수 있다.조각화는 클러스터형 인덱스와 비클러스터형 인덱스에서 발생할 수 있는데, 1) 내부 조각화 와 2) 외부 조각화가 있다.  인덱스 조각화 발생 원인1. 데이터 삽입 : 새로운 데이터가 기존 페이지에 들어가지 못하고 새로운 페이지로 분산될 때.2. 데이터 삭제 : 삭제된 공간이 재사용되지 않고, 빈 공간으로 남아있는 경우.3. 데이터 업데이트 : 기존 데이터의 크기가 커져, 현재 페이지에 저장되지 못하고 다른 페이지로 이동할 때.4. 인덱스 재구성 부족 : 인덱스 생성 후, 오랜 기간 동안 인덱스를 재구성..
[MSSQL] 메모리 할당 최대/최소 설정
·
코딩 공부 기록/SQL
SQL을 사용하다 보면 조회 속도가 느리거나 성능이 떨어지는 경우가 있다.주로 메모리를 너무 많이 써서 부하가 걸리거나, 할당된 메모리가 너무 작아서 성능이 떨어지거나이다.      메모리 할당이 필요한 이유 1. 시스템 안정성 보장메모리 부족으로 다른 애플리케이션이나 OS가 영향을 받지 않도록 SQL Server의 메모리 사용을 제한한다. 2. 효율적인 자원 분배시스템 메모리를 SQL Server와 다른 프로세스 간에 균형 있게 분배하여 자원을 효율적으로 사용할 수 있게 한다. 3. SQL Server 성능 최적화충분한 메모리를 확보해 성능을 개선하고, 과도한 메모리 사용을 방지한다. 4. 메모리 누수 방지:SQL Server가 과도하게 메모리를 사용하는 것을 방지하여 시스템의 성능을 안정적으로 유지한..
데이터베이스 성능 분석 개요와 성능 튜닝 기초 개념
·
코딩 공부 기록/SQL
1. 데이터베이스 성능 분석 개요1.1 성능 튜닝의 목적성능 튜닝이란 데이터베이스 시스템이 효율적으로 동작하도록 개선하는 작업이다. 목표는 응답 속도 단축과 자원 사용 최적화에 있다.응답 시간(Response Time) 최적화: 쿼리가 반환되는 시간을 줄인다.처리량(Throughput) 증대: 단위 시간당 처리할 수 있는 트랜잭션을 증가시킨다.자원 사용 최적화: CPU, 메모리, I/O 같은 시스템 자원을 효율적으로 사용하여 과부하를 방지한다.1.2 데이터 처리 과정 이해SQL 문장 실행 절차SQL 파싱: SQL 문장을 구문 분석해 실행 계획을 수립한다.최적화: 다양한 실행 계획 중 비용이 가장 낮은 계획을 선택한다.실행: 선택된 실행 계획에 따라 데이터를 가져온다.결과 반환: 최종 결과가 클라이언트에 ..