v$session과 주변 테이블 정리
오라클의 다이나믹 퍼포먼스 뷰인 v$session
과 v$process
, v$transaction
등 관련 테이블간의 연관 관계를 정리해봤다. 요즘은 Orange나 Toad와 같은 도구를 사용하기 때문에, 이런 테이블을 직접 조회할 일이 많지는 않지만, 가끔씩 아쉬울 때도 있다.
내 이 세상 도처에서 쉴 곳을 찾아보았으나, 마침내 찾아낸, 컴퓨터가 있는 구석방보다 나은 곳은 없더라.
오라클의 다이나믹 퍼포먼스 뷰인 v$session
과 v$process
, v$transaction
등 관련 테이블간의 연관 관계를 정리해봤다. 요즘은 Orange나 Toad와 같은 도구를 사용하기 때문에, 이런 테이블을 직접 조회할 일이 많지는 않지만, 가끔씩 아쉬울 때도 있다.
테이블 용량을 산정하기 위한 방법인데 조금 복잡하다. 어차피 추정이므로 간단하게 (평균 row 크기) × (데이터 건수) × 1.3 정도로 해도 되지 않을까 싶다.
다음과 같이 하면 exp/imp 도구를 사용해 특정 스키마의 DDL을 추출할 수 있다.
Oracle에서는 다음과 같이 connect by
절을 사용해 원하는 만큼 row를 만들어낼 수 있다.
오라클에 factorial
함수가 없지만 다음과 같이 구할 수 있다.
개발DB와 테스트DB, 또는 테스트DB와 운영DB간 인덱스를 비교할 때는 다음 쿼리를 사용할 수 있다.
프로젝트를 하다보면 개발DB와 테스트DB 또는 테스트DB와 운영DB간 스키마를 비교해 차이점이 없는지 확인할 일이 많다. 다음은 테이블과 컬럼을 비교하는 스크립트다.
현재 우리 운영DB는 db_files
파라미터 값이 매우 작게 잡혀있다. 따라서 빨리 값을 늘려줘야 하는데, 당장 운영중인 DB를 내리고 파라미터 값을 바꿀 수는 없다. 그런데 여기서 궁금증 하나 생겼다. db_files
는 데이터 파일 개수만 제한하는 것일까, 아니면 temp 파일도 여기에 포함되는 것일까? 혹시 온라인 리두로그는? 혹시 컨트롤 파일도 포함되는 것일까?
select한 결과를 shell에서 참조해야 하는 경우 다음과 같이 하면 된다.
문자열 자체에 &
가 포함되어 있는 경우 SQL*Plus에서 &
뒤의 단어를 변수로 인식해 그에 대한 값의 입력을 요구한다.