DB튜닝
-
MSSQL tempDBDatabase 2020. 11. 26. 13:24
행수가 좀 많은 테이블에 어쩔수 없이 left join을 걸어서 산출물을 만들어야 하는 일이 생겼다. AI관련 데이터 전처리를 하는데 5초당 쌓이는 테이블과 결과 테이블 사이에 매칭을 할 수 있는 값이 없어서 datetime별로 조건을 걸어서 범위로 검색을 해야했다. 좋지 않은 쿼리 문장이기도 하고 left join 을 거니까 하루치 데이터를 산출하는데 실행 계획에서 조단위가 아닌 경단위를 넘어서는 행스캔을 하게 되었다. 해당 DB 서버는 성능이 일반 데스크탑 수준이었고 1시간정도 돌리니 tempDB 용량 부족으로 쿼리가 멈춰버렸다. 설정을 살펴보니 tempDB의 위치가 C드라이브 인데 C에 공간이 없었던것이 이유다. 그래서 tempDB에 대하여 검색을 하기 시작하고 일단 임시방편으로 tempDB의 파일..
-
MSSQL 세션 정보 확인Database 2020. 10. 26. 16:56
db가 갑자기 느려지는 경우 sp_lock 명령어로 세션을 확인한다. 실행 후 나오는 값에 대하여 아래와 같이 정리되어 있다. spid smallint 잠금을 요청하는 프로세스의 데이터베이스 엔진 세션 ID입니다. dbid smallint 잠금이 설정된 데이터베이스의 ID입니다. DB_NAME() 함수를 사용하여 데이터베이스를 식별할 수 있습니다. ObjId int 잠금이 설정된 개체의 ID입니다. 관련 데이터베이스에서 OBJECT_NAME() 함수를 사용하여 개체를 식별할 수 있습니다. 값 99는 특별한 경우로서 데이터베이스에서 페이지 할당을 기록하는 데 사용되는 시스템 페이지 중 하나에 대한 잠금을 나타냅니다. IndId smallint 잠금이 설정된 인덱스의 ID입니다. Type nchar (4) ..