🙇‍♀️인덱스분석

– 사용자가 많아 질 떄 데이터베이스가 성능에 부하의 원인이 되지 않도록 튜닝 – 성능 분석부터 알아보자

🪐DB 정보 살펴보기

  • DB 정보 살펴보기 EXEC sp_helpdb 'Northwind'

  • 임시 테이블 만들자 (인덱스 테스트용) ``` CREATE TABLE test ( EmployeeID INT NOT NULL, LastName NVARCHAR(20) NULL, FirstName NVARCHAR(20) NULL, HireDate DATETIME NULL ); GO

INSERT INTO test SELECT EmployeeID, LastName, FirstName, HireDate FROM Employees;


### 🪐이중트리를 보기 위한 설정
* FILLFACTOR (리프 페이지 공간 1%만 사용)
* PAD_INDEX (FILLFACTOR 중간 페이지 적용)

CREATE INDEX Test_Index ON test(LastName) WITH (FILLFACTOR = 1, PAD_INDEX = ON) GO


* 인덱스 번호 찾기

SELECT index_id, name FROM sys.indexes WHERE object_id = object_id(‘test’);


* 2번 인덱스 정보 살펴보기
`DBCC IND('Northwind', 'test', 2);`

* Root(2) -> Branch(1) -> Leaf(0)
		857
	880		856
840		848		849 ```
  • Table {Page}{Page}{Page}{Page}{Page}

  • HEAP RID([페이지 주소(4)][파일ID(2)][슬롯번호(2)] 조합한 ROW 식별자. 테이블에서 정보 추출) ``` DBCC PAGE(‘Northwind’, 1/파일번호/, 840/페이지번호/, 3/출력옵션/); DBCC PAGE(‘Northwind’, 1/파일번호/, 848/페이지번호/, 3/출력옵션/); DBCC PAGE(‘Northwind’, 1/파일번호/, 849/페이지번호/, 3/출력옵션/);

DBCC PAGE(‘Northwind’, 1/파일번호/, 880/페이지번호/, 3/출력옵션/); DBCC PAGE(‘Northwind’, 1/파일번호/, 856/페이지번호/, 3/출력옵션/); DBCC PAGE(‘Northwind’, 1/파일번호/, 857/페이지번호/, 3/출력옵션/); ```

🪐추가 용어

  • Random Access (한 건 읽기 위해 한 페이지씩 접근)
  • Bookmark Lookup (RID를 통해 행을 찾는다)

태그:

카테고리:

업데이트: