본문 바로가기

SQL2

postgressql lock 조회 및 해제 postgressql lock 조회 및 해제 1. 현재 테이블의 LOCK 상태인 쿼리 확인 select t.relname,l.locktype,page,virtualtransaction,pid,mode,granted from pg_locks l, pg_stat_all_tables t where l.relation=t.relid order by relation asc; 현재 테이블의 lock을 확인한다. 이미 해당 쿼리를 조회하는 것이면, 전후 사정에 대한 이해도가 있기때문에 확인시 대략적으로 이놈이 문제구나 하는 쿼리를 찾을수 있었다. 여기서 pid를 확인하고 아래로 넘어가 해당 쿼리 session을 kill 할수 있다. 2. 해당 작업을 kill --PID 죽이기 select pg_cancel_backe.. 2022. 8. 23.
인덱스 리빌드(index rebuild) 성능개선의 원리!! 인덱스 리빌드의 이유 인덱스 파일은 생성후에 DML 을 만복하다보면 성능이 저하됨. 생성된 인덱스는 트리구조를 가지는데 DML 반복하다보면 트리의 한쪽이 무거워져 전체적인 트리의 깊이가 깊어짐. 첫번째 블럭 : 1 2 3 4 5 두번째 블럭 : 3 4 5 첫번째 블럭에서 3 4 5 를 delete문을 수행하면 논리적으로만 삭제임 다시 쓰면 인덱스에서 3 4 5 자리는 물고 있어서 다음 블럭에 3 4 5를 쓴다. 그래서 더 안 좋다. "인덱스리빌더"를 통해서 물고 있는 부분 회수가 가능하다 인덱스 리빌더 하면 성능이 호전되는 이유는 그것이라고 해요. 인덱스 리빌드의 구분 alter index "owner.index_name" rebuild; 작업이 완료된후 쿼리수행해서 index 가 조회되는.. 2021. 1. 1.