작가 : 공지영

좀 예전에 나온 책이긴한데.. 한번 봐야지 하고 차일피일 미루던 책이다.
사실 그냥 제목이 촘.. 그래서.. 그닥 확 땡기진 않았는데..
도서관에 마침 있길래 내용도 보지 않고 그냥 집어서 빌린 책

뭐 공지영 작가 책을 첨 읽는 건 아니라.. 흡인력이 있는 ..
개인적으로 좋아하는 문체니.. ㅋㅋㅋ
사실 좀 꾸미는 문장들이 없진 않지만 그래도 이정도는.. ㅋㅋ
직설적으로 적은 책들을 좋아하다 보니.. ㅋㅋ

음.. 내용은 생각지도 못했던 그런 내용..
정말 생각없이 읽기 시작한 책인데...
주제가 다소 좀 놀란...
장애를 가지고 있는 아이들이 생활하는 보호 시설..
거기서 그 시설에 힘있는 자들이 행하는 폭력...
그리고 국가 공무원들의 만행... 돈..
실제로도 있을 법한 일..
아직 다 읽지는 못해서 결말까지는 모르겠지만..
현실에서는 정의가 모두 이기지는 못하지만.. 책.. 소설 속에서는 정의가 이길까?
지금 회산데... 사실 업무보다는 책이 땡긴다.. ㅋㅋㅋ

'Story > BookClub[1,000]' 카테고리의 다른 글

책 찾아볼꺼~  (0) 2012.02.01
[Book] 천년의 금서  (0) 2010.04.28
난 금성인....  (0) 2010.03.21
헌책방에서 찾아볼 책  (0) 2010.01.26
[Book]빨간머리앤이 어렸을 적에  (0) 2009.12.30

다른 부위에 비해 빼기가 쉽지 않아, 식이요법과 운동 병행해야 


허벅지 비만의 원인은 여러 가지입니다. 유전적인 요인, 혈액 순환 부족에 따른 노폐물 적체, 잘못된 식습관 등이 두꺼운 허벅지의 ‘창조자’입니다. 허벅지 살은 다른 부위에 비해 빼기가 쉽지 않습니다. 식이요법과 적절한 운동을 병행해야 합니다. 다음은 탄력 있고 날씬한 허벅지를 만드는 데 도움을 주는 동작입니다.

 

 

  • 두 무릎이 맞닿도록 앉았다 일어나기 반복

    두 발을 어깨 넓이로 벌린 뒤 무릎이 맞닿도록
    다리를 굽히며 천천히 앉았다가 일어납니다.

  • 두 다리 벌리고 앉았다 일어나기 반복

    1번 동작에 이어서 두 발끝을 몸 바깥쪽으로 향하게 한 뒤 천천히 앉았다 일어납니다.
    두 동작을 이어서 10여 차례 반복합니다.

  • 두 다리 벌리고, 한 쪽으로 허리 숙여주기

    두 발을 벌리고 선 뒤 상체를 왼쪽으로 틀어서
    두 손을 왼쪽 발쪽으로 따라 내려가면서 허리를 숙입니다. 이때 머리는 들어줍니다. 반대로도 합니다.
    서너 차례 반복합니다.

  • 고개는 세우고 상체 앞으로 숙이기

    두 발을 벌리고 서서 두 손을 제봉선을 따라서 내려가며
    상체를 앞으로 숙입니다. 이 때 머리는 정면을 향하고
    잠시 후에 상체를 천천히 일으킵니다.

  • 상체 뒤로 젖히기

    4번 동작에 이어서 두 손을 엉덩이 쪽에 갖다 대고
    오금쪽으로 내리면서 무릎을 편 채로 허벅지를 앞으로
    밀어 넣고 상체를 뒤로 젖힙니다.
    두 동작을 이어 서너 차례 반복합니다.


'Etc > Scrap' 카테고리의 다른 글

흙도 부드러워야 좋다  (1) 2010.05.04
비교  (1) 2010.04.29
당신의 길을 가라  (1) 2010.04.22
단 한 사람 때문에  (1) 2010.04.21
지금, 여기  (0) 2010.04.15
2.1 B-tree 인덱스
* B-tree 인덱스에 대한 개괄
- 데이터베이스에서 가장 많이 쓰이는 인덱스이다.
- 오라클의 경우 CREATE INDEX 명령어를 사용하여 생성된다.
- B-tree의 B는 Balanced의 약자로 트리의 맆노드의 깊이가 같다는 균형을 의미한다.  
- 검색시 걸리는 시간은 모든 데이터가 트리의 깊이 만큼 시간이 걸린다.

[참고] CREATE INDEX 문에 의하여 생성되는 인덱스
- Default - B-tree 인덱스
- 비트맵 인덱스
- Partitioned 인덱스
- 함수-기반 인덱스
- 도메인 인덱스

* B-tree의 성능
- B-tree의 검색 속도는 트리의 깊이 d에 의하여 좌우된다.
- 트리의 깊이 d는 데이터가 많아지면 깊어지지만 값이 크지 않아 큰 영향을 주지 않는다.
- 트리의 깊이 d를 줄이려면 브랜치블록 노드에 저장하는 key 값의 수 k를 늘린다.
- 키의값개수  k를 결정은 블록노드의 크기에 관계있으나 블록노드의 크기는 시스템의 디스크 블록의 크기와 관계가 있다.
  (즉 무한정 많이 저장할수는 없다)
- 깊이가 d인 B-tree에 저장되는 데이터 키 값의 전체 개수는 약 kd-1이다.
- 예를 들어 브랜치블록이 200개이고 깊이가 3인 B-tree에 저장할 수 있는 키값은 800만개이다.
  (무척 많이 저장할 수 있다. 실제 오라클에서 어느 정도 저장하는지?)
- 오라클의 경우 B-tree인덱스는 CREATE INDEX 명령어를 사용하여 생성된다.
- B-tree의 B는 Balanced의 약자로 트리의 맆노드의 깊이가 같다는 균형을 의미한다.  
- 검색시 걸리는 시간은 모든 데이터가 트리의 깊이만큼 시간이 걸린다.

2.1.1 B-tree 인덱스의 구조
- B-tree는 루트(root)블록, 브랜치(branch)블록, 리프(leaf)블록으로 구성된다.
- 인덱스 부분은 루트블록과 브랜치블록으로 같은 구조이다.
- 브랜치블록(이하 루트블록 포함)은 k개 이하의 키값을 저장한다.
- 브랜치블록은 k+1개의 자식 노드를 갖는다.
- 유일스캔 데이터검색은 루트노드부터 시작하여 검색키값과 브랜치블록 노드에 저장된 킷값을 비교하여 분기를하여 리프블록을 찾을 때까지 계속 내려간다.
- 범위검색은 먼저 시작하는 값을 유일스캔하여 해당 리프블록을 찾은 다음 리프블록만을 따라가며 검색한다.
* 튜플의 ROWID 길이 : 실험결과 책과달리 18자리임?, 예) AAAM3lAABAAAPCiAAA

<!--StartFragment-->

2.1.2 B-tree 인덱스의 조작
- B-tree 인덱스의 가장 큰 당면 문제는 데이터 삽입, 삭제 관리이다.

가) 인덱스 생성
- 비어있는 테이블에서 인덱스 생성은 간단히 루트블록만 생성하면된다.
- 그러나 사용중인 테이블에서의 인덱스를 생성할 경우?
  [그림 1-2-4 참조]
   (알고리즘)
   1. 데이터를 모두 정렬한다
   2. 데이터를 리프블록에 순서대로 저장을 시작한다.
   3. 리프블록이 2개 이상으로 늘어나기 시작하면 브랜치블록을 생성한다.
- 브랜치블록에 저장되는 킷값의 개수는 DB_BLOCK_SIZE가 클수록 PCTFREE 값이 작을수록 유리하며, 키값의 길이가 짧은 것이 유리하다.
- 키값의 길이를 줄이는 방법은 키값을 압축하는 방법이다.
  SQL문의 예)  CREATE INDEX ord_customer_idx
                      ON orders(customer_id, sales_id) COMPRESS 1;

나) 인덱스블록의 분할(데이터 삽입)
- 데이터의 삽입이 될 때 인덱스블록의 분할이 발생한다.
- 데이터가 삽입될때
  case 1 : 데이터블록이 여유가 있다(PCTFREE 값보다 작다)
    => 바로 저장(문제없음)
  case 2 : 데이터블록이 여유가 없다.
       case 21 : 데이터가 마지막 값이면[그림 1-2-5의 아래부분]
             => 새로운 블록을 생성하여 여기에 삽입된 데이터를 저장하고 상위 브랜치블록에 이 값을 전달
       case 22 : 데이터가 중간 값이면[그림 1-2-5의 위부분]
             => 블록을 2개로 균등 분할(새로들어간 데이터를 포함하여)하여 브랜치블록에 중간 키 값을 전달
        * case 21, 22에서 분할된 키값을 상위 브랜치블록에 전달했을 경우 만약 브랜치블록 또한
                   PCTFREE 값을 초과했을 경우에는 브랜치블록을 다시 분할하며 상위 브랜치블록에 다시 전달하며
                   이 과정이 루트블록에 도달항 때까지까지 진행된다.  
- 데이터의 삽입과 삭제가 빈번하다보면 저장공간의 활용의 효율성이 떨어질 수 있다
  이 경우는 인덱스를 재생성(rebuild) 한다.
  SQL 사용예) ALTER INDEX emp_index REBUILD ONLINE;

다) 데이터의 삭제및 갱신
- 데이터를 삭제할 경우는 삭제된 데이터의 위치에 삭제를 표시하는 flag로 해결한다.
- 데이터블록에 저장된 데이터가 모두 삭제될 경우는 상위 브랜치블록의 해당로우에 삭제 표시를 한다.
- 데이터의 삽입과 삭제가 빈번한 테이블은 정기적으로 인덱스를 재생성한다.
라) 인덱스를 경유한 검색
- B-tree 인덱스를 이용한 검색은 루트블록에서 시작한다.
- [그림 1-2-6의 예] col1+col2의 복합인덱스에서 col1=B and col2=ACC를 검색
  1. 루트블록을 검색한다. col1=B와 같거나 큰 브랜치블록 21를 찾았다.
  2. 21번 브랜치블록에서 col2=ACC에 해당하는 20번 데이터블록을 찾았다.
  3. 20번 데이터블록에서 Rowid 값을 찾는다.  
- 범위 검색일 경우는 위 과정에서 찾은 Rowid를 이용하여 데이터블록을 검색한다.

2.1.3 리버스 키 인덱스

- 데이터가 비슷한 킷값을 가지고 지속적으로 발생하는 경우 B-tree 인덱스에서 비슷한 영역에 계속 저장되게 된다.
  이렇게 되면 인덱스 구조가 비효율적일 수 있다.
- 이 문제를 해결하려면 키값을 역전(reverse) 시킨 다음에 인덱스에 저장하는 방법이 리버스키인덱스 방법이다.
- 동등(=) 검색이 아닌 LIKE, BETWEEN을 사용해야하는 경우는 불가능하다.
- 데이터 검색시 같은 브랜치블록에 접근이 몰리는 것을 피할 수 있다.  
- 인덱스를 생성할 때 NOSORT 옵션을 사용할 수없으며, 비트맵인덱스, 일체형인덱스에서는 사용할 수없는 단점이 있고, 실제 적용 사례는 많지 않다.

'Database > Oracle' 카테고리의 다른 글

비트맵 인덱스(Bitmap Index)  (0) 2010.04.28
함수기반 (Function Based) 인덱스의 활용  (0) 2010.04.28
Db file sequential read  (0) 2010.04.26
USER_CONS_COLUMNS  (0) 2010.04.22
DBA_USERS  (0) 2010.04.22

오라클은 사용자가 요청한 데이터가 SGA의 버퍼 캐쉬에 존재하지 않을 경우 서버 프로세스가 데이터 파일로부터 해당 데이터 블록을 버퍼 캐쉬로 로드한다. 이를 Conventional Path I/O라 한다. Conventional Path I/O는 멀티 블록 I/O 방식과 싱글 블록 I/O 방식으로 나뉘어지게 된다. 멀티블록 I/O 방식은 한 번에 여러 개의 연속된 블록을 읽어 들이는 작업을 수행하는 I/O이며, 싱글블록 I/O 방식은 한 번에 하나의 블록만 읽어 들이는 작업을 수행하는 I/O 이다.

오라클에서는 Conventional Path I/O가 발생하게 되면 두 가지의 대기 이벤트를 통해 멀티 블록 I/O가 발생하였는지 싱글 블록 I/O가 발생하였는지를 알 수 있도록 하였다. 이 두 가지 대기 이벤트가 db file sequential read / db file scattered read 이벤트이다. 해당 이벤트들은 오라클에서 가장 보편적으로 발생하는 대기 이벤트이다. 데이터 파일에서 블록을 읽으려면 멀티 블록 I/O나 싱글 블록 I/O를 수행할 수 밖에 없기 때문이다.

db file sequential read 이벤트는 싱글블록 I/O와 함께 발생하는 대기 이벤트이다. 한 번의 싱글블록 I/O가 발생할 때마다 한 번의 db file sequential read 이벤트 대기가 발생한다. 싱글 블록 I/O는 파일로부터 하나의 블록을 읽는 모든 작업들에서 발생 가능하다. 보통 인덱스 스캔, ROWID에 의한 테이블 스캔, 컨트롤 파일(Control file), 파일 헤더(File header)를 읽을 때 발생한다.


http://wiki.ex-em.com/index.php/Db_file_sequential_read

'Database > Oracle' 카테고리의 다른 글

함수기반 (Function Based) 인덱스의 활용  (0) 2010.04.28
비-트리 인덱스(B-Tree Index)  (0) 2010.04.27
USER_CONS_COLUMNS  (0) 2010.04.22
DBA_USERS  (0) 2010.04.22
DBA_TABLESPACES  (0) 2010.04.22

+ Recent posts