DBA

· DBA
인덱스 데이터베이스에서 인덱스 없이 검색하려면, 테이블을 처음부터 끝까지 모두 읽어야한다. 반면, 인덱스를 이용하면 일부만 읽고 멈출 수 있다. 범위 스캔(Range Scan)이 가능하며 가능한 이유는 인덱스는 정렬 돼있기 때문이다. ​DBMS는 일반적으로 B-Tree 인덱스를 사용한다. 상단에 Root 블록, 중간에 Branch 블록, 맨 아래 Leaf 블록이 있다.루트와 브랜치 블록에 있는 각 레코들은 하위 블록에 대한 주소값을 갖는다.루트와 브랜치 블록엔 키값을 갖지 않는 특별한 레코드가 있다. 이를 'LMC'라고 하며 'Leftmost Child'의 줄임말이다. LMC는 자식 노드 중 가장 왼쪽 끝에 위치한 블록을 가리킨다. LMC가 가리키는 주소로 찾아간 블록에는 키 값을 가진 첫 번째 레코드보..
· DBA
HASH JOIN이란?HASH 조인은 조인될 두 테이블 중 하나를 해시 테이블로 선정하여 조인될 테이블의 조인 키 값을 해시 알고리즘으로 비교하여 매치되는 결과값을 얻는 방식입니다. HASH JOIN은 비용 기반 옵티마이저를 사용할 때만 사용될 수 있는 조인 방식이며 '=' 비교를 통한 조인에서만 사용될 수 있습니다. 주로 많은 양의 데이터를 조인해야 하는 경우에 주로 사용됩니다. HASH JOIN의 사용처1. JOIN 컬럼에 적당한 인덱스가 없어 NL JOIN이 비효율적일 때2. JOIN Access량이 많아 Random Access 부하가 심하여 NL JOIN이 비효율적일 때3. Sort Merge Join을 하기에는 두 테이블이 너무 커 Sort 부하가 심할 때4. 수행빈도가 낮고 쿼리 수행 시간이..
· DBA
NESTED LOOP JOIN이란? 줄여서 NL JOIN이라고도 불리는 NESTED LOOP JOIN은 2개 이상의 테이블에서 하나의 집합을 기준으로 순차적으로 상대방 Row를 결합하여 원하는 결과를 조합하는 조인 방식입니다. 조인해야 할 데이터가 많지 않은 경우에 유용하게 사용됩니다. NESTED LOOP JOIN은 드라이빙 테이블로 한 테이블을 선정하고 이 테이블로부터 where절에 정의된 검색 조건을 만족하는 데이터들을 걸러낸 후, 이 값을 가지고 조인 대상 테이블을 반복적으로 검색하면서 조인 조건을 만족하는 최종 결과값을 얻어냅니다. Driving Table 과 Driven TableDriving Table이란 JOIN을 할 때 먼저 액세스 되어 ACCESS PATH를 주도하는 테이블을 Drivi..
· DBA
1. 데이터베이스 샤딩의 개념데이터베이스 샤딩(Database Sharding)은 일괄적 관리가 힘든 거대 데이터베이스나 네트워크를 작게 분할하여 저장하여 관리하는 방법입니다. 데이터베이스의 성능과 확장성을 향상 시키는데 중요한 역할을 합니다. 샤딩을 통해 데이터베이스의 부하를 여러 서버로 분산하여 전체 데이터베이스 시스템의 처리량과 성능을 향상시킵니다. 샤드는 샤딩을 통해 분할된 데이터 조각으로, 분산 데이터의 저장 공간을 의미합니다. 샤드 서버에는 각각 일을 분배하는 라우팅 기능을 가진 몽고가 존재합니다. 이와 동일한 메커니즘을 지닌 데이터베이스 샤딩은 주로 대용량 데이터를 처리해야 하는 웹 애플리케이션, 소셜 네트워크 서비스, 온라인 게임 등에서 사용됩니다. 활용되는 분야에 따라 데이터베이스 샤딩,..
· DBA
--ORACLE SELECT * FROM v$version; --MySQL SELECT version(); --TIBERO SELECT * FROM v$version WHERE NAME = 'TB_MAJOR' OR NAME = 'TB_MINOR'; --MSSQL SELECT @@VERSION; --POSTGRESQL 1. 쿼리로 확인 SQL> select version(); 2. $PGDATADIRECTORY 디렉토리 안에 PG_VERSION 파일 확인 [..../data]$ cd $PGDATA [..../data]$ ls -l PG_VERSION [..../data]$ cat PG_VERSION 3. client software의 버전정보 [..../data]$ cd $PGHOME [..../data]..
· DBA
1. 조인 조건은 항상 ON 절에 기재한다. 2. 테이블 별칭 사용 및 컬럼 명에 테이블 별칭을 포함한다. 3. 서버 사이드 프리페어 스테이트먼트 사용 4. FULL GROUP BY 사용 5. DELETE, UPDATE 쿼리에서 ORDER BY .. LIMIT.. 사용 자제 6. 문자열 리터럴 표기는 홑따옴표만 사용 7. 서브쿼리는 조인으로 변경 8. UNION [ALL]은 사용 자제 9. 스토어드 함수는 가능하면 DETERMINISTIC으로 정의 10. 스토어드 프로그램에서는 예외 처리 코드를 작성 11. UPDATE, DELETE 쿼리와 적용 건수(AFFECTED ROW COUNTS)체크 12. 숫자 값은 반드시 숫자 타입의 칼럼으로 정의
mewoni
'DBA' 카테고리의 글 목록