PostgreSQL의 로깅되지 않은 表

로깅되지 않은 테이블이라고 정상 및 임시 테이블을 사이에 테이블 PostgreSQL을, 하나 개의 유형, 테이블도 로깅되지 않은 새로운 인덱스에 속하는 영구 데이터에 데이터를 기록하지 않습니다 테이블이 때 쓰기 - 기록 데이터베이스가 비정상적으로 종료되거나 충돌 이상 데이터 테이블이 잘라 내기를 할 것이다 (으), 로그 파일,하지만 몇 배 빠른 테이블에 정상 쓰기 성능보다됩니다.

표 정상 데이터 삽입 속도 차이가 로깅되지 않은 시험 하였다

uber_geocoder = # \ DT + 
                                      목록 관계
           스키마           |           이름           | 입력   |   소유자    |   크기   | 설명 
 - ------------------------ + ---------------------- - + ------- + ---------- + -------- + ------------- 
 uber_geocoder_tw_15q3_v2 | compiling_info          |   | 포스트 그레스 |  16 킬로바이트   |  
 uber_geocoder_tw_15q3_v2 | data_process_reports    |   | 포스트 그레스 |  16 킬로바이트   |  
 uber_geocoder_tw_15q3_v2 | 정보                    |   | 포스트 그레스 |  16 킬로바이트   |  
 uber_geocoder_tw_15q3_v2 | twn_addr_compact        |   | 포스트 그레스 |  (774) MB |  
( 4 행)

uber_geocoder = # 타이밍 \
타이밍 이다  . 
uber_geocoder
= # 작성 테이블 twn_addr_compact_loggod을 같은 선택 * 에서 twn_addr_compact; SELECT 258,902 시간 : 977250.581 밀리

일반 테이블의 경우에서 볼 수와 770M의 새로운 보간 데이터는 거의 16분했습니다 수 있습니다

로깅되지 않은 새 테이블 및 삽입 테스트 데이터 770M

uber_geocoder = # 생성 로깅되지 않은 테이블 twn_addr_compact_unloggod을 같은  선택  *  에서 twn_addr_compact;
SELECT  258,902 
시간 : 300683.321 밀리

이 5 분, 세번의 성능 향상과 동일한 조건 로깅되지 않은 테이블 삽입 속도에 따라 알 수있다.

 이자 포스트 그레스 프로세스를 죽일하고 데이터베이스를 시작할 수 있습니다, 당신은 방금 만든 우리가 손실 로깅되지 않은 데이터 테이블을 찾을 수 있습니다.

데이터베이스에있는 모든 현재 로깅되지 않은 테이블을 보는 방법

uber_geocoder = # 선택 n.nspname  SCHEMA_NAME, c.relname 같은 TABLE_NAME 에서 pg_catalog.pg_namespace의 N, C pg_catalog.pg_class 여기서 c.relnamespace = n.oid  n.nspname ! =  ' pg_toast '   c.relpersistence =  ' U ' ;
       SCHEMA_NAME         |         TABLE_NAME         
 - ------------------------ + ---------------------- ----- 
 edbstore                  | EMP
 uber_geocoder_tw_15q3_v2 | twn_addr_compact_unloggod
( 2 행)

당신이 배치를 수정해야하는 경우 어떻게 다음, 일반 테이블로 테이블을 로깅되지 않은 것

uber_geocoder = # 선택  ' 표를 ALTER ' || '  ' || CONCAT (n.nspname, ' . ' , c.relname) || '  ' || ' LOGGED 설정하고, '  AS convert_logged_sql 에서 pg_catalog.pg_namespace의 N, C pg_catalog.pg_class 여기서 c.relnamespace = n.oid  n.nspname ! =  ' pg_toast '   c.relpersistence =  ' U ' ;
                             convert_logged_sql                              
- ------------------------------------------------ --------------------------- 
 ALTER  TABLE의 edbstore.emp의 SET가 LOGGED;
 ALTER  TABLE의 uber_geocoder_tw_15q3_v2.twn_addr_compact_unloggod의 SET LOGGED을;
( 2 행)

 

추천

출처www.cnblogs.com/ilifeilong/p/11783565.html