Merge(병합) 조인 == Sort Merge(정렬 병합) 조인 반드시 One - TO - Many 일 경우만 효율이 좋다.Merger -> Sort Merge 조인1) 양쪽 집합을 Sort(정렬)하고 Merge 병합한다.이미 병합된 상태라면 Sort는 생략
JOIN 문에 대해서 깊게 알아 볼 것이다.조인이 내부적으로 처리되는 방식이 여러가지가있다.이것을 이해를 해야지 실행할때 분석이 가능하다.1) Nested Loop (NL)조인2) Merge(병합) 조인3) Hash(해시) 조인이렇게 세가지 상태중 하나를 골라서 조인이
이럴 경우 (56, 휴먼)이 하나만 있는게 아니라 엄청 여러개가 나올 수 있어서이럴 때 인덱스의 컬럼 순서가 중요하다는 것이다.일단 이까지 만들어 놓고 추가를 해주도록 하자.그리고 뭐가 더 빠른 인덱스인지 확인하기 위해 인덱스 두개 만든다.이렇게 한 후 두개를 실행해보
Clusterd일 경우 Index Seek가 느릴 수 없다.NonClustered일 경우 데이터가 Leaf Page에 없다.따라서 한번 더 타고 가야되는데1) RID -> Heap Table (BookMark LookUp)2) Key -> Clustered Index이
인덱스 접근 방식 알아볼 것이다.(Access)INDEX SEEK -> INDEX가 활용되어서 좋은것INDEX SCAN -> INDEX가 활용이 안되서 안좋은거?라고 이분법적으로 설명을 해보았었다.이렇게 테이블 만들어주고 인덱스 만들어주고이렇게 데이터를 넣어 주도록 하
1) 관계형(SQL) VS 비관계(NOSQL)발전 : "유연", "확장", "고성능", "가용성" 등으로 발전 정형 데이터 -> 비정형 데이터로 확장관계를 KEY로 연결 -> 규칙이 없음. 2) 고전 SQL의 한계복잡한 쿼리 및 스키마 유연 X수평확장 X (수
오늘은 인덱스의 종류에 대해서 알아볼 것이다.인덱스 종류Clustered(영한 사전) Non-Clustered(색인)Clustered -> 실제로 데이터가 정렬되는 순서에 영향을 줌.데이터는 leaf page에 저장이 된다.leaf page = data page 잎사귀
이거 그냥인덱스를 걸때 여러개를 걸어버리는게 "복합 인덱스"이다.1) 주문보기ID가 같으면 같은 주문임2) 임시테이블 만들고 복붙하기빠른방법 -> SELECT INTO 사용 ㄱㄱ3) 복합인덱스 추가이거 두개 세트로 인덱스 걸어주겠다!4) 인덱스 정보 살펴보기이렇게 해주
SQL성능에 대한 튜닝에 대해서 알아 볼 것이다.평소에도 데베 설계를 할때 민감하게 설계 해야한다.유져수 증가 -> 데베 부하 올라 갈 수 있음그래서 어떤게 빠르고 느린지는 SQL튜닝을 하면서 성능 분석을 하는 방법을 배워야 한다.google -> northwind d
운영체제에서 말하는 윈도우가 아님(리눅스에서 사용못하거나 그런것도 아님)그냥 특정 범위를 말하는 것이다.한줄 요약하자면행들의 서브 집합을 대상으로, 각 행별로 계산을 해서 스칼라(단일 고정)값을출력하는 함수이다.그렇다면느낌상 GROUPING이랑 비슷한가?SUM, COU
변수 C#과 마찬가지로 변수나 if, else문을 통해 흐름을 제어 할 수 있다. 먼저 변수 선언하는 부분부터 보도록 하겠다. > DECLARE @i AS INT = 10; @는 보통 다른 변수와 헷갈리지 않게하기 위하여 붙인다. > DECLARE @j AS
규모가 큰 회사에서는 사용을 하는데규모가 좀 작은 곳에서는 사용하지 않고 깡으로 나가기도한다.문법은 간단한데BEGIN TRAN || BEGIN TRANSACTION 둘중하나인데 앞에거 더 많이쓴다.한다음에COMMIT, ROLLBACK 을 하거나 선택 할 수 있다.그래서
JOIN연산서버로 지원하면 INDEX 관련과 JOIN에 관련한 것들 많이 물어본다.거의 사용은 안한다일단 테이블을 이렇게 만들어주고데이터를 확인하면 이렇게 뜬다.이제 교차결합을 어떻게 하는지 보면은CROSS JOIN을 사용해서 보면은1 A, 1 B, 1 C, 2 A,
복수의 테이블을 다루는 방법데이터들끼리 거미줄 처럼 이어져있어서 그것들을 다루는 방법에 대해서 알아볼 것이다.GROUP BY를 할때는 SELECT에서 이렇게 명시를 해주어야 한다.이렇게 추출 했는데상황에 따라서 첫번째에 추출한거랑 두번째로 추출한거랑 합하고싶은 상황이
INDEX는 중요도를 평가할 수 없을 정도로 너무너무 중요하다.책 후반이나초반에 "색인 == INDEX"를 찾으면 쉽게 찾을 수 있다.그런데 책은 한번 출판하면 바뀌지가 않는데데베는 수정도되고 바뀌기도 하니까 실시간으로 페이지가 왔다갔다 할 테니까그래서 데베에서는 실제
데이터 베이스를 설계하면서 중요한 개념인데정규화 1단계 2단계 3단계를 굳이 알필요보다는뭐하는것인지 알고 설계하는 작업을 연습하다보면 익숙해진다!그래서정규화란??"테이블을 올바르게 변경하고 분할하는 것"테이블을 이렇게 분리를 하면서 설계를 해야한다.이렇게 문자열로 관리
< 테이블 생성 >나중에 게임을 만들때우리만의 데이터베이스를 만들어야 한다.그래서 UI 인터페이스를 통해서 만들기 보다는(여러 장단점이 있지만)SQL문법을 통해서 만들어보도록 하겠다이렇게 데이터베이스를 만들어 주면 좌측에 생성된거 확인 가능하다.그리고 USE Ga
SubQuery 개념그래서 이것을 한번에 해주도록 하는 것이 서브쿼리이다.이렇게 넣어주면 된다.그런데 이부분까지만 하면 에러가 난다.playerID뽑아온것을 WHERE 에다가 넣어주고 실행하면 됨.그런데 지금까지는 "단일행"이고"다중행"이라면 어떻게 할까?IN을 사용하
< INSERT >VALUES값들을 제대로 넣어줘야 추가가 된다.밑에처럼 뺴먹으면 에러가 뜬다.순서 상관없이 하는 부분은이런식으로도 가능하다.그리고 똑같은 정보를 이렇게 넣어주면 에러가 난다.(같은 정보 똑같이 두개이상 넣으면 에러난다)< DELETE >&l
이거 어떤 상황일때 쓰는지부터 보자팀별로 묶어서 정보를 보곳 싶을 때는이렇게 해야한다그런데 주의할점이SELECT \* 하고 GROUP BY 하면 안된다.하면 논리적으로 모순이 생김그래서 GROUP BY로 묶어 준 정보만 추출 할 수 있다.그래서 이렇게 GROUP BY