2010-02-18 2 views
1

레거시/프로덕션 데이터베이스가 있습니다. 10 년 이상 진화해온 웹 사이트를 지속적으로 개발하여 사용하고 있습니다. 데이터베이스는 perl cgi, php 및 java webapps와 같은 여러 기술을 통해 액세스 할 수 있습니다.테이블 액세스 메트릭을 얻기 위해 Oracle 10g를 계측하는 방법은 무엇입니까?

많은 균열이 쌓여 있습니다. 나는 주요 리팩토링을 수행하고 싶다. 나는 어떤 부분이 완전히 유산이라고 확신한다 (분명히있는 것은 제로 행을 가진 테이블이다). 어떤 부분이 가장 많이 사용되는지 결정하기 위해, 내가 선호하는 전략은 매우 많은 수의 잠재적 액세스 구성 요소를 거치지 않고 데이터베이스를 계측하는 것입니다.

oracle (10g)은 각 테이블에 트리거가 걸려 오는시기와 빈도를보고 할 수 있습니까? 다른 사람이 동일한 목표를 달성하기 위해이 작업을 수행하는 방법이나 다른 방법을 가르쳐 줄 수 있습니까?

(이 시나리오에서도 데이터베이스 리팩터링을 지원하는 다른 전략에 대한 제안 사항에 대해 의견을 말하십시오.)

답변

5

액세스 할 수있는 테이블을 알고 싶으면 (또는 자세한 내용을 원할지라도) 가장 쉬운 방법은 오라클의 기본 제공 AUDIT 기능을 사용하는 것입니다. Find out more.

일부 데이터베이스 개체는 분기 별 또는 일년에만 사용할 수 있습니다. 따라서 100 % 적용 범위에 해당하는 적절한 설명서 또는 회귀 테스트 세트가 필요합니다. 물론 이들 중 하나가 있다면 여기에 귀하의 질문을하지 않을 수도 있습니다 :)

+0

+1 그렇게 생각하지 마십시오 무언가가 그 당시의 마지막 X 금액에 액세스되지 않은해서 앞으로는 액세스 할 수 없습니다. –

+0

그리고 "unused"테이블이 예를 들어 pl/sql에 의해 참조되지 않는다고 가정하지 마십시오. 일부 PL/SQL은 % ROWTYPE 구문을 사용하여 변수 또는 콜렉션을 선언하는 것을 선호하여 TYPE 선언을 피할 수 있습니다. DBA_DEPENDENCIES 뷰는 어떤 정적 종속성이 존재하는지 보여줍니다. DBA_SOURCE를 검사하고 동적 인 의존성을 찾기 위해기도하는 것이 도움이되지 않습니다. –

1

10g이고 테이블에 대한 TABLE MONITORING이 켜져 있으면 DBA_ALL_TAB_MODIFICATIONS에 쉽게 액세스 할 수 있습니다.

마지막 분석 후 테이블에 대한 삽입, 업데이트 및 삭제의 대략적인 수를 포함하여 테이블 수정에 대한 정보가 있습니다.

회전 테이블에 대한 모니터링 및 비율 변화를 계산하는 쿼리에 대한 일부 정보는 여기에 있습니다 : link

관련 문제