일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- 조인
- 인덱스
- 파티셔닝
- 개인연금저축펀드
- Linux
- 오렌지
- 백업및복구
- SQL Server
- 시스템 성능
- 주식
- VPC
- 리눅스
- AZURE
- oracle
- mysql error
- 오라클
- azure sql
- DBeaver
- 성능
- MySQL
- 애져
- AWS
- 펀드
- EC2
- DB
- 재테크
- 에러
- 투자
- RDS
- 데이터베이스
- Today
- Total
목록전체 글 (117)
미스터 역마살
♣ 파티셔닝 이란? 지속적으로 증가하가나 용량이 큰 테이블들을 파티션이라는 보다 작은 단위로 나눔으로써 성능이 저하되는 것을 방지하고 관리를 보다 수월하게 하고자 하는것을 파티셔닝이라고 한다. ♣ 파티셔닝이 필요한 이유 1) 관리적 측면 : 파티션 단위 백업, 추가, 삭제, 변경등 2) 성능적 측면 : 파티션 단위 조회 및 DML 수행. ♣ 파티션 기본구조 1) 수동파티셔닝 - 파티션 뷰를 통해 파티션 기능을 구현했으며 이를 수동 파티셔닝이라고 부른다. - 파티션 뷰의 핵심 기능은 뷰쿼리에 사용된 조건절에 부합하는 테이블만 읽는다는 데에 있으며, 이를 파티션 Pruning이라고 하며, 파티션 Pruning의 필수조건은 체크제약(Check constraint)을 설정 하는 것이다. 2) 파티션 테이블 - ..
1. 인덱스 사용이 불가능한 경우 - 인덱스 컬럼을 조건절에서 가공하면 정상적으로 인덱스 사용이 불가능 하다. - 부정형 비교또한 인덱스 사용이 불가능 하다. - IN NOT NULL 조건의 경우는 부정형 비교로 볼수 있다. 허나, 인덱스 범위 스캔이 불가능 하지만 인덱스 사용이 완전 불가능 한 것은 아니다. 오라클은 단일 컬럼 인덱스에 대해서는 NULL 값을 저장하지 않기 때문에 IN NOT NULL 조건의 컬럼이 단일 컬럼 인덱스 라면 INDEX FULL SCAN이 사용된다. - 또한 IS NULL 조건만으로도 검색시 정상적인 인덱스 사용이 불가능 하다. 하지만 NOT NULL 제약조건이 있는 경우 옵티마이저가 IS NULL 조건을 검색해도 만족하는 레코드가 하나도 없음을 알기에 INDEX RANGE..
오늘은 Orange를 이용하여 샘플데이터를 생성하는 법을 알아보자 1. 일단 먼저 오렌지 실행 후 계정접속을 한다. 2. 테스트 테이블을 생성한다. 3. Tools > Data Generation Tool 을 선택한다. 4. 더미데이터를 넣을 테이블이 속한 스키마를 선택한다. 5. Configuration에서 더미데이터를 넣을 테이블을 선택한다. 6. 각 컬럼마다 더미데이터의 포맷을 선택한다. 옵션 설명 1) If the Data exists on the table - 테이블에 데이터가 존재할 경우 3가지 옵션중 한가지 작업을 하고 Generation 할 것 인지 선택한다. 2) of Record to create - 총 몇개의 데이터를 생성할 것인지 지정한다. 선택하지 않으면 생성이 실행되지 않으므로 ..
해싱이란? 해싱은 키값에 연산을 통해 해당 키값에 할당된 항목에 직접 접근 가능한 구조를 말하며 이러한 자료구조를 해시테이블이라고 한다. 또한 해시테이블을 이용한 탐색을 해싱이라고 한다. 해시함수? 해시테이블에 데이터를 저장할때 여러 알고리즘을 통해서 데이터의 고유한 숫자값을 만들어 인덱스로 사용하게 되는데 이 알고리즘을 구현한 메소드를 해시 함수라고 한다. 해시함수의 알고리즘은 여러가지가 있지만 가장 기본적인 것! 나머지 연산법에 대해 알아보자. 예를 들어 "a", "b", "c"의 해시코드가 각각 97, 98 ,99 라고 하고 해시테이블의 크기가 10이라고 했을 때 테이블에 저장될 인덱스는 다음과 같다. 97 % 10 = 798 % 10 = 899 % 10 = 9 즉, Hash Table의 인덱스 7..
오늘은 UNION 과 UNION ALL 에 대해 알아보자 먼저 UNION 은 UNION DISTINCT의 줄여서 UNION이라고 한다고 생각한다. 따라서 중복제거 작업이 이루어지게 된다는 것이다. UNION의 특징에 대해 몇가지 알아보자 1. 두 테이블간의 결합시 사용하는 구문 2. 중복되는 값이 존재하지 않음 3. 중복을 제거하다보니 불가피하게 정렬작업을 하게됨 4. 그로인해 소트부하가 생겨 성능에 좋지 않음. 따라서 인덱스가 없거나 대용량 테이블간의 결합이라면 성능에 악영향 을 미치게 될 것이다. 하지만 UNION ALL의 경우는 중복을 허용하고 말그대로 테이블 두개를 딱! 하고 붙이는 것이기 때문에 정렬 작업이 일어나지 않는다. 예를 들어 이런 테이블이 있다고 할 경우 UNION ALL 의 경우 3..
IOT란 - 테이블을 찾아가기 위한 rowid를 갖는 일반 인덱스와는 달리 IOT는 모든행 데이터를 리프블록에 저장하고 있어 ROWID를 통한 랜덤 액세스가 일어나지 않는 테이블을 말한다. 한마디로 줄여서 말하면 "인덱스 리프블록이 곧 데이 터 블록인 테이블" 이다. 특징 - 일반적으로 테이블에 데이터 삽입시 랜덤방식으로 이루어 지지만 IOT는 인덱스 구조의 테이블 이므로 정렬된 상태를 유지하며 삽입된다. - 인위적으로 클러스터링 팩터를 좋게 만드는 방법 중 하나다. - 테이블 랜덤 액세스를 발생하지 않아 빠른 성능을 자랑한다. - 데이터 입력시 성능이 느리다. IOT 사용 기준 - 크기가 작고 NL조인의 반복 Look Up 하는 테이블 - 폭이 좁고 긴(행이 많은) 테이블 - 넓은 범위를 주로 검색하는..
- Hash 조인의 특징 1. Build Input의 크기가 작을때 효과적이다. ( PGA에 할당되는 Hash Area에 담길정도로 충분히 작아야 함) 2. 해시 키값으로 사용되는 컬럼에 중복값이 거의 없을때 효과적이다. ( Hash 알고리즘의 성능은 얼마나 Hash 충돌을 최소화 하느냐에 따라 달렸다.) -Hash 조인 선택 기준 1. 조인컬럼에 인덱스가 없어 비효율 적일때 2. 조인컬럼에 인덱스가 있더라도 NL조인 드라이빙 집합에서 Inner 쪽 집합의 조인 Access 양이 많아 Random Access 부하가 심할 때 3. Sort Merge 조인 하기에는 두 테이블이 너무 커 소트부하가 심할때 4. 수행빈도가 낮고 쿼리수행시간이 오래걸리는 대용향 테이블을 조인할 때 -끝-