#설치
디텍토리명으로 sql버전 확인가능
데이터베이스 엔진구성
DB접속허용 – 혼합모드.
데이터파일 : .mdf(control+dbf), .ndf(dbf)
로그파일 : .ldf(log)
Port : C:\Windows\System32\drivers\etc내 services파일 참조(1433)
호환성 : C:\Program Files\Microsoft SQL Server 80(ver2000), 90(ver2005), 100(ver2008)
DB : C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA
새로운 DB생성시, [.ndf]로 생성됨
|
mdf |
ldf |
ndf |
구성정보(control) |
O |
|
|
DATA |
O |
|
O |
Log |
|
O |
|
#데이터
Int의 비트수 : 4byte, 32bit(42~43억개 사용가능)
Ex) 나이에 대한 데이터타입 : byte – 성능고려
#SQL
정의(DDL) : object – 그릇(table, View)
Rollback 처리 불가
create, alter, drop, truncate
조작(DML) : data – 행, 컬럼 단위
Rollback 처리 가능
insert, delete, update, select(메모리상 I/O 발생)
제어(DCL) : 권한
Grant(권한부여), revoke(권한부여↔권한거부 변경), deny(권한거부)
#Transaction
-물리적으로 저장공간에 변화가 일어나는 작업의 단위
1) 명시적 commit : begin(o), commit(o)
2) 암시적 commit : begin(X), commit(o)
-> DML(Oracle)
3) Auto commit : begin(X), commit(x)
-> DDL, DML(MS-SQL)
#Index
인덱스가 없는 경우 : heap 구조
primary key : 테이블당1개가능
unique : 테이블당249개가능
#System DB
Master : Instrance 구성정보
Model : 기본틀 제공 Database
Msdb : SQL Server 에이전트 정보
Tempdb : 임시 DB 개체들이 생성/제거
-> 재부팅 사라짐
#디스크관리
운영체제 기본값 : 4K
Ms-sql 기본값 : 8K
디스크가상화 – 재부팅시 연결이 끊어짐
#File Group
Datafile 묶음
Data Object [Table, index]저장 대상
Read Only 대상
Raid 0 (Stripe방식)
Backup/Restore -> 대상:File, File Gro
읽기전용 : PRIMARY은 불가
WHY? PRIMARY에서 구성정보를 포함하고 있으므로
#Data Page
단일 Segment→Data Page : 8K(*8:Extents)
혼합 Segment→Index Page : 8K(*8:Extents)
Heap
데이터조작 성능이 가장 뛰어남(insert, delete, update)
Clustered Index (B-tree: root page는 1개)
데이터조작 성능이 떨어짐(insert시 최악)
범위형조회시 최적화(순차적으로 실행)
Non Clustered Index
범위가 넘어가면 풀스캔
데이터는 건들지 않음
리프레벨(맨 아래) : Clustered-Data page, Non Clustered-index page
키 제약조건 사용시, 인덱스 생성
여러가지 제약조건 사용시, 성능저하
#Schema
1) 용어, 사물, object에 대한 사전 정의
2) object에 대한 묶음 공간
3) 소유자의 권한 설정을 할 수 있는 대상
#Constraint(5+@)
1. PK : Unique + Null(X) + Index
MS-SQL : CI (기본값)
Oracle : BTree 구조(기본값)
2. UQ : Unique + Null(O) + Index
MS-SQL : Null(1), NCI (기본값)
Oracle : Null(다수),BTree 구조(기본값)
3. FK : 자기/다른 Table의 Unique컬럼 참조
4. CK : 범위(between), 열거(in)
5. NN : Not Null
@. DF
#Index 사용불가
1. 인덱스 컬럼이 where절에 미포함
2. 인덱스 컬럼 가공
3. 복수 인덱스 시, 데이터가 많은경우
#rid
8 bytes
페이지 주소 + 파일 ID + 슬롯번호
#탐색조건
A(포인트형), b(범위형)
A→B(성능뛰어남), 조건을 제시할때는 명확한 것부터
Where C1 in (1,2,3)→Where C1 in between 1 and 3 = where C1=1 or C1=2 or C1=3
#JOIN
equi join =
non-equi join between
inner join ansi--> inner join
self join 자기 Table 의 컬럼을 참조하는 join
outer join =(+) (+)= ,
ansi --> [left/right/full] outer join
cross join
natural join -> inner join 한 형태
(물리적 join)
Join문 기준 Table(Outer Table)을 선정하고, 그 Table에서 처리를 시작한다.
From 뒤의 Table 순서로 처리순서를 만들고 사다면, option(force order)
Nested Loop Join : option(loop join)
Merge Join : option(merge join)
Hash Join : option(hash join)
→hash>merge>NL join(force order)>NL join(기본값)
Ubuntu 20.04.1 LTS에서 간단 이미지 편집프로그램 설치 및 실행하기 (0) | 2020.10.28 |
---|---|
vue.js의 data, computed, watch 간의 관계 (0) | 2020.09.16 |
[SQL]mscorlib.tlb오류 해결하기 (0) | 2013.05.17 |
[안드로이드] 액티비티간 전환 (화면전환) - 소스 (1) | 2012.05.28 |
[안드로이드] 메뉴버튼(옵션메뉴) 활용하기 (0) | 2012.02.23 |
댓글 영역