POSTGRESQL DB LOCK 관련 질문입니다. 0 3 773

by 후인구 [DB 기타] [2021.05.03 23:14:41]


ALTER TABLE test2 ADD COLUMN f_rate numeric;

기존 테이블에서 행 추가를 했는데 db lock이 발생합니다.

version은 9.6 입니다.

 


 

by pajama [2021.05.04 00:20:19]

Commit을 하지않아서 그런것 아닐까요?


by 후인구 [2021.05.04 01:38:09]

alter table은 commit과 상관없어요


by pajama [2021.05.04 07:30:18]

아래처럼 트랜잭션을 선언하거나 autocommit 모드가 아니면 alter table 이후 commit 전까지 다른 세션은 blocking 됩니다.

 

<세션1>
postgres=# begin;
BEGIN
postgres=# ALTER TABLE test ADD COLUMN f_rate numeric;
ALTER TABLE



<세션2>
postgres=# SELECT pid, relation::regclass, locktype, mode, granted FROM pg_locks WHERE locktype = 'relation';
  pid  | relation | locktype |        mode         | granted
-------+----------+----------+---------------------+---------
 15084 | pg_locks | relation | AccessShareLock     | t
 31913 | test     | relation | AccessExclusiveLock | t

 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입