MS-SQL

2020.06.11(목)-DB

J_Bin 2020. 6. 11. 18:26

1-1-1. 인덱스

 

클러스터형 인덱스 - PK랑 비슷, 한개만 가능

비클러스터형 인덱스 - 여러개 생성가능, 조건절에서 비클러스터형 인덱스 걸기 가능
인덱스를 거는 필드가 NULL값이 많이 들어있으면 성능이 떨어진다.

 

*설정한 인덱스 확인하는 방법

*클러스터형 인덱스의 특징

1. 생성시 데이터페이지 전체를 다시 정렬한다. 그렇기 때문에 시스템 부하를 줄 수 있다.

2. 인덱스 자체의 리프 페이지가 곧 데이터이다. 클러스터형 인덱스는 테이블에 1개만 생성가능하다.

3. 비클러스터형 인덱스보다 검색속도는 빠르다. 하지만, 데이터의 입력/수정/삭제는 더 느리다.

 

*비클러스터형 인덱스의 특징

1. 생성시 데이터페이지는 그냥 둔 상태에서 별도의 인덱스를 구성한다.

2. 클러슽어형보다 검색속도는 더 느리지만, 데이터의 변경은 더 빠르다.

3. 비클러스터형 인덱스는 여러 개 생성할 수 있다. 하지만, 함부로 남용시 시스템의 혼잡을 야기시킬 수 있다.

 

*인덱스의 사용

데이터의 중복이 많으면 인덱스를 만들어도 별 효용이 없다.

where 절에서 사용되는 컬럼을 인덱스로 만들어라.

where 절에 사용되더라도 자주 사용해서 가치가 있다.

 

2-1-1. 트랜젝션

하나의 논리적 작업단위로 수행되는 일련의 작업

SQL문 (SELECT/INSERT/UPDATE/DELETE)의 묶음

한 단위의 트랜잭션은 모두 처리되거나, 모두 처리 되지 않도록 DNMS가 관리해 준다.

 

형식 :

BEGIN TRANSACTION (BEGIN TRAN)

SQL 문장들

COMMIT TRANSACTION (COMMIT TRAN, COMMIT WORK)

 

*UPDATE문

2-1-2. 트랜젝션 사용 - REVIEW하기

 

COMMIT이랑 ROLLBACK을 할려면 BIGIN TRAN을 실행하고 해야함.

*트랜잭션의 특징

1. 원자성 : 분리할 수 없는 하나의 단위로써, 작업이 모두 수행되거나 하나도 수행되지 않아야 한다.

2. 일관성 : 사용되는 모든 데이터는 일관되어야 한다.

3. 격리성 : 현재 트랜잭션이 접근하고 있는 데이터는 다른 트랜잭션에서 격리되어야 한다.

4. 영속성 : 트랜잭션이 정상적으로 종료된다면 시스템 오류가 발생하더라고 그 결과는 시스템에 영구적으로 적용된다.

 

 

3-1-1. 데이터베이스 모델링

: 현 세계에서 사용되는 작업(행위)이나 사물을 데이터베이스 개체로 옮기는 과정

 

4-1-1. 저장 프로시저 ( C# 메서드랑 비슷한 개념)

: 쿼리문의 집합, 어떤 동작을 일괄 처리할 때 사용된다.

저장 프로시저도 데이터베이스의 개체 중 하나이기 때문에 테이블처럼 각 데이텁제이스 내부에 저장된다.

 

4-1-2. 저장 프로시저 만들기

4-1-3. 저장 프로시저 불러오기

4-1-4. 파라매터 설정

4-1-5. OUTPUT 하기 (RETURN)

4-1-6. IF절

 

4-1-7. CASE문

'장국빈' VALUE가 추가된 userTBL

4-1-8. 저장 프로시저의 특징

ㄱ . SQL SERVER의 성능을 향상시킬 수 있다. (속도가 빠르다)

ㄴ . 유지관리가 간편하다.

ㄷ . 모듈식 프로그래밍이 가능하다.

ㄹ . 보안을 강화할 수 있다.

ㅁ . 네트워크 전송량의 감소

 

 

5-1-1. 사용자 정의 함수 (스칼라 반환 함수) : 스칼라 값 하나만 반환

5-1-2. 사용자 정의 함수 (테이블 반환 함수)

: 테이블 자체를 반환해준다.

 

 

'MS-SQL' 카테고리의 다른 글

2020.06.12(금) - DB  (0) 2020.06.12
2020.06.10(수) - DB  (0) 2020.06.10
2020.06.09(화) - DB  (0) 2020.06.09
2020.06.08(월) - DB  (0) 2020.06.08
2020.06.05(금) - DB  (0) 2020.06.05