전체 글 331

Tree, TreeViewer 확장(expand)시 자식 동적 Contents 추가/수정 및 Refresh

내부적으로 사용하는 객체의 equals, hashcode 등이 잘 정의되었다고 가정 트리.addListener(SWT.Expand, new Listener() { public void handleEvent(Event e) { if (e.item.getData() instanceof 트리아이템데이터Class) { 트리아이템데이터Class 트리아이템데이터 = (트리아이템데이터Class)e.item.getData(); try { 트리아이템데이터 변경 또는 추가(자식값이면 내부 Map, Array등에 추가) 트리뷰.refresh(false); 트리뷰.expandToLevel(트리아이템데이터, TreeViewer.ALL_LEVELS); } catch(Exception ex) { ex.printStackTrace(..

카테고리 없음 2011.12.20

Parallel Distribution 이 잘 안되는 경우에 이렇게 하기... CASE 별로 내부 힌트 확인~

상황: 테이블 크기 A >> B A = B(+) GROUP BY A B가 훨씬 작기 때문에 broadcast 해야 효율적인데 outer join 관계라 driving(outer) table이 될수 없는데... 결론부터 말하면, 1. LEADING 이나 USE_HASH 등의 테이블 지정 순서는 원래 규칙대로 한다. (outer join 이라 driving 이 될 수 없는 규칙 그대로) 2. PQ_DISTRIBUTE 에도 1번 규칙대로 inner table을 B로 하되, inner 쪽 규칙을 broadcast 로 한다. 3. swap_join_inputs 를 B로 지정하여, driving(outer) table 순서만 바꿔준다. CASE 1) OK /*+ leading(A) use_hash(B) full(..

DB 2011.12.08

Oracle Parallel SQL Tuning 정리

1. 관련 파라미터 확인 (특히 Max DOP(degree of parallelism)) For a single instance, DOP = PARALLEL_THREADS_PER_CPU x CPU_COUNT For an Oracle RAC configuration, DOP = PARALLEL_THREADS_PER_CPU x CPU_COUNT x INSTANCE_COUNT Oracle RAC 환경의 경우, Oracle RAC services를 사용해서 특별히 node 개수를 한정하지 않는한 위의 공식이 적용된다고 한다. * 자동 여부 PARALLEL_DEGREE_POLICY : manual, auto, limited 확인 PARALLEL_MIN_TIME_THRESHOLD : plan 상 예측시간 이상시 p..

DB 2011.12.08