본문 바로가기
반응형

IT562

[MSSQL] CROSS APPLY를 통한 성능개선(부분 범위처리 TOP 5) CROSS APPLY란? MSSQL에서는 CROSS APPLY 조인 방식을 지원합니다. 인라인 뷰(FROM 절의 서브쿼리)에서 조인 조건으로 전달받은 값을 뷰 안에서 사용 할 수 있도록 지원합니다. CROSS APPLY 성능비교 예제 이번 예제는 T_OUTER 테이블의 gid=1 데이터와 T_INNER 테이블을 조인한 결과에서 id별로 가장 최근 데이터를 5개씩만 출력하는 구문이다. T_OUTER 테이블은 100개의 행을 가지며 id가 1~100까지, 그 중 gid=1 인 행이 50개 gid=2인 행이 50개씩 있다 인덱스 PK_T_OUTER (id) T_OUTER (gid) INCLUDE (id) T_INNER 테이블은 1,000,000 행을 가지며 id가 1~100까지 각 id마다 10,000건씩 존.. 2023. 4. 15.
[MSSQL]Index spool(Eager, Lazy)개념 및 차이점 실행 계획을 보다 보면 index spool(Eager Spool, Lazy Spool) 같은 스풀 연산자 계획을 볼 수 있다. Spool 이란 무엇이며 어떤 상황에서 발생하는지 알아보고 spool을 제거하는 방법에 대해서 추가로 알아보자. Spool이란? - 스풀 작업은 단순히 데이터의 임시 저장소입니다 . - 데이터는 원본 테이블에서 읽고 Tempdb 데이터베이스의 작업 테이블에 저장됩니다 - 옵티마이저가 테이블 또는 인덱스에 대한 다중 액세스를 수행하는 것보다 작업 테이블에서 데이터를 읽는 것이 더 효율적이라고 평가할 때 사용됩니다 Eager Spool Eager Spool 및 Lazy Spool은 항상 다른 물리적 스풀 연산자와 함께 표시됩니다. Eager Spool은 이전 오퍼레이터의 요청을 받.. 2023. 4. 15.
[MSSQL]관계읽기(데이터 모델링 필수관계 선택관계) 관게 읽기 먼저 관계에 참여하는 엔터티 기준으로 하나 또는 각각으로 읽고 대상 엔터티의 개수를 읽고 관계 선택사항과 관계명을 읽도록 한다. -각각의 사원은 한 부서에 항상 속한다. -각 부서에는 여러 사원이 때때로 소속된 2023. 4. 15.
[MSSQL]INCLUDE INDEX(커버드/포괄 인덱스) 성능차이 설명 및 예제 MSSQL에는 일반 인덱스 말고 INCLUDE INDEX(커버드/포괄 인덱스) 라는 인덱스를 만들 수 있다. 이번 시간에는 INCLUDE INDEX(커버드/포괄 인덱스)가 무엇인지 알아보고 일반 인덱스와의 비교 테스트를 진행해 보려고한다. INCLUDE INDEX(커버드/포괄 인덱스)란? 포괄 열이 있는 인덱스는 비클러스터형 인덱스의 리프 페이지에 데이터를 포함하고 있는 열을 의미한다. 비클러스터형 인덱스가 클러스터형 인덱스보다 느린 이유는 리프 페이지 이후에 다시 데이터 페이지를 찾아가야 하기 때문에 느려지는데 포괄 열이 있는 인덱스는 리프 페이지에 데이터까지 같이 존재하므로 데이터 페이지를 찾아가지 않아도 비클러스터형 인덱스에서 모든 작업이 종료된다. 이 것은 마치 클러스터형 인덱스를 검색하는 효과를.. 2023. 4. 15.
[MSSQL] UPDATE SELECT 구문 쿼리 튜닝(성능 및 속도 개선) update를 진행 할 경우 임시테이블을 사용해서 성능 개선이 가능하다 아래의 예제를 통해서 비용차이를 확인해보자 use INDEX_TEST GO 테이블 생성 CREATE TABLE OrderT( 주문번호 int ,상품 varchar(100) ,주문일자 datetime, CONSTRAINT PK_OrderT_주문번호_상품 PRIMARY KEY CLUSTERED ( 주문번호 ASC, 상품 ASC ) ) GO CREATE TABLE OrderT2( 주문번호 int ,상품 varchar(100) ,주문일자 datetime, CONSTRAINT PK_OrderT2_주문번호_상품 PRIMARY KEY CLUSTERED ( 주문번호 ASC, 상품 ASC ) ) GO 데이터 입력 --100,000개의 데이터를 입력 .. 2023. 4. 15.
[MSSQL] in,not in, exists, not exists 내부 동작로직 및 예제 in,not in, exists, not exists 함수를 제대로 모르고 사용하게 되면 원하는 결과가 아닌 다른 결과를 가져와 프로그램 오류를 발생시킬 수 있다. 내부로직을 예제를 통해서 확인하고 제대로 활용해보도록 하자 --과일 테이블 생성 및 데이터 삽입 create table fruit( number int, fruit varchar(50) ) GO INSERT INTO fruit VALUES (1,'사과') INSERT INTO fruit VALUES (2,'바나나') INSERT INTO fruit VALUES (3,NULL) INSERT INTO fruit VALUES (NULL,'수박') INSERT INTO fruit VALUES (4,'망고') INSERT INTO fruit VALUE.. 2023. 4. 15.
[MSSQL]복합(결합) 인덱스 생성규칙 - 순서에 따른 I/O 비용차이(랜덤액세스) 복합(결합) 인덱스의 컬럼 순서는 4개의 우선 순위에 의해 생성되어야 한다. 이를 무시하고 인덱스를 생성하면 복합(결합) 인덱스를 이용하여 성능 향상을 기대하기는 어렵다. - 1순위 : 컬럼이 사용한 연산자에 의한 인덱스 컬럼 선정 - 2순위 : 랜덤 액세스를 고려한 인덱스 컬럼 선정 - 3순위 : 정렬 제거를 위한 인덱스 컬럼 선정 - 4순위 : 단일 컬럼의 분포도를 고려한 인덱스 컬럼 선정 이번 시간에는 2순위인 랜덤 '액세스를 고려한 인덱스 컬럼 선정' 에 대해서 알아보고자 한다. 랜덤액세스란? 랜덤 액세스는 데이터를 저장하는 블록을 한번에 여러 개 액세스하는 것이 아니라 한 번에 하나의 블록만을 액세스하는 방식이다. 한 번에 여러 개의 블록을 액세스한다면 같은 양의 데이터에 대해 적은 횟수의 디스.. 2023. 4. 15.
[MSSQL]인덱스 생성(최종 업데이트 시간)정보 확인 인덱스 모든 정보 확인 인덱스의 정보를 확인하기 위해서 sys.indexes 테이블을 확인하면 다양한 정보를 얻을 수 있습니다. USE AdventureWorks2016 GO select * From sys.indexes 마지막 업데이트 시간 확인 마지막 업데이트된 인덱스를 확인하는 쿼리이다. /* 최종업데이트시간확인 */ USE AdventureWorks2016 GO Select STATS_DATE ( object_id , index_id ) indexDate , * From sys.indexes where object_id=object_id('production.Product') 2023. 4. 15.
[MSSQL]tempDB 경로변경으로 인한 서버 재시작불가(오류코드:17204,5123) tempDB는 모든 데이터베이스에서 공통으로 사용하는 임시 공간입니다. 이 공간에 문제가 발생하면 Latch 경합 등 다양한 문제가 발생할 수 있습니다. 작업내용 Tempdb 경로를 변경 후 SQL서버 재시작 오류내용 SQL서버 재시작이 불가하였고 윈도우 이벤트 로그를 확인하니 아래와 같이 2가지 에러 로그가 찍혀 있었습니다. 이벤트 오류 ID : 5123 물리적 파일 'C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER_TEST\MSSQL\temp\tempdb.mdf'을(를) 열거나 만드는 중 CREATE FILE에서 운영 체제 오류 5(액세스가 거부되었습니다.)이(가) 발생했습니다. 이벤트 오류 ID : 17204 FCB::Open failed: 파.. 2023. 4. 15.
[엑셀] 마우스 휠 스크롤 안될 때 엑셀 시트의 위 아래를 보기위해서 마우스 휠을 움직여서 데이터를 보는데 갑자기 휠을 돌려도 화면이움직여 지지 않는 경우가 발생합니다. 스크롤 락이 걸린 경우인데요. 해당 문제가 발생 했을 경우 해제하는 방법에 대해서 알아보겠습니다. Scroll Lock 해결방법 1. 엑셀의 좌측 하단에 준비에서 마우스 우 클릭 2.'Scroll Lock' 체크 3.체크표시가 활성화 되어 있고 해제라고 글자가 표기되어 있으면 적용완료 이상으로 엑셀에서 마우스 휠이 고정되어 움지이지 않는 경우 해제하는 방법에 대해서 알아보았습니다. 2023. 4. 15.
반응형