반응형
BOOL InvalidateRect(HWND hWnd, CONST RECT *lpRect, BOOL bErase); 
▶hWnd:무효 영역을 설정할 윈도우의 핸들. NULL일 경우 모든 윈도우를 무효화한다.
▶lpRect:무효화할 영역. NULL이면 작업 영역 전체가 무효화된다.
▶bErase:무효 영역의 배경을 먼저 지울 것인가를 지정한다. TRUE이면 BeginPaint 함수가 배경을 먼저 지운 후 작업 영역을 그린다.

설명:WM_PAINT를 직접 호출하지는 않지만 특정 영역을 무효화하여 시스템이 WM_PAINT를 호출
시스템은 무효화 영역을 캐취하면 WM_PAINT를 호출한다. 직접 호출하지 않으니
시스템이 message queue에 있는 다른 메세지를 처리 후 WM_PAINT를 호출하므로 딜레이 발생.
참고: http://www.winapi.co.kr/reference/Function/InvalidateRect.htm

BOOL UpdateWindow(HWND hWnd);
▶ hWnd : 윈도우 핸들
윈도우 프로시저로 WM_PAINT 메시지를 보내 작업영역을 강제로 그리도록 한다.
다른 어떤 메시지보다 WM_PAINT를 먼저 처리해야 할 경우 이 함수를 호출하여 즉시 처리.
(메시지 큐를 통하지 않고 호출하므로 적용이 빠르다.)
작업영역을 완전히 다시 즉시 그리려면 InvalidateRect함수로 작업영역 무효화 후 이 함수 호출
참고: http://www.winapi.co.kr/reference/Function/UpdateWindow.htm
반응형

<출처: http://rayfeel.co.kr/63 >

※ 인덱스란?
  인덱스는 테이블이나 클러스트에서 쓰여지는 선택적인 객체로서, 오라클 데이터베이스 테이블내의
원하는 레코드를 빠르게 찾아갈 수 있도록 만들어진 데이터 구조
입니다.  

자동 인덱스 : 프라이머리 키 또는 uinque 제한 규칙에 의해 자동적으로 생성되는 인덱스 입니다.
수동 인덱스 : CREATE INDEX 명령을 실행해서 만드는 인덱스들 입니다.  

※  Index를 생성하는 것이 좋은 Column
① WHERE절이나 join조건 안에서 자주 사용되는 컬럼
② null 값이 많이 포함되어 있는 컬럼
③ WHERE절이나 join조건에서 자주 사용되는 두 개이상의 컬럼들
※  다음과 같은 경우에는 index 생성이 불필요 합니다.

① table이 작을 때
③ 테이블이 자주 갱신될 때

※  오라클 인덱스는 B-tree(binary search tree)에 대한 원리를 기반으로 하고 있습니다.
B-tree인덱스는 컬럼안에 독특한 데이터가 많을 때 가장 좋은 효과를 냅니다.
이 알고리즘 원리는
 ① 주어진 값을 리스트의 중간점에 있는 값과 비교합니다.     
     만약 그 값이 더 크면 리스트의 아래쪽 반을 버립니다.
     만약 그 값이 더 작다면 위쪽 반을 버립니다.
 ② 하나의 값이 발견될 때 까지 또는 리스트가 끝날 때까지 그와 같은 작업을 다른 반쪽에도
     반복합니다.

※  인덱스는 B-tree 구조를 가지며 크게 다음 네 가지로 분류될수 있습니다.
Bitmap 인덱스
  비트맵 인덱스는 각 컬럼에 대해 적은 개수의 독특한 값이 있을 경우에 가장 잘 작동합니다.
  그러므로 비트맵 인덱스는 B-tree 인덱스가 사용되지 않을 경우에서 성능을 향상 시킵니다.
  테이블이 매우 크거나 수정/변경이 잘 일어나지 않는 경우에 사용할수 있습니다.

SQL>CREATE BITMAP INDEX emp_deptno_indx
ON emp(deptno);

Unique 인덱스
  Unique 인덱스는 인덱스를 사용한 컬럼의 중복값들을 포함하지 않고 사용할 수 있는 장점이 있습니다.
프라이머리키 와 Unique 제약 조건시 생성되는 인덱스는 Unique 인덱스입니다.

SQL>CREATE UNIQUE INDEX emp_ename_indx
ON  emp(ename);

③ Non-Unique 인덱스
   Non-Unique 인덱스는 인덱스를 사용한 컬럼에 중복 데이터 값을 가질수 있습니다.

SQL>CREATE INDEX  dept_dname_indx
ON  dept(dname);

④ 결합 (Concatenated(=Composite)) 인덱스
   복수개의 컬럼에 생성할 수 있으며 복수키 인덱스가 가질수 있는 최대 컬럼값은 16개입니다

SQL>CREATE UNIQUE INDEX emp_empno_ename_indx
ON  emp(empno, ename);

※  인덱스의 삭제
 - 인덱스의 구조는 테이블과 독립적이므로 인덱스의 삭제는 테이블의 데이터에는 아무런 영향도 미치지
않습니다.
 - 인덱스를 삭제하려면 INDEX의 소유자이거나 DROP ANY INDEX권한을 가지고 있어야 합니다.
 - INDEX는 ALTER를 할 수 없습니다.
SQL>DROP INDEX emp_empno_ename_indx ;

※  인덱스에 대한 정보는 USER_INDEXES 뷰 또는 USER_IND_COLUMNS뷰를 통해 검색할 수
      있습니다.


반응형


포스팅에서 많이 언급했던 "인간 존재의 흥미로움"이란 글이 수록된 책이라고 한다.
그 문구를 읽었을때 가슴으로 동화하고 머리로써 많은 사색에 잠겼었다.
파울로 코엘료의 대표작이라고 할 수 있는 "연금술사"를 읽고 이 책을 꼭 읽어보고 싶어졌다.
그전에도 관심을 갖고 있었지만 코엘료의 책을 읽고 보니 더욱 읽어보고 싶은 맘이 들었다.

- 흐르는 강물처럼 中 -
 한 남자가 내 친구 제이미 코인에게 물었다.
"사람의 가장 우스운 점은 뭐라고 생각하십니까?"
코인이 대답했다.
"모순이죠. 어렸을 땐 어른이 되고 싶어 안달하다가도,
막상 어른이 되어서는 잃어버린 유년을 그리워해요.
돈을 버느라 건강 따위는 안중에도 없다가도,
훗날 건강을 되찾는데 전 재산을 투자합니다.
미래에 골몰하느라 현재를 소홀히 하다가,
결국에는 현재도 미래도 놓쳐버리고요.
영원히 죽지 않을 듯 살다가 살아보지도 못한 것처럼 죽어가죠."

// 2009.12.09  그냥 심란한 마음에 질러버렸다...^^

//2010.03.10
파울로 코엘료 책을 읽을 때마다 참 많은 것을 느끼게 해주는 것 같다.
그리고 많은 것들을 생각하게 하기도 한다. 그리고 자신의 상황에 빗대어 보고
자기가 생각하고자 하는 대로 해석을 하는 것 같기도 하다. 나의 경우에는 그러했다.
어느새 30대를 향하는 나에게 꿈과 현실사이의 기로에서 회피하던 나의 경우는 그러했다.
나를 되돌아 보고 내가 생각하고 싶은대로 의 하나의 꺼리가 되도록 해석해 나가는 것이다.
물론 작가의 의도 또한 그러할지도 모르겠다. 코엘료의 책은 가슴에 담을 이야기들이 많은것 같다.
책의 내용을 기억하기 보다 그 짧은 글 들이 이야기 하는 것들을 담는 것이다.
특히 "흐르는 강물처럼"은 흐르는 강물에 자신을 비추어 본다는 느낌으로 읽어 볼만한 책이다.
그리고 책 표지가 무엇보다 마음에 든다.. 나와 같은 생각을 갖는 사람이 있을것이라 생각해 본다.^^

+ Recent posts