Insert into select와create table as의 성능 테스트 및create table

4030 단어 oracle 독서 노트
Insert into select와create table as의 성능 테스트 및create table
1. 설명서
작업 중에 insert into select와create table as 문구로 폼 데이터 복제하기;복제표의 데이터 양이 매우 적을 때 두 문장의 효율 차이는 크지 않지만 표의 수량 등급이 백만 등급 이상에 달할 때 뚜렷한 효율 차이가 나타난다.
본 문서도 두 부분으로 나누어 보고서의 수량을 측정한다.
  • insert into select와create table as의 효율 테스트;
  • create table as 방법으로 성능을 조정할 때;

  • 2. Insert into select와create table as의 성능 테스트
    테스트 환경: ORACLE 버전: 10.2.0.2 PGA: 1G SGA: 1G 데이터베이스: 비아카이빙 모드
    2.1 create tables as의 테스트, 명령문:
    Create Table zz_J_3ABSSI as Select * From J_3ABSSI

    테스트 환경: 표 J3ABSSI 데이터는 74만 위안이고 이 표에는 인덱스가 없다.
    실행 시간: 280S
    2.2 Insert into select의 테스트, 문:
    Truncate Table zz_J_3abssi;truncateInsert Into zz_J_3abssi ("J_3ABSNR","J_3AHBSP","J_3ABSKZ","J_3AEBSP","WERKS","LIFNR","J_4KSCAT","MATNR","J_3ASIZE","MENGE","DABMG","IAMNG") Select "J_3ABSNR","J_3AHBSP","J_3ABSKZ","J_3AEBSP","WERKS","LIFNR","J_4KSCAT","MATNR","J_3ASIZE","MENGE","DABMG","IAMNG" From sapsr3."J_3ABSSI"

    실행 시간: 1255S
    2.3 요약:
    create table as는 insert into select보다 성능이 4배 이상 향상되었습니다.
    원리 분석:
    create table as는 ddl 문장이고 insert into select는 dml 문장이다. insert into select는 기록할 때마다 undo와 redo가 발생하는데 전체 과정은 create table as가 생성하는 redo와 undo에 비해 상당히 많기 때문에 전체 과정이 느린 것도 정상이다.그러나create table as가 사용하는 전제는 목표표의 구조가 존재하지 않아야만 사용할 수 있다는 것이다.
    대량의 데이터가 있을 때 Insert into as를 사용하는 것을 추천하지 않습니다. 왜냐하면 이 문장의 삽입 효율이 매우 느리기 때문입니다.
    2.4 확장:
    인터넷에서 친구가 테스트를 할 때 nologging과parallel 파라미터를 증가하여 해당하는 집행 효율을 높일 수 있다.그러나 실제 테스트에서 실제 효율이 향상되지 않은 것을 발견했다.
    nologging을 추가했지만 데이터베이스는 로그를 쓸 수 있습니다. 이 매개 변수는 직접 경로를 쓸 때만 유효합니다. 어떤 상황에서 데이터베이스가 직접 경로를 쓸 수 있는지에 대해 여러분은 인터넷에서 조회하시면 답을 알 수 있습니다.
    Parallell은 효율을 높이고 동생이 아직 이해하지 못했으니 아주머니들의 회답을 부탁합니다.
    3. create table as 성능 향상
    create table as의 방법으로 데이터를 복제하는 것을 확정했을 때 이 문장의 효율을 향상시키는 것이 계속 연구하는 방법이 되었다.
    3.1 분석 최적화 방법:
    두 단계로 구성된 create table as의 명령문입니다.
    단계1, 읽는 과정: 데이터를 sga에 디스크한 다음에 sga에서 pga까지(이때 pga가 크지 않으면 임시 테이블 공간에 쓰고 이 단계는 효율에 상당히 영향을 미친다).
    2단계, 쓰는 과정: 레드, undo를 쓴다.
    3.2 개선 방법
    a) sga와 pga의 크기를 늘리고 pga는 1g에서 3g으로 확대한다.sga 1g에서 3g으로 증가
    b) 현재 50M 개당 1G 개당 redo log 크기를 늘립니다.
    3.3 실험 검증
    a) redo log의 크기를 늘리는 것은 영향 속도가 크지 않지만 약간 향상된 것으로 나타났다(믿지 않는 친구는 테스트할 수 있다)
    b) sga와 pga의 크기를 증가하여 전체 복제의 속도를 뚜렷하게 향상시켰고 효과가 무섭게 10배 증가했다.(이곳에는 테스트 캡처를 붙이지 않습니다. 여러분이 직접 테스트해 보세요. 시계의 크기가 PGA보다 크면 효과가 비교적 뚜렷합니다.)
    다음으로 이동: Insert into select와create table as의 성능 테스트 및create table

    좋은 웹페이지 즐겨찾기