oracle23 [Oracle] 윈도우 함수 윈도우 함수 윈도우 함수는 굉장히 중요한 기능입니다. 윈도우 함수는 데이터를 가공하게 해준다는 점에서도 중요하지만, 성능과 큰 관계가 있습니다. 윈도우 함수의 특징을 한마디로 정의하면 '집약 기능이 없는 GROUP BY 구'입니다. GROUP BY 구는 자르기와 집약이라는 두 개의 기능으로 구분됩니다. 윈도우 함수는 여기서 자르기 기능만 있는 것입니다. 윈도우 함수도 테이블을 자르는 것은 GROUP BY와 같습니다. 윈도우 함수는 이를 'PARTITION BY'라는 구로 수행합니다. 차이점이 있다면 자른 후에 집약하지 않으므로 출력 결과의 레코드 수가 입력되는 테이블의 레코드 수와 같다는 것입니다. 윈도우 함수의 기본적인 구문은 집약 함수 뒤에 OVER 구를 작성하고, 내부에 자를 키를 지정하는 PART.. 2019. 6. 10. [Oracle] 집합 연산 1. SQL 집합 연산 1.1 UNION으로 합집합 구하기 집합 연산에서는 만약 ADDRESS 테이블과 ADDRESS2 테이블의 합집합을 구할 때는 UNION이라는 합이라는 연산자를 사용합니다. SELECT * FROM ADDRESS UNION SELECT * FROM ADDRESS2; 문자 그대로 2개의 테이블을 하나의 테이블로 합친 결과가 나옵니다. 여기서 기억해야 할 점 하나는 만약 ADDRESS 테이블에는 6개의 레코드가 있고, ADDRESS2 테이블에는 9개의 레코드가 있다고해서 2개를 합친 결과가 15개가 나오지 않을 수 있다는 것 입니다. 바로 중복해서 존재하는 레코드를 제거합니다. 이는 INTERSECT와 EXCEPT 등에서도 같습니다. 만약 중복을 제거하고 싶지 않다면 'UNION ALL.. 2019. 6. 10. [Oracle] SQL 구문의 성능을 결정하는 실행 계획 1. 실행 계획 확인 방법 SQL 구문의 지연이 발생했을 때 제일 먼저 실행 계획을 살펴봐야합니다. 다음과 같은 3개의 기본적인 SQL 구문의 실행 계획을 살펴보겠습니다. ● 테이블 풀 스캔의 실행 계획 ● 인덱스 스캔의 실행 계획 ● 간단한 테이블 결합의 실행 계획 오라클의 경우 실행 계획을 확인하는 명령어는 다음과 같습니다. SET AUTOTRACE TRACEONLY 실행 계획에 공통적으로 나타나는 부분은 조작 대상 객체, 객체에 대한 조작의 종류, 조작 대상이 되는 레코드 수 등이 나타납니다. 그만큼 중요한 부분이라는 것입니다. 조작 대상 객체를 살펴보면, 오라클은 Name 필드에 테이블 이름이 출력됩니다. 어떤 객체를 조작하는지 혼동하지 않게 주의가 필요합니다. 또한 이 부분은 테이블 이외에도 인.. 2019. 6. 10. [Oracle] DBMS와 실행 계획 1. 데이터에 접근하는 방법의 결정 RDB를 조작할 때는 SQL이라는 전용 언어를 사용합니다. 사용자 또는 개발자가 데이터베이스에서 의식적으로 사용하는 것은 SQL 레밸까지입니다. 이후의 모든 것은 SQL 구문을 읽어들인 DBMS가 알아서 처리하고 결과를 제공해주기 때문에 사용자는 데이터가 있는 곳을 알 필요도 없고, 데이터에 접근하는 방법도 따로 생각하지 않습니다. RDB에서 데이터 접근 절차를 결정하는 모듈은 쿼리 평가 엔진입니다. 쿼리 평가 엔진은 사용자로부터 입력받은 SQL 구문을 처음 읽어들이는 모듈입니다. 쿼리 평가 모듈은 추가로 파서 또는 옵티마이저와 같은 여러 개의 서브 모듈로 구성됩니다. ● 파서 파서의 역할은 구문을 분석하는 것 입니다. 사용자로부터 입력받은 SQL구문이 올바른지 검사를.. 2019. 6. 4. [Oracle] DDL(Data Definition Language) SQL에서 데이터 정의어는 데이터베이스의 3층 스키마를 정의하는 등, 데이터베이스 관리자는 데이터 정의어를 사용하여 구축하고자 하는 데이터베이스 여러 개체(Object)를 정확하게 기술해야 합니다. 1. 개체(Object) 데이터베이스의 중요한 객체는 다음과 같습니다. Object 설 명 Table 행과 열로 구성된 2차원 테이블로 데이터를 저장하는 개체 View 하나 이상의 테이블로부터 유도된 데이터의 부분집합 개체 Index 빠른 검색을 위해 사용하는 개체 Sequence 순차적인 숫자 값을 생성하는 개체 2. 테이블 2.1 테이블의 생성 관계형 데이터베이스에서 테이블은 데이터를 저장할 수 있는 개체 테이블의 생성을 위해서는 CREATE TABLE, 변경을 위해서는 ALTER TABLE, 삭제를 위해.. 2019. 6. 2. [Oracle] TCL(Transaction Control Language) 1. TCL (Transaction Control Language) 트랜잭션이란 사용자에 의해 실행된 데이터 조작어(DML) 명령어들의 집합을 의미하며, 변경된 데이터는 트랜잭션 제어어(TCL)에 의해 데이터베이스에 반영됩니다. 트랜잭션은 논리적인 단위로 하나 이상의 데이터 조작어(DML) 명령어의 실행으로 변경된 데이터들을 의미합니다. 이 트랜잭션은 아직 테이블에 반영된 상태는 아니며, 테이블에 반영하기 위해서는 데이터 조작어(TCL) 명령어인 COMMIT의 실행이나, 데이터 정의어(DDL) 명령어의 실행으로 이루어집니다. 2. COMMIT 모든 작업을 정상적으로 처리하겠다고 확정하는 명령어입니다. 트랜잭션의 처리 과정을 데이터베이스에 반영하기 위해서, 변경된 내용을 모두 영구 저장합니다. COMMIT.. 2019. 4. 28. 이전 1 2 3 4 다음