일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 프로그래머스 가장 긴 팰린드롬
- SWEA
- 등굣길 파이썬
- 베스트앨범 파이썬
- 반도체 설계 파이썬
- 백준 11054.가장 긴 바이토닉 부분 수열
- 프로그래머스 순위 파이썬
- 백준 1613 역사
- 백준 1043 거짓말 파이썬
- 다리 만들기 파이썬
- 프로그래머스 베스트앨범
- 프로그래머스 여행경로
- 백준 1167 트리의 지름 파이썬
- 트리의 지름 파이썬
- 역사 파이썬
- SQL SERVER 장비교체
- 다중 컬럼 NOT IN
- 램프 파이썬
- 백준 2146 다리 만들기
- 백준 1034 램프 파이썬
- SQL SERVER MIGRATION
- 가장 긴 바이토닉 부분 수열 파이썬
- 순위 파이썬
- 백준 1238 파티 파이썬
- 백준 1516 게임 개발
- 프로그래머스 순위
- 프로그래머스 등굣길
- 가장 긴 팰린드롬 파이썬
- 게임 개발 파이썬
- 백준 2352 반도체 설계 파이썬
- Today
- Total
목록공부/DATABASE (94)
공부, 기록

클러스터드 인덱스의 경우 테이블에 Sch-M 락을 요청한다.해당 락으로 인하여 Sch-S락을 필요로 하는 작업은 블락이 걸린다 (WITH NOLOCK 구문도 Sch-S 락을 요청한다) 논클러스터드 인덱스의 경우 테이블에 Sch-S와 S락을 요청한다.해당 락으로 인하여 단순 조회의 경우 블락이 걸리지 않는다 (S, NOLOCK 등) 아래는 공식 문서의 내용을 가져옴 참조https://learn.microsoft.com/ko-kr/sql/relational-databases/sql-server-transaction-locking-and-row-versioning-guide?view=sql-server-ver16

데이터, 로그 플러시와 커밋에 대해 헷갈리는 부분이 있어 정리하고자 한다. SQL SERVERSQL SERVER는 버퍼캐시라는 메모리 공간을 사용한다.위 아키텍처에서 확인할 수 있듯 버퍼캐시의 내용은 Lazy Write와 Cechk Point에 의해 Datafile로 동기화 된다.1. 데이터 파일은 버퍼캐시의 더티 캐시가 특정 주기 (CHECKPOINT)에 맞춰서 Datafiles로 Flush 된다.2. 로그는 데이터보다 먼저 쓰기 및 커밋이 되는데 이를 WAL 이라고 칭한다.WAL을 통하여 서버 장애로 인한 데이터 파일에 변경 내용이 저장이 되지 않은 커밋은 복구가 가능하다.데이터 변경 -> 로그 캐시 기록 -> 트랜잭션 로그 플러시 및 커밋 -> 더티 캐시 검사점에 의한 데이터 파일 플러시 공식 문서..

SP에서 Sort가 오래 걸리는 상황이 발생하여 정렬되는 기준으로 include 컬럼을 포함한 인덱스를 추가로 생성하였다. 기존 인덱스를 A 신규 인덱스를 B로 칭하면 A는 CREATE INDEX A ON TABLE_MINJAE (COL1, COL2 ) B는 CREATE INDEX B ON TABLE_MINJAE (COL1, COL2 ) INCLUDE (COL3) 인 상황. SP에서 지연되는 부분에 INDEX 힌트로 B 인덱스를 강제하였을 때 Sort 지연이 해소가 되었는데. 실행계획을 자세히 확인하였을 때 해당 인덱스가 아니었어도 동일하게 해소가 되어야 하는 상황으로 보였다. B 인덱스 힌트를 제거하고 A 인덱스 힌트를 사용하였을 때 성능이 다시 좋아진 것을 확인하였고 신규 생성한 인덱스 B를 제거하였..

DROP과 TRUNCATE는 실제 명령이 로그를 생성하지 않는다고 오해한다 하지만 일부 LOG가 생성이되고 (메타 데이터와 페이지, 익스텐트와의 연결을 끊는 상황) 백그라운드 프로세스의 지연된 삭제에 의해 트랜잭션 로그에는 익스텐트 삭제가 기록으로 남는다 일반적으로 테이블의 0.3~0.4%의 크기가 로그 파일에 기록이되고 기록된 로그는 AG, 미러링, 로그 복제의 경우 전달이 된다. 다만 백그라운드 프로세스에서 해당 삭제 처리는 하나의 트랜잭션이 아닌 여러개의 트랜잭션으로 나누어져서 처리가되어 큰 이슈는 없다고 한다.... TEST DROP TABLE ~~~ SELECT [Current LSN], [Operation], [Context], [Log Record Length], [Description] F..