분류 전체보기
-
매개변수 스니핑 (with recompile)SQLServer 2020. 1. 14. 17:25
테스트 환경 - OS : Windows 2008 R2 DataCenter - DBMS : SQL Server 2012 Enterprise Edition + SP4 - 참고문서 : https://docs.microsoft.com/ko-kr/previous-versions/sql/sql-server-2012/ms190439(v=sql.110) 내용 - 개요 저장프로시저의 경우 최초 실행될 때 실행계획이 프로시저캐시 라는 메모리에 저장되어 추후 해당 프로시저가 실행될때 실행계획이 재사용된다. 그런데, 최초 프로시저가 실행될때 매개변수에 하루 등 비교적 짧은 기간 검색이 사용되어 해당 컬럼의 인덱스를 사용하는 실행계획이 저장되었다. 이후 실행될때에는 1년과 같이 긴 기간 검색이 발생한 경우는 인덱스 사용 검색보..
-
오류 핸들링 (try ... catch)SQLServer 2020. 1. 14. 16:55
테스트 환경 - OS : Windows 2008 R2 DataCenter - DBMS : SQL Server 2012 Enterprise Edition + SP4 - 참고문서 : https://docs.microsoft.com/ko-kr/previous-versions/sql/sql-server-2012/ms175976%28v%3dsql.110%29 내용 - 개요 T-SQL 에서 발생하는 오류를 제어합니다. - 구문 BEGIN TRY { sql_statement | statement_block } END TRY BEGIN CATCH [ { sql_statement | statement_block } ] END CATCH [ ; ] CATCH 블록의 범위에서 다음 시스템 함수를 사용하여 CATCH 블록을 ..
-
인덱스 채우기 비율 (FILLFACTOR, PAD_INDEX )SQLServer 2020. 1. 14. 14:46
테스트 환경 - OS : Windows 2008 R2 DataCenter - DBMS : SQL Server 2012 Enterprise Edition + SP4 - 참고문서 : https://docs.microsoft.com/ko-kr/previous-versions/sql/sql-server-2012/ms177459(v=sql.110) 내용 - 개요 인덱스 페이지가 가득 찬 상태에서 추가로 인덱스 데이터가 해당 인덱스 페이지에 입력되는 경우 내부적으로 인덱스 페이지를 분할 시켜야 합니다. 인덱스 페이지의 분할은 성능에 영향을 줄 수 있습니다. 인덱스 페이지 분할을 상대적으로 적게 발생 시키려면 인덱스 페이지에 데이터를 채우는 비율을 낮게 설정하면 되는데 낮게 설정하면 인덱스 페이지 IO 가 증가하고 ..
-
인덱스 조각화 확인 방법SQLServer 2020. 1. 14. 13:52
테스트 환경 - OS : Windows 2008 R2 DataCenter - DBMS : SQL Server 2012 Enterprise Edition + SP4 - 참고문서 : https://docs.microsoft.com/ko-kr/previous-versions/sql/sql-server-2012/ms189858(v=sql.110) 내용 - 인덱스 조각화 개요 SQL Server 데이터베이스 엔진에서는 기본 데이터에 삽입, 업데이트 또는 삭제 작업을 수행할 때마다 인덱스를 자동으로 유지 관리합니다. 이러한 수정이 거듭되면 시간이 흐름에 따라 인덱스의 정보가 조각화되어 데이터베이스 내에 흩어지게 될 수 있습니다. 이런 현상을 인덱스 조각화 라고 합니다. 조각화는 키 값을 기준으로 하는 인덱스의 논리..
-
columnstore 인덱스SQLServer 2020. 1. 14. 13:26
테스트 환경 - OS : Windows 2008 R2 DataCenter - DBMS : SQL Server 2012 Enterprise Edition + SP4 - 참고문서 : https://docs.microsoft.com/ko-kr/previous-versions/sql/sql-server-2012/gg492153(v=sql.110) 내용 - 개요 하나의 인덱스 페이지에 복수개의 열을 포함하지 않고 특정 열만 포함 시킵니다. xVelocity 메모리 최적화 columnstore 인덱스는 일종의 압축된 비클러스터형 인덱스입니다. OLTP 보다는 DW 에 사용 가능할 것 같습니다. - 구문 CREATE [ NONCLUSTERED ] COLUMNSTORE INDEX index_name ON ( colum..
-
필터링된 인덱스SQLServer 2020. 1. 14. 12:56
테스트 환경 - OS : Windows 2008 R2 DataCenter - DBMS : SQL Server 2012 Enterprise Edition + SP4 - 참고문서 : https://docs.microsoft.com/ko-kr/previous-versions/sql/sql-server-2012/ms188783%28v%3dsql.110%29 내용 개요 인덱스를 생성할때 인덱스에 포함될 데이터를 필터 할 수 있습니다. 비 클러스터형 인덱스에만 해당됩니다. WHERE 인덱스에 포함할 행을 지정하여 필터링된 인덱스를 만듭니다. 필터링된 인덱스는 테이블의 비클러스터형 인덱스여야 합니다. 필터링된 인덱스의 데이터 행에 대한 필터링된 통계를 만듭니다. 필터 조건자는 간단한 비교 논리를 사용하며 계산 열, ..
-
SQL Server 2012 에서 지원하는 기본 함수SQLServer 2020. 1. 13. 16:47
테스트 환경 - OS : Windows 2008 R2 DataCenter - DBMS : SQL Server 2012 Enterprise Edition + SP4 - 참고문서 : https://docs.microsoft.com/ko-kr/previous-versions/sql/sql-server-2012/ms174318(v=sql.110) 내용 SQL Server 2012 에서 지원하는 기본 함수 https://docs.microsoft.com/ko-kr/previous-versions/sql/sql-server-2012/ms174318(v=sql.110)
-
OFFSET 및 FETCHSQLServer 2020. 1. 13. 16:36
테스트 환경 - OS : Windows 2008 R2 DataCenter - DBMS : SQL Server 2012 Enterprise Edition + SP4 - 참고문서 : https://docs.microsoft.com/ko-kr/previous-versions/sql/sql-server-2012/ms188385(v=sql.110) 내용 개요 행의 수를 제한 할 경우 보통 TOP 키워드를 사용했습니다. SQL Server 2012 부티 새롭게 지원되는 OFFSET 및 FETCH 를 사용하여 행 수 제한이 가능하다. MS 에서는 OFFSET 및 FETCH 를 사용하여 행 수 제한하는 것을 권장합니다. TOP 절 대신 OFFSET 및 FETCH 절을 사용하여 쿼리 페이징 솔루션을 구현하고 클라이언트 ..