sql 튜닝 3

통계정보와 실제 데이터 분포 확인하기

통계정보와 실제 데이터 분포 확인하기 Version : SQL Server 2005, 2008, 2008R2, 2012, 2014, 2016 통계(Statistics)는 검색 조건이 주어질 때 해당 컬럼으로 구성되는 인덱스를 사용할지 여부를 옵티마이저가 판단의 근거로 활용되는 자료이다. 통계는 데이터가 있는 컬럼에 대해 인덱스가 만들어질 때 이 컬럼 값의 히스토그램 및 관련정보를 이용하여 만들어진다. 통계 : http://sqlmvp.kr/140165557766 통계의 경우 데이터가 변경됨에 따라 그 정보도 업데이트되는데 일정 비율이상 데이터가 변경될 업데이트 된다. 간혹 특정 시점에서 쿼리가 느린 경우가 발생하는데 통계정보와 실제 데이터의 분포가 다를 경우 옵티마이저가 잘못된 판단을 하여 최적화된 플랜..

비결정적 사용자 정의 함수 사용으로 인한 느린 쿼리

비결정적 사용자 정의 함수 사용으로 인한 느린 쿼리 Version : SQL Server 2005, 2008, 2008R2, 2012, 2014 SQL Server에서는 사용자 정의 함수를 생성하고 사용할 수 있다. 사용자 정의 함수는 매개변수를 허용하고 복잡한 계산 등의 동작을 수행하며 해당 동작의 결과를 값으로 반환한다. 반환 값은 단일 스칼라 값이나 테이블일 수 있다. 사용자 정의 함수 만들기 : http://msdn.microsoft.com/ko-kr/library/ms186755.aspx 이번 포스트는 비결정적인 사용자 정의 함수로 인하여 쿼리가 느린 상황을 살펴보고 해결하는 방법에 대해서 살펴본다. 포스트의 내용은 CSS SQL Engineers를 참고 하였으며 읽고 이해한 내용을 정리하였다...

SQL Server 파라메터 스니핑의 다양한 접근

SQL Server 파라메터 스니핑의 다양한 접근 Version : SQL Server 2005, 2008, 2008R2, 2012, 2014 SQL Server에서 저장프로시저가 잘 수행되다가 갑자기 실행 시간이 급등한 경우가 있다. 다양한 이유가 있지만 대부분 이런 현상이 나타날 때 일반 적인 상황은 파라메터 스니핑과 관련이 있다. 다음 포스트는 파라메터 스니핑과 관련된 내용이다, 파라메터 스니핑과 데이터 스큐 : http://sqlmvp.kr/140196990001 매개변수 값의 변경과 SQL 서버 성능 저하 : http://sqlmvp.kr/140193296636 파라메터 스니핑(Parameter Sniffing)은 SQL Server에서 프로시저를 처음 호출 할 때(또는 SQL Server 재실..