탑크리에듀(http://www.topcredu.co.kr), 오라클자바커뮤니티(http://ojc.asia)에서 제공하는 온라인 무료 화상교육, 오라클 SQL힌트/튜닝 강의자료 3회차 입니다. 12월22일 진행되는 교육에서는 중첩루프조인 소개 및 USE_NL, USE_NL_WITH_INDEX, ORDERED 힌트 구문에 대해 살펴볼 예정 입니다.
하나의 SELECT문의 결과가 다른 Select문의 결과와 합집합, 교집합, 차집합 등 새로운 결과를 만들어 낼 때 사용하는 연산자 이다. 이러한 집한 연산자를 사용하기 위해서는 연산을 하는 SELECT문의 결과와 칼럼 구조(개수, 타입)가 같아야 한다. 즉 같은 데이터 형이며 순서 또한 같아야 한다. 결과의 칼럼 명은 첫번째 SELECT문의 칼럼 명이 사용된다.
UNION : 연결된 Select문의 결과 합을 구해준다. 중복된 것은 하나만 보여줌
UNION ALL : 연결된 Select문의 결과 합을 구해준다.
중복된 ROW가 있더라도 모두 보여줌, 정렬이 일어나지 않는다.
INTERSECT : 연결된 Select문의 결과 교집합을 구해준다.
MINUS : 연결된 Select문의 결과 차를 구해준다.
(오라클 SQL튜닝을 위한 쿼리문 작성법 강좌)오라클 SQL/쿼리 튜닝은 간단한 SQL구문 최적화 부터 시작을 하게되죠, SQL을 처음 사용할 때 부터 최적화 하는 방법에 주의해서 공부하시면 저절로 튜닝 됩니다. 본 PPT 강좌는 탑크리에듀(www.topcredu.co.kr), 오라클자바커뮤니티(ojc.asia)에서 제공하는 교육강좌 입니다.
탑크리에듀(http://www.topcredu.co.kr), 오라클자바커뮤니티(http://ojc.asia)에서 제공하는 온라인 무료 화상교육, 오라클 SQL힌트/튜닝 강의자료 3회차 입니다. 12월22일 진행되는 교육에서는 중첩루프조인 소개 및 USE_NL, USE_NL_WITH_INDEX, ORDERED 힌트 구문에 대해 살펴볼 예정 입니다.
하나의 SELECT문의 결과가 다른 Select문의 결과와 합집합, 교집합, 차집합 등 새로운 결과를 만들어 낼 때 사용하는 연산자 이다. 이러한 집한 연산자를 사용하기 위해서는 연산을 하는 SELECT문의 결과와 칼럼 구조(개수, 타입)가 같아야 한다. 즉 같은 데이터 형이며 순서 또한 같아야 한다. 결과의 칼럼 명은 첫번째 SELECT문의 칼럼 명이 사용된다.
UNION : 연결된 Select문의 결과 합을 구해준다. 중복된 것은 하나만 보여줌
UNION ALL : 연결된 Select문의 결과 합을 구해준다.
중복된 ROW가 있더라도 모두 보여줌, 정렬이 일어나지 않는다.
INTERSECT : 연결된 Select문의 결과 교집합을 구해준다.
MINUS : 연결된 Select문의 결과 차를 구해준다.
(오라클 SQL튜닝을 위한 쿼리문 작성법 강좌)오라클 SQL/쿼리 튜닝은 간단한 SQL구문 최적화 부터 시작을 하게되죠, SQL을 처음 사용할 때 부터 최적화 하는 방법에 주의해서 공부하시면 저절로 튜닝 됩니다. 본 PPT 강좌는 탑크리에듀(www.topcredu.co.kr), 오라클자바커뮤니티(ojc.asia)에서 제공하는 교육강좌 입니다.
DBMS_STATS 패키지에는 몇 개의 유용한 프러시저가 있는데 아래와 같다.
gather_database_ stats: 데이터베이스의 모든 Object에 대한 통계 정보 생성.
gather_schema_ stats: 해당 스키마의 모든 Object에 대한 통계 정보 생성.
gather_table_stats : 테이블과 그 테이블과 연관된 인덱스에 대한 통계 정보 생성.
gather_index_stats : 인덱스에 대해 통계 정보를 생성.
3. DDL ( Data Definition Language ) : TABLE, VIEW, INDEX 등등 을 정의하거나 변경 또는 삭제 할 때 사용함 . – CREATE, DROP, ALTER DML ( Data Manufaction Language ) : 저장된 데이터를 실제로 처리하는데 사용 . - SELECT , INSERT , DELETE , UPDATE DCL ( Data Control Language) : 데이터의 보안 , 무결성 등 데이터의 관리를 목적으로 사용 – GRANT , REVOKE 1. INSERT
4. INSERT 구문 1. INSERT INSERT INTO table_name ( column_name ) VALUES ( column_value ) 하나의 INSERT 문으로는 하나의 레코드 만 입력 할 수 있다 .!
5. IDENTITY 와 DEFAULT 제약조건 1. INSERT IDENTITY : 레코드가 입력될 때 , 컬럼의 값은 seed 부터 시작 하며 , 새로운 레코드가 추가될 시에는 increment 만큼 증가된 값 이 적용된다 .
11. SET IDENTITY_INSERT {ON | OFF} 1. INSERT SET IDENTITY_INSERT table_name ON INSERT INTO mytest ( id, value ) VALUES ( 3, 31 ) SET IDENTITY_INSERT table_name OFF
13. TIMESTAMP 1. INSERT 일반적으로 timestamp 는 버전이 표시되는 테이블 행 에 대한 메커니즘으로 사용됩니다 . 저장소 크기는 8 바이트 (VARBINARY(8)) 입니다 . timestamp 데이터 형식은 자동으로 증가하는 숫자일 뿐 이며 날짜 또는 시간을 보존하지 않습니다 현재의 timestamp 값 얻기 : @@DBTS
15. DEFAULT values 1. INSERT CREATE TABLE tblDef ( id int IDENTITY PRIMARY KEY, TIMESTAMP, inputday DATETIME NOT NULL DEFAULT getdate(), photo image NULL )
16. INSERT .. SELECT 와 SELECT .. INTO 1. INSERT SELECT .. INTO 구문은 넣으려고 하는 개체 ( 테이블 ) 이 이미 존재하면 사용할 수 없다 . 이미 개체 ( 테이블 ) 가 존재 한다면 INSERT .. SELECT 구문을 사용 한다 . INSERT desc_table_name SELECT source_column_name FROM source_table_name values 대신에 select 구문이 들어간 것 .
17.
18. DELETE 구문 2. DELETE DELETE [FROM] table_name WHERE … DELETE 구문은 반드시 WHERE 절과 함께 사용 .! BEGIN TRAN query… ROLLBACK / COMMIT
19. DELETE 구문 2. DELETE DELETE table_name WHERE column IN ( SELECT … ) DELETE table_name FROM t1 JOIN t2 ON t1.id = t2.id ANSI SQL T-SQL
20. UPDATE 구문 3. UPDATE UPDATE table_name SET column_name = value , column_name = value WHERE …
21. UPDATE 구문 3. UPDATE UPDATE target SET tValue = tValue + sValue FROM target JOIN source ON ( tid = sid )
22. UPDATE 구문 3. UPDATE UPDATE target SET tValue = tValue + sValue FROM target , source WHERE tid = sid
23. UPDATE 구문 3. UPDATE 하위 쿼리 - 상위 쿼리에 영향을 받지 않고 자체적으로 실행되는 쿼리 , 결과값을 상위 쿼리에서 사용한다 상관 하위 쿼리 - 하위 쿼리가 외부 쿼리에 영향을 받음 . 즉 , 하위 쿼리는 외부 쿼리에서 선택될 수 있는 각 행에 대해 한 번씩 반복적으로 실행 .
24. UPDATE 구문 3. UPDATE 하위 쿼리 UPDATE target SET tValue = tValue + ( SELECT sum(sValue) FROM source JOIN target ON tid = sid )
25. UPDATE 구문 3. UPDATE 상관 하위 쿼리 UPDATE target SET tValue = tValue + ( SELECT sum(sValue) FROM source WHERE sid = target.tid )