뇌를 자극하는 SQL Server 2012 기본편 90페이지
——-데이터베이스 생성———
새 데이터베이스
ShopDB 데이터베이스 생성
테이블 생성
위와 같이 생성
기본 키 설정(memberID)
memberTBL로 저장
자동으로 dbo 라는 이름이 붙음. 도서에서는 스키마라고 함.
productTBL은 위와 같이 생성
——-데이터 입력 ————
dbo.memberTBL의 상위 200개 행 편집
닫기
dbo.productTBL 편집
———-데이터 활용(쿼리 실습)————-
select * from memberTBL;
select memberName, memberAddress from memberTBL;
—–간단히 테이블 생성/삭제——-
CREATE TABLE “my testTBL” (id INT);
테이블 생성.
DROP TABLE [my TestTBL];
테이블 삭제.
——-인덱스 개념 잡기——-
SELECT Name, ProductNumber, ListPrice, Size INTO indexTBL
FROM AdventureWorks.Production.Product;
GO
SELECT * FROM indexTBL;
AdventureWorks.Production.Product의 Name, ProductNumber, ListPrice, Size 컬럼을 indexTBL로 복사
SELECT * FROM indexTBL WHERE Name=’Minipump’;
Ctrl+L 을 누르거나
예상 실행 계획 표시를 누르면 나오는 화면. 쿼리가 어떻게 작동했는지 확인 가능. 일단 여기에서는 ‘테이블 스캔’을 통해 실행되었다는 것을 알 수 있다.(인덱스를 사용하지 않음)
예상 CPU 비용 |
예상 I/O 비용 |
예상 연산자 비용 |
0.0006329 |
0.0061665 |
0.0067994 |
CREATE INDEX idx_indexTBL_Name ON indexTBL(name);
productTBL의 제품 이름(prodName) 열에 인덱스 생성
SELECT * FROM indexTBL WHERE Name=’Minipump’;
인덱스 생성 후 다시 앞에서 동작시켰던 쿼리를 확인. 이번에는 Index Seek(인덱스 사용)으로 결과를 찾아냄.
인덱스 작성 전/후 |
예상 CPU 비용 |
예상 I/O 비용 |
예상 연산자 비용 |
Before |
0.0006329 |
0.0061665 |
0.0067994 |
After |
0.0001581 |
0.003125 |
0.0032831 |
예상되는 비용이 모두 줄어들었다. 인덱스를 생성한 것만으로 성능 상 효과를 볼 수 있네.