header-img
Info :
728x90

 

쿼리λ₯Ό μ§œλ‹€λ³΄λ©΄ 쿼리 μ„±λŠ₯ 뢄석이 ν•„μš”ν•œ μΌ€μ΄μŠ€κ°€ 생긴닀.

 

κ·Έλ•Œ μ‚¬μš©ν•˜λŠ” 것이 SET STATISTICS.

κ΄€λ ¨λœ μ…‹νŒ…μ— λŒ€ν•΄ μ•Œμ•„λ³΄λ„λ‘ ν•˜κ² λ‹€.

 

 

μ‹€ν–‰ 톡계 정보와 κ΄€λ ¨λœ IO

 

SET STATISTICS IO ON
SET STATISTICS IO OFF

 

Statistics 의 IO μ˜΅μ…˜μ„ 켜면 톡계 정보가 ν‘œμ‹œλœλ‹€.

 

 

이런 μ‹μœΌλ‘œ message μ°½μ—μ„œ 확인이 κ°€λŠ₯ν•˜λ‹€.

 

확인할 수 μžˆλŠ” 정보

Table ν…Œμ΄λΈ” 정보
Scan Count μ‹€ν–‰λœ 검색 수
Logical Reads 리적 읽기 수. 데이터 μΊμ‹œμ—μ„œ 읽은 νŽ˜μ΄μ§€ 수.
Physical Reads 물리적 읽기 수. λ””μŠ€ν¬μ—μ„œ 읽은 νŽ˜μ΄μ§€ 수.
Read-ahead Reads 미리 읽기 수. 쿼리에 λŒ€ν•΄ μΊμ‹œμ— 넣어진 νŽ˜μ΄μ§€ 수
LOB Logical Reads LOB 논리적 읽기 수.
데이터 μΊμ‹œμ—μ„œ 읽은 text, ntext, image λ˜λŠ” 큰 κ°’ μœ ν˜•(varchar(max), nvarchar(max), varbinary(max)의 νŽ˜μ΄μ§€ 수.
LOB Physical Reads LOB 물리적 읽기 수.
λ””μŠ€ν¬μ—μ„œ 읽은 text, ntext, image λ˜λŠ” 큰 κ°’ μœ ν˜•μ˜ νŽ˜μ΄μ§€ 수
LOB Read-ahead Reads LOB 미리 읽기 수.
쿼리에 λŒ€ν•΄ μΊμ‹œμ— 넣어진 text, ntext, image λ˜λŠ” 큰 κ°’ μœ ν˜•μ˜ νŽ˜μ΄μ§€ 수.

 

 

μ‹œκ°„ 톡계 정보와 κ΄€λ ¨λœ TIME

 

SET STATISTICS TIME ON
SET STATISTICS TIME OFF

 

statistics의 time μ˜΅μ…˜μ„ 켜면 μ‹œκ°„ 톡계와 κ΄€λ ¨λœ 정보가 ν‘œμ‹œ λœλ‹€.

 

 

μœ„μ™€ 같이 Messages μ°½μ—μ„œ 확인이 κ°€λŠ₯ν•˜λ‹€.

 

확인할 수 μžˆλŠ” 정보

CPU time CPU μ‹œκ°„
elapsed time κ²°κ³Ό μ‹œκ°„

 

 

처리 κ³Όμ • 정보와 κ΄€λ ¨λœ Profile

 

SET STATISTICS TIME ON;
SET STATISTICS TIME OFF;

 

statistics의 profile μ˜΅μ…˜μ„ 켜면 쿼리의 처리 과정에 λŒ€ν•œ 정보가 ν‘œμ‹œ λœλ‹€.

 

 

μœ„μ˜ κ²°κ³Ό κ°’ κ³Ό ν•¨κ»˜ μ•„λž˜μ— ν…Œμ΄λΈ” ν˜•νƒœλ‘œ μ œκ³΅λœλ‹€.

 

확인할 수 μžˆλŠ” 정보

Rows 각 μ—°μ‚°μžμ—μ„œ λ§Œλ“  μ‹€μ œμ˜ ν–‰ 수.
였라클의 A-Row 와 같은 κ°œλ…
Executes 각 μ—°μ‚°μžκ°€ λͺ‡ 번 싀행이 λ˜μ—ˆλŠ”μ§€μ— λŒ€ν•œ 정보
StmtText * Statement Text
μ„ΈλΆ€μ μœΌλ‘œ μ–΄λ–€ 싀행이 μžˆμ—ˆλŠ”μ§€λ₯Ό λ³΄μ—¬μ£Όκ±°λ‚˜ (Plan_Row)
μ‹€μ œλ‘œ μ‹€ν–‰λœ 쿼리λ₯Ό λ³΄μ—¬μ€Œ (Plan_Rowκ°€ μ•„λ‹Œ ν–‰)

각 μ—°μ‚°μžμ—μ„œ 물리적(Nested Loops), 논리적(Inner Join)으둜 μ–΄λ–€ λ™μž‘μ΄ μžˆμ—ˆλŠ”μ§€λ₯Ό λ³Ό 수 있음.
StmtId μΌκ΄„μ²˜λ¦¬μ— μžˆλŠ” 문의 개수.

μ—¬λŸ¬κ°œμ˜ 쿼리가 μ‹€ν–‰λ˜μ—ˆμ„ 경우 λ‚˜μ€‘μ— μ‹€ν–‰λœ 쿼리일수둝 μˆ«μžκ°€ λ†’μŒ.
NodeId ν˜„μž¬ 쿼리의 Node Id.
Parent ν˜„μž¬ μ‹€ν–‰κ³„νšμ˜ λΆ€λͺ¨ 단계 Node Id.
PhysicalOp μ‹€μ œ 물리적으둜 μ–΄λ–€ κ΅¬ν˜„μ΄ μžˆμ—ˆλŠ”μ§€μ— λŒ€ν•œ μ„€λͺ…
Plan_Rowμ—μ„œλ§Œ 제곡.
LogicalOp 논리적(κ΄€κ³„ν˜•)으둜 μ–΄λ–€ 연산이 μžˆμ—ˆλŠ”μ§€μ— λŒ€ν•œ μ„€λͺ…
Plan_Rowμ—μ„œλ§Œ 제곡
Argument μˆ˜ν–‰λ˜λŠ” μž‘μ—…μ˜ μΆ”κ°€ 정보λ₯Ό 제곡(인수)

TOP 절의 ν–‰ 수, Group by 쑰건, Where 쑰건, Index Seek, Scan 사항 등이 이에 포함
DefinedVales ν•΄λ‹Ή μ—°μ‚°μžκ°€ μ‚¬μš©ν•˜λŠ” 값에 λŒ€ν•œ λͺ©λ‘
ν˜„μž¬ 쿼리에 μžˆλŠ” '계산 식' μ΄λ‚˜ 쿼리 처리λ₯Ό μœ„ν•΄ μ‚¬μš©ν•œ μΏΌλ¦¬ν”„λ‘œμ„Έμ„œ 'λ‚΄λΆ€ κ°’'을 의미
EstimateRows ν˜„μž¬ μ—°μ‚°μžκ°€ μƒμ„±ν•œ 좜λ ₯의 μ˜ˆμƒ ν–‰ 수
EstimateIO ν˜„μž¬ μ—°μ‚°μž μž‘μ—…μ— λŒ€ν•œ μ˜ˆμƒ IO λΉ„μš©
EstimateCPU ν˜„μž¬ μ—°μ‚°μž μž‘μ—…μ— λŒ€ν•œ μ˜ˆμƒ CPU λΉ„μš©
AvgRowSize ν˜„μž¬ μ—°μ‚°μžλ₯Ό 톡해 ν†΅κ³Όλ˜λŠ” ν–‰μ˜ μ˜ˆμƒ 크기(byte)
TotalSubtressCost ν˜„μž¬ μž‘μ—…κ³Ό ν•˜μœ„ μ—°μ‚°μžλ₯Ό ν†΅ν•œ μž‘μ—… λΉ„μš©μ˜ μ˜ˆμƒ λˆ„μ  λΉ„μš©
OutputList ν˜„μž¬ μ—°μ‚°μžλ₯Ό 톡해 μ–΄λ–€ 열듀이 μ‚°μΆœλ˜λŠ” 지에 λŒ€ν•œ 정보
Warnings ν˜„μž¬ μž‘μ—…κ³Ό κ΄€λ ¨λœ κ²½κ³  메세지 λͺ©λ‘
Type ν˜„μž¬ μ—°μ‚° Nodeκ°€ μ–΄λ–€ μœ ν˜•μ˜ μž‘μ—…μΈμ§€μ— λŒ€ν•œ 정보

Plan_Row에 λŒ€ν•œ ꡬ뢄은 이 열을 톡해 κ°€λŠ₯함.
Parallel 연산이 λ³‘λ ¬λ‘œ μ‹€ν–‰λ˜μ—ˆλŠ”μ§€ μ•„λ‹Œμ§€μ— λŒ€ν•œ 정보

0은 λΉ„ λ³‘λ ¬μ²˜λ¦¬. 1은 λ³‘λ ¬μ²˜λ¦¬.
EstimateExecutions ν˜„μž¬ 쿼리 μ‹€ν–‰ λ™μ•ˆ ν•΄λ‹Ή μ—°μ‚°μžκ°€ 싀행될 μ˜ˆμƒ 횟수

 

 


 

μ‹€ν–‰κ³„νšλ“€μ„ λ³΄λ©΄μ„œ

μ λ‹Ήν•˜κ²Œ 쿼리 νŠœλ‹μ„ μ§„ν–‰ν•˜λŠ” 것도 ν•˜λ‚˜μ˜ λŠ₯λ ₯.

 

 

 

728x90
더보기
BACKEND/MSSQL