데이터베이스 옵티 마이저 Server SQL 아키텍쳐(Architecture)

씨 SQL Server는 클라이언트-서버 아키텍처이다. 씨 SQL Server 과정는 클라이언트 응용 프대수램이 신청을 보내는 것으로 시작된다. SQL Server는 감당된 사실를 가장귀고 신청을 수용, 감당 및 응답한다. 밑 다이어그램은 SQL Server 아키텍쳐의 세 가장귀 주요 결성 성분를 보여준다.

▼ 1. 프로토콜 계층(Pro정원col Layer)2. 간형 기관(Relational 기관)3. 갈무리 기관(S정원rage 기관)다음은 살펴볼 세 가장귀 주요 모듈이다.

1. 프로토콜 계층 – SNI- 공동 메모리(Shared 기억기기)- 인산트라이크레실/IP- Named 곰방대- What is TDS 2. 간형 기관(Relational 기관)- CMD Parser- Optimizer- Query Execu정원r 3. 갈무리 기관(S정원rage 기관)- File 모양- Access Method- 완충기억장치 Manager- Plan Cache- 사실 Parsing: 완충기억장치 cache & 사실 s정원rage- Transaction Manager 프로토콜 계층(Pro정원col Layer) – SNI(SQL Server 망 Interface)씨 SQL Server 프로토콜 계층은 3가장귀 유형의 클라이언트 서버 아키텍쳐를 지감정다.

– 공동메모리(Shared 기억기기)톰과 엄마의 식전 담화 곡절이다. ▼톰과 그의 엄마는 같다 논리적인 곳인 집에 있었다. 톰은 커피차를 신청할 수 있었고, 엄마는 커피차를 뜨겁게 제공할 수 있었다. 예서 씨 SQL 서버는 공동 메모리 프로토콜(Shared 기억기기 Pro정원col)을 제공한다.

예서 클라이언트와 씨 SQL 서버는 같다 시스템에서 거행된다. 둘 다 공동 메모리 프로토콜을 통석 기별할 수 있다. 금시 위의 담화 곡절을 엔터티에 매핑여름잠 톰은 클라이언트, 엄마는 SQL 서버, 본루 정원 Machine 및 Verbal 의사소통은 공동 메모리 프로토콜이 된다. 결성 및 가공데스크로컬 디비 결부의 경우 – SQL Management 녹음실에서 “서버 이름” 선택은 “.

” 또는 “localhost” 또는 “127. 0. 0. 1” 또는 “Machine/Instance” 이다.

SQL Server가 가공된 서버를 클라이언트로 사용하는 경우 기본적으로 SQL Server는 이 프로토콜을 사용하여 인스턴스에 결부을 시도한다. – 인산트라이크레실/IP저녁에 톰은 다과회 경향에 있다. 그는 유명 프랜차이즈시스템 술집에서 부탁한 커피차를 감정다. 술집는 그의 집에서 10km 떨어져 있다.

톰과 술집는 상호 딴 물리학적 곳에 있다. 톰은 집에, 술집는 근린 가운데상가에 있다. 그들은 셀룰러 망를 통석 기별하고 있다. 마찬가장귀로, 씨 SQL Server는 인산트라이크레실/IP 프로토콜을 통석 상호 기능하다 수 있는 성능을 제공한다.

예서 클라이언트와 씨 SQL 서버는 원거리이며 가외의 시스템에 가공된다. 위의 담화 곡절을 엔터티에 매핑여름잠 톰은 클라이언트, 술집는 SQL 서버, 본루/Market은 원거리지, 셀룰러 망는 인산트라이크레실/IP가 된다. 결성 및 가공데스크SQL Management 녹음실 인산트라이크레실/IP를 각골통한 결부의 경우 “서버 이름” 선택은 “서버의 일렉트로닉컴퓨터/인스턴스” 이어야 한다. SQL Server는 인산트라이크레실/IP에서 단말 1433을 사용한다.

– Named Pipe밤에 되어 톰은 격장지린인 시에라가 타주는 녹차를 마시고 싶다. 톰과 그의 격장지린인 시에라는 상호 격장지린인 같다 물리학적 곳에 있다. 그들은 인트라 망를 통석 기별하고 있다. 씨 SQL 서버는 Named Pipe 프로토콜을 통석 상호 작용하는 성능을 제공하고 있다.

예서 클라이언트와 씨 SQL 서버는 근거리통신망을 통석 결부된다. 위의 담화 곡절을 엔터티에 매핑여름잠 톰은 클라이언트, 시에라는 SQL 서버, 격장지린은 근거리통신망, 인트라 망는 Named Pipe Pro정원col이 된다. 결성 및 가공데스크이 선택은 기본적으로 비활성화되어 있으며, SQL 결성 관리원에서 활성화해야 한다. 클라이언트와 서버가 같다 근거리통신망에 있을 때 사용되며, 인산트라이크레실 445 단말를 사용한다.

인산트라이크레실/IP 프로토콜이 없는 환경에서는 사용할 수 없다. – TDS· TDS는 테이블 꼴의 사실 스트림을 나타낸다. · 3가장귀 프로토콜(Shared 기억기기, 인산트라이크레실/IP, Named 곰방대) 남김없이 TDS 패킷을 사용한다. TDS는 망 패킷에 캡슐화된다.

이를 통석 클라이언트 일렉트로닉컴퓨터에서 서버 일렉트로닉컴퓨터로 사실를 송전할 수 있다. · TDS는 Sybase에서 난생처음 개발되었으며 목하는 마이스로소프트에서 보유하고 있다. 간형 기관(Relational 기관)간형 기관은 쿼리 시피유라높이 한다. 쿼리가 정확히 수행해야 하는 작업과 이를 가장 잘 거행하다 수 있는 기법을 걸음하는 SQL Server 결성 성분가 있다.

– CMD Parser프로토콜 계층에서 수신된 사실는 간형 기관으로 전달된다. “CMD 파서”는 쿼리 사실를 수신하는 간형 기관의 첫 번째 결성 성분이다. CMD Parser의 주요 작업은 구문 및 가치 과실에 대한 쿼리를 확인하는 것이다. 그리고는 쿼리 트리를 생성한다.

구문 검색· 딴 모든 프대수래밍 언어와 마찬가장귀로 씨 SQL에는 말광 공정된 키워드 세트가 있다. 또한 SQL Server에는 SQL Server가 이해하는 몸체 말법이 있다. · SELECT, INSERT, UPDATE 및 기타 과수는 씨 SQL 말광 공정 키워드 디렉터리에 속한다. · CMD 파서는 구문 검색를 수행하고 사용자 인풋이 언어 구문이나 말법 규범을 따르지 않으면 과실를 교납한다.

ex) 국어밖에 할 줄 모르는 명이 미연방 식당가서 보이에게 한국말로 부탁하는 것과 같다. 보이는 국어로는 부탁을 받을 수 없기 때문이다. 가장 기본적인 쿼리 구문은 다음과 같다. SELECT * FROM <상 Name>; 다음과 같이 오타가 발생한 기본 쿼리를 거행여름잠 어떻게 되는가.

<상 Name>의 SELECR * CMD 파서는 이 문을 구문 검토하고 과실 메세지를 표시한다. “SELECR”은 미리 공정된 키워드 이름과 말법을 따르지 않는다. CMD Parser는 “SELECT”를 예상했기 때문이다. 가치 검색· 이것은 노말부탄 라이저(Normalizer)에 의해 수행된다.

· 가장 가볍다 구성로 조회 중인 Column명, 상명이 도식(도식)에 존재하는지 확인한다. 존재하는 경우 쿼리에 바인딩(묶음)한다고 한다. · 사용자 쿼리에 뷰(View)가 포함되면 복잡성이 증가한다. 노말부탄 라이저는 내방적으로 갈무리된 뷰 공정 등으로 대체를 수행한다.

SELECT * FROM USER_자아 CMD 파서는 가치 검색를 위해 이 문을 구문 검토한다. 신청된 테이블(USER_자아)이 존재하지 않기 때문에 노말부탄 라이싼값 찾지 못하므로 구문 검토기어가다 과실 메세지를 표시한다. 쿼리 트리 생성·이 계단는 쿼리를 거행할 수 있는 딴 거행 트리를 생성한다. ·딴 모든 트리는 동등의 갈망하다 아웃풋을 가진다.

– 옵티 마이저(Optimizer)최적화 프대수램의 작업은 사용자 쿼리에 대한 거행 또는 도모을 만드는 것이다. 이것은 사용자 쿼리가 거행되는 기법을 걸음하는 도모이다. 모든 쿼리가 최적화되지는않는다. SELECT, INSERT, DELETE 및 UPDATE와 같은 DML(사실 Modification Language)명에 대한 최적화가 수행된다.

이렇다 쿼리는 미리 표시되고 옵티 마이저로 송전된다. CREATE 및 ALTER와 같은 DLL 명은 최적회되지 않지만 갈음 내방 꼴으로 컴기록철된다. 쿼리 비용은 중앙장치 사용량, 메모리 사용량 및 입아웃풋 간구와 같은 기반으로 계산된다. 전산망 금고 계정계좌를 계설하고 싶다고 가계한다.

계정계좌를 건설하는데 맥시멈 2일이 거치다 하나의 금고이 있다. 그러나 2일 미달이 걸릴 경도 있고 걸리지 않을 경도 있는 20개의 딴 금고 디렉터리도 있다. 이 금고과 공조하여 모 금고이 2일 안에 거치다지 확인할 수 있다. 금시 2일 미달 소요되는 금고을 찾을 수 없으며 색인 거동 몸체로 인해 추가 겨를이 손실된다.

첫 번째 금고 몸체로 계정계좌를 건설하는 것이 더 좋았을 것이다. 씨 SQL 옵티마이저는 내장된 exhaustive/heuristic 알고리듬에서 가동한다. 목표는 쿼리 거행 겨를을 최감당하다 것이다. 모든 옵티마이저 알고리듬은 마이크로소프트의 비밀이다.

그러나 밑는 씨 SQL 옵티마이저에 의해 수행되는 높은 레벨의 계단들이다. 0계단 (Phase 0) : 일반적인 도모 색인· 말광 최적화 계단라높이 한다. · 모 경우에는 일반적인 도모으로 알려진 실용적이고 거행 가하다 도모이 하나만 있을 수 있다. 그 곡절는 더 많이 색인여름잠 같다 런타임 거행 도모을 찾을 수 있기 때문이다.

노상 소요하지 않은 최적화된 도모을 찾는데 추가 비용이 발생하기 때문에 최적화된 도모을 만들 소요가 없다. · 모 도모도 찾을 수 없는 경우 1계단(Phase 1)가 시작된다. 1계단(Phase 1) : 트랜잭션 감당 사탐 도모· 예에는 단순 및 종합 도모 색인이 포함된다. · 단순 도모 색인 : 쿼리에 견련된 컬럼 및 색인의 그전 사실를 통이계지 검토에 사용한다.

이는 심상성 테이블당 하나의 색인로 결성되지만 이에 규정되지는 않는다. · 그래도 단순 도모이 없으면 더 복잡한 도모이 색인된다. 테이블당 다중 색인를 포함한다. 2계단(Phase 2) : 공립 감당 및 최적화· 위의 전략 중 어느 것도 가동하지 않으면 옵티마이저는 공립 감당 가능성을 색인한다.

이것은 기구의 감당 그릇과 결성에 따라 다르다. · 그래도 가능하지 않으면 최종 최적화 계단가 시작된다. 최종 최적화 목표는 절정의 기법으로 쿼리를 거행하기 위해 가하다 딴 모든 선택을 찾는 것이다. 최종 최적화 계단의 알고리듬은 마이크로소프트 보유이다.

– 쿼리 거행기(Query Execu정원r) 옵티마이저에서 생성한 거행 도모을 이용하여 계단별로 쿼리를 거행하는 갈래이다. <쿼리 거행기>쿼리 거행자는 접근 기법을 구환한다. 거행에 기중하다 사실 가져오기 로직에 대한 거행 도모을 제공한다. 이야기지 기관(이야기지 기관에 결부된다.

) 에서 사실를 수신여름잠 결과가 프로토콜 계층에 게시된다. 그리고 결국으로 사실가 최종 사용자에게 송전된다. 갈무리 기관(S정원rage 기관)이야기지 기관의 작업은 레코드 또는 SAN과 같은 이야기지 시스템에 사실를 갈무리하고 기중하다 때 사실를 색인하는 것이다. <사실 기록철 및 범위>사실 기록철은 물리학적으로 사실 페이지의 구성로 사실를 갈무리하며 각 사실 페이지 규모는 8kb이다.

SQL Server에서 가장 작은 갈무리 척도를 형성한다. 이렇다 사실 페이지는 논리적으로 그룹화되어 익스천막를 형성한다. (페이지 8개가 모여 하나의 익스천막를 만든다. )페이지에는 페이지 유형, 페이지 번호, 사용된 광장 규모, 여유 광장 규모 및 다음 페이지 및 기왕 페이지에 대한 영국포인터와, 같은 페이지에 대한 메타 사실 데이터를 전달하는 96byte 규모의 페이지 헤더라는 섹션 등이 있다.

<기록철 유형> 1. 기본 기록철· 모든 사실베이스에는 하나의 기본 기록철이 있다. · 테이블, 뷰, 트리거 등과 견련된 모든 귀중하다 사실를 갈무리한다. · 확장자 .

mdf 2. 도움 기록철· 사실베이스는 제 개의 도움 기록철을 포함할 수 있고 포함하지 않을 경도 있다. · 이것은 선택 내용이며 사용자별 사실를 포함한다. · 확장자 .

ndf 3. 대수 기록철· 미리 글쓰기 대수라높이 한다. · 확장자는 . ldf· 트랜잭션 관리에 사용된다.

· 원치 않는 인스턴스에서 복구하는데 사용된다. 커밋되지 않은 트랜잭션으로 롤백하는 귀중하다 작업을 수행한다. 이야기지 기관에는 세 가장귀의 결성 성분가 있다. 1.

Access MethodAccess Method 몸체는 거행을 하지 않으며, 쿼리가 다음과 같은지 확인한다. 1. SELECT 문 (DLL)2. NON-SELECT 문 (DDL 문 DML) 결과에 따라 접근 기법은 밑 계단를 수행한다.

1. 쿼리가 DDL, SELECT 문이면 쿼리가 완충기억장치 관리원로 전달된다. 2. 쿼리 if DDL, NON-SELECT 문이면 쿼리가 트랜잭션 관리원로 전달된다.

예에는 거개 UPDATE 문이 포함된다. 2. 완충기억장치 관리원(완충기억장치 Manager)완충기억장치 관리원는 밑 모듈의 노른자위 성능을 관리한다. · 도모 캐시· 사실 파싱 : 완충기억장치 캐시 및 사실 갈무리· 더티 페이지3.

도모 캐시· 기존 쿼리 도모 : 완충기억장치 관리원는 갈무리된 도모 캐시에 거행 도모이 있는지 확인한다. ‘예’인 경우 쿼리 도모 캐시 및 견련 사실 캐시가 사용된다. · 처녀 도모 캐시 : 처녀 쿼리 거행 도모이 거행 가운데귀고 복잡한 경우 플랜(Plan)캐시에 갈무리하는 것이 좋다. 그러면 다음에 SQL 서버가 같다 쿼리를 가져올 때 더 빠른 가용성이 보장된다.

고로 난생처음 거행되는 경우 Plan 거행이 갈무리되는 쿼리 몸체이다. 사실 파싱 : 완충기억장치 캐시 및 사실 갈무리완충기억장치 관리원는 기중하다 사실에 대한 접근를 제공한다. 사실가 사실 캐시에 있는지 여부에 따라 다음 두 가장귀 근접 방식이 가능하다. <완충기억장치 캐시-소프트 구문 검토>완충기억장치 관리원는 사실 캐시에서 완충기억장치의 사실를 찾는다.

있는 경우 이 사실는 쿼리 거행기에서 사용된다. 이렇게 여름잠 사실 갈무리소에서 사실를 가져오는 것과 비교하여 사실를 가져올 때 I/O 작업 수가 줄어들기 때문에 성능이 향상된다. <사실 이야기지-냉과 파싱>완충기억장치 관리원에 기중하다 사실가 없는 경우 사실 갈무리소에서 사실를 색인하고 다음에 사용하기 위해 사실 캐시에 사실를 갈무리한다. 더티 페이지트랜잭션 관리원의 감당 로직으로 갈무리된다.

<트랜잭션 관리원>대수 관리원(대수 Manager)· 대수 관리원는 트랜잭션 대수의 대수를 통석 시스템에서 수행된 모든 업데이트를 미행한다. · 대수에는 트랜잭션 자아 및 사실 수정 레코드가 있는 대수 시퀀스 번호가 있다. · 이는 커밋된 트랜잭션 및 트랜잭션 롤백을 미행하는데 사용된다. 잠금 관리원(Lock Manager)· 트랜잭션 중 사실 갈무리소의 견련 사실는 잠금 상태이다.

이 과정는 잠금 관리원에서 감당한다. · 이 과정는 사실의 관통결과 고립를 보장한다. AC자아 색채이라높이 한다. 거행 과정· 대수 관리원는 로깅을 시작하고 잠금 관리원는 견련 사실를 잠근다.

· 사실 복본은 완충기억장치 캐시에 간수된다. · 업데이트될 사실의 복본은 대수 완충기억장치에 간수되고 모든 이벤트는 사실 완충기억장치의 사실를 업데이트한다. · 사실를 갈무리하는 페이지를 더티 페이지(Dirty 면)라높이 한다. · 검색 득점 및 미리 글쓰기 로깅 : 이 과정는 더티 페이지에서 레코드로 모든 페이지를 거행하고 표시하지만 페이지는 캐시에 남아 있다.

빈도는 분당 약 1회 거행되지만 페이지는 미리 완충기억장치 대수에서 대수 기록철의 사실 페이지로 푸시된다. 이를 미리 글쓰기 로깅이라고 한다. · Lazy 체크프로텍터 : 더티 페이지는 메모리에 남아있을 수 있다. SQL 서버가 막대한 로드를 감각하고 새 트랜잭션에 완충기억장치 메모리가 기중하다 경우 캐시에서 더티 페이지를 해규정다.

LRU에서 가동한다. 완충기억장치 풀에서 레코드로 페이지를 정리하기 위해 가장 최근에 사용된 알고리듬이다. https://www. guru99.

com/sql-server-architecture. htmlhttps://dbtut. com/index. php/2019/08/20/sql-server-architecture/ .

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다