자동 "테이블 분석"을 예약하는 방법은 무엇입니까? 많은 데이터가 삽입 및 삭제되는 동안 자동 "분석 테이블"을 요청할 수 있습니까? 자동 테이블 분석 프로세스의 매개 변수화, 즉 트리거되어야 할 규칙을 설정하는 방법은 무엇입니까?오라클 튜닝/분석 테이블
답변
"트리거되고이 일을 할 수있는 방법이 있나요 당신은 그 실행 할 수 있습니다 통계
BEGIN
dbms_stats.gather_table_stats(
ownname => <<schema name>>,
tabname => <<table name>>
);
END;
를 수집 할 수 있습니다 변경된 데이터 " 이론적으로 DBMS_STATS를 자동으로 설정하는 테이블에서 AFTER INSERT 트리거를 수행 할 수 있습니다.
하지만 원하는 것을 신중히 선택하십시오. 방금 백만 개의 행을 테이블에 삽입 한 대규모 ETL 작업의 중간에 있다면 DBMS_STATS 작업을 자동으로 즉시 자동으로 설정하고 싶지는 않습니다. 똑같이, 당신이 가장 바쁜 온라인 처리 시간 (예 : 점심 시간)에있을 때 동시에 통계를 수집하여 속도를 줄이고 싶지는 않습니다.
일반적으로 이러한 통계는 사용량이 적은 기간 (밤, 주말)에 작업을 수집하려고합니다. 많은 테이블로로드되는 큰 일괄 처리가 있다면 배치에 DBMS_STATS를 빌드합니다.
사용중인 Oracle 버전은 무엇입니까? 10.1 일부터 오라클은 매일 밤 통계가 변경된 이후 (변경 될 수있는 내부 알고리즘에 기반하여 임계 값이 15 %라고 생각 됨) 크게 변경된 모든 오브젝트에 대해 통계를 수집하는 자동 작업을 제공합니다 모였다. 현재 지원되는 릴리스를 사용한다고 가정하면, 명시 적으로 해당 작업을 사용 불가능하게하지 않는 한 통계는 기본적으로 자동 수집됩니다.
DBMS_STATS
패키지를 사용하여 이벤트를 기반으로 개체에 대한 통계를 수집하고 DBMS_JOB
(또는 DBMS_SCHEDULER
) 패키지를 사용하여 비동기 적으로 완료 할 수 있습니다. 상당 부분이있을 때 그래서 ETL 프로세스의 끝에서, 당신은 비동기 적으로
DECLARE
l_jobno INTEGER;
BEGIN
dbms_job.submit(
l_jobno,
'BEGIN dbms_stats.gather_table_stats(''<<schema name>>'', ''<<table name>>''); END;',
sysdate + interval '1' minute
);
END;
- 1. 오라클 - 테이블
- 2. DB2에 오라클 테이블 복사하기
- 3. 오라클 테이블 파티션
- 4. 오라클 10g의 플래시백 테이블
- 5. 오라클 데이터베이스 테이블 삽입
- 6. 오라클 스키마 테이블 이름 제한
- 7. 오라클 - 글로벌 임시 테이블 자르기
- 8. 오라클 중간 조인 테이블 크기
- 9. 오라클 테이블 데이터를 INSERT 문에 덤프하십시오.
- 10. 테이블 이름에 오라클 스크립트 변수를 사용하는 방법
- 11. 오라클 데이터베이스 XE에서 MySQL 테이블 생성
- 12. 오라클 APEX - 기본값을 사용하여 테이블 형식 설정
- 13. 오라클 테이블 동의어에서 Hibernate 스키마 검증 실패
- 14. 오라클 테이블 형식 레이아웃에서 행을 제어하는 방법
- 15. 오라클
- 16. 오라클 :
- 17. 오라클
- 18. 오라클 :
- 19. 오라클
- 20. 오라클
- 21. 오라클
- 22. 오라클 스키마
- 23. 오라클 쿼리는
- 24. 오라클 데이터베이스 복원
- 25. 오라클 감사
- 26. 테이블은 오라클
- 27. 오라클 트리거가 작동하지 않습니다
- 28. SQL 트리거는 오라클
- 29. 오라클 절차 대 오라클 패키지
- 30. n00b 오라클 질문
이 분석을 수행하는 작업을 예약하는 방법을 알고 있습니까? 상당한 비율의 데이터가 변경되었을 때, 즉 일정 기반이 아니라 이벤트 기반 일 때이 작업이 실행되도록하는 방법이 있습니까? – paweloque
하나의 테이블을 분석하기 위해 작업을 예약하는 간단한 예제를 포함하도록 답변을 업데이트했습니다. –