DBMS 성능 테스트
지금까지 주로 Oracle을 사용해왔으나, 회사에서는 MySQL을 주로 사용하며 일부 시스템에서 PostgreSQL을 사용한다. MySQL을 사용하는 부분에서 지속적인 성능 문제가 발생하고 있는데, 이는 MySQL을 충분히 알지 못해 나타나는 문제일 수도 있다. MySQL을 사용하면서 지금까지 알고 있던 DBMS에 대한 지식(주로 Oracle에 대한)이 무용지물인 경우가 많았기 때문이다.
내 이 세상 도처에서 쉴 곳을 찾아보았으나, 마침내 찾아낸, 컴퓨터가 있는 구석방보다 나은 곳은 없더라.
지금까지 주로 Oracle을 사용해왔으나, 회사에서는 MySQL을 주로 사용하며 일부 시스템에서 PostgreSQL을 사용한다. MySQL을 사용하는 부분에서 지속적인 성능 문제가 발생하고 있는데, 이는 MySQL을 충분히 알지 못해 나타나는 문제일 수도 있다. MySQL을 사용하면서 지금까지 알고 있던 DBMS에 대한 지식(주로 Oracle에 대한)이 무용지물인 경우가 많았기 때문이다.
데이터베이스 링크를 만들 때 using
뒤에 다음과 같이 connect string을 직접 적어줄 수도 있다. 데이터베이스 링크만을 위해 tnsnames.ora
파일에 tnsalias
를 등록하지 않아도 되겠다.
우리나라 사람이라면 오래된 도자기에는 당연히 한자와 동양화가 그려져 있을 거라 생각할 것이다. 주위에서 그런 것밖에 보지 못하기 때문이다. 그러나 꼭 그러라는 법은 없다. 글자는 알파벳으로 쓰여 있고, 그림도 동양적인 것과는 전혀 다른 도자기도 있다. 아래 그림처럼.
나는 계획을 세워 여행하는 편은 아니다. 그냥 언제쯤 가야지 하고 생각하고 있다가 여건이 되면 한 1~2주 전부터 부랴부랴 준비를 한다. 즉흥적으로 여행을 결정하니 계획을 제대로 세울 리 없다. 잠 잘 호텔 예약하는 정도면 다행이다.
Oracle10g부터 추가된 AWR(Automatic Workload Repository) 기본 사용법이다.
dbms_metadata
패키지를 이용해 DDL 추출하는 방법이다. 특정 스키마의 모든 DB 객체에 대한 DDL을 추출하려면 export를 사용하는 것이 더 편하다. (특정 스키마의 DDL 추출 참조)
인덱스 용량을 산정하기 위한 방법인데 조금 복잡하다.
오라클의 다이나믹 퍼포먼스 뷰인 v$session
과 v$process
, v$transaction
등 관련 테이블간의 연관 관계를 정리해봤다. 요즘은 Orange나 Toad와 같은 도구를 사용하기 때문에, 이런 테이블을 직접 조회할 일이 많지는 않지만, 가끔씩 아쉬울 때도 있다.
테이블 용량을 산정하기 위한 방법인데 조금 복잡하다. 어차피 추정이므로 간단하게 (평균 row 크기) × (데이터 건수) × 1.3 정도로 해도 되지 않을까 싶다.
다음과 같이 하면 exp/imp 도구를 사용해 특정 스키마의 DDL을 추출할 수 있다.