A. 사용자 쿼리에 대해 예상되는 개선 사항이 가장 높은 누락된 인덱스 10개 찾기SELECT TOP 10 * FROM sys.dm_db_missing_index_group_stats ORDER BY avg_total_user_cost * avg_user_impact * (user_seeks + user_scans) DESC; B. 특정 누락된 인덱스 그룹의 개별 누락된 인덱스 및 해당 열 정보 찾기SELECT migs.group_handle, mid.* FROM sys.dm_db_missing_index_group_stats AS migs INNER JOIN sys.dm_db_missing_index_groups AS mig ON (migs.group_handle = mig.index_..
전체 글
인덱스 데이터베이스에서 인덱스 없이 검색하려면, 테이블을 처음부터 끝까지 모두 읽어야한다. 반면, 인덱스를 이용하면 일부만 읽고 멈출 수 있다. 범위 스캔(Range Scan)이 가능하며 가능한 이유는 인덱스는 정렬 돼있기 때문이다. DBMS는 일반적으로 B-Tree 인덱스를 사용한다. 상단에 Root 블록, 중간에 Branch 블록, 맨 아래 Leaf 블록이 있다.루트와 브랜치 블록에 있는 각 레코들은 하위 블록에 대한 주소값을 갖는다.루트와 브랜치 블록엔 키값을 갖지 않는 특별한 레코드가 있다. 이를 'LMC'라고 하며 'Leftmost Child'의 줄임말이다. LMC는 자식 노드 중 가장 왼쪽 끝에 위치한 블록을 가리킨다. LMC가 가리키는 주소로 찾아간 블록에는 키 값을 가진 첫 번째 레코드보..
1. 현재 MSSQL의 상태 조회 쿼리MSSQL 인스턴스에 connect 되어 있는 세션 정보 확인SELECT s.login_time , s.host_name , s.session_id , s.program_name , [DB Name] = db_name(st.dbid) , s.login_name , s.status , [CPU Time used by session (ms)] = s.cpu_time , [# of Pages In MEM] = s.memory_usage , [Total Scheduled Time (ms)] = s.total_scheduled_time , [Since Session established Time (ms)] = s.total_elapsed_time , s.last_request..
RPS와 TPS는 부하 테스트에 사용되는 용어로 시스템의 성능을 측정하는 데 사용된다.구분내용Requests Per Second (RPS, 초당 요청 수)이는 시스템이 초당 처리할 수 있는 요청의 수를 나타낸다. 이는 부하 테스트에서 시스템의 처리 능력을 측정하는 데 사용되며, HTTP 요청과 같은 단순한 통신을 참조한다.Transactions Per Second(TPS, 초당 거래 수 )이는 시스템이 초당 처리할 수 있는 거래의 수를 나타낸다. 거래는 단순한 요청보다 복잡하며, 일반적으로 여러 단계의 처리와 데이터의 변화를 포함한다. 예를 들어, 데이터베이스에서 데이터를 조회하고, 수정하고, 다시 저장하는 작업을 거래라고 할 수 있다.RPS는 시스템의 요청 처리 능력을 측정하는 반면, TPS는 더 복잡..
HASH JOIN이란?HASH 조인은 조인될 두 테이블 중 하나를 해시 테이블로 선정하여 조인될 테이블의 조인 키 값을 해시 알고리즘으로 비교하여 매치되는 결과값을 얻는 방식입니다. HASH JOIN은 비용 기반 옵티마이저를 사용할 때만 사용될 수 있는 조인 방식이며 '=' 비교를 통한 조인에서만 사용될 수 있습니다. 주로 많은 양의 데이터를 조인해야 하는 경우에 주로 사용됩니다. HASH JOIN의 사용처1. JOIN 컬럼에 적당한 인덱스가 없어 NL JOIN이 비효율적일 때2. JOIN Access량이 많아 Random Access 부하가 심하여 NL JOIN이 비효율적일 때3. Sort Merge Join을 하기에는 두 테이블이 너무 커 Sort 부하가 심할 때4. 수행빈도가 낮고 쿼리 수행 시간이..
NESTED LOOP JOIN이란? 줄여서 NL JOIN이라고도 불리는 NESTED LOOP JOIN은 2개 이상의 테이블에서 하나의 집합을 기준으로 순차적으로 상대방 Row를 결합하여 원하는 결과를 조합하는 조인 방식입니다. 조인해야 할 데이터가 많지 않은 경우에 유용하게 사용됩니다. NESTED LOOP JOIN은 드라이빙 테이블로 한 테이블을 선정하고 이 테이블로부터 where절에 정의된 검색 조건을 만족하는 데이터들을 걸러낸 후, 이 값을 가지고 조인 대상 테이블을 반복적으로 검색하면서 조인 조건을 만족하는 최종 결과값을 얻어냅니다. Driving Table 과 Driven TableDriving Table이란 JOIN을 할 때 먼저 액세스 되어 ACCESS PATH를 주도하는 테이블을 Drivi..