통계

- 검색 조건이 주어질 때 해당 컬럼으로 구성되는 인덱스를 사용할지 여부를 옵티마이저가 판단의 근거로 활용

- 통계는 데이터가 있는 컬럼에 대해 인덱스가 만들어질 때 이 컬럼 값의 히스토그램 및 관련정보를 이용하여 만들어진다.

 

Sysindex 테이블의 image형식의 statblog컬럼에 통계정보가 저장된다.

 

SELECT * FROM SYSINDEXES

데이터베이스 옵션의 auto create statistics와 auto update statistics는 모든 데이터베이스에 대해 자동으로ture로 설정되며 이 옵션들이 설정되어 있으면 인덱스뿐만 아니라 인덱스가 없는 컬럼에 대해서도 필요할 경우 자동으로 통계가 만들어지고 일정 비율(전체행의 약20%)의 데이터가 업데이트 되면통계도 자동으로 업데이트 된다. 

밀도(density)는 1/(인덱스키들의 수)로 정의된다. 즉, 성별은 밀도가 0.5(남자, 여자)이지만 나의 주민등록 번호는 1/5000만 이 된다.(대한민국 인구수를 5천만으로 가정 했을 때).

 

이때 선택도(selectivity)는 주어진 키 값(또는 키 범위)에 해당하는 행수의 정도를 말하는데 행수가 적을수록 선택도가 높다. 그러나 전체 밀도가낮더라도 특정 키에 대한 선택도는 낮을 수도 있다.

 

[통계 보기]

DBCC SHOW_STATISTICS문을 사용하여 통계를 확인 할수 있다. 실습에서는 AdventureWorks의 [Person.Address]테이블을 사용 한다.

 

DBCC SHOW_STATISTICS([PERSON.ADDRESS], PK_ADDRESS_ADDRESSID)

Updated : 최근 통계가 업데이트된 날짜.

Rows : 전체 행 수

Rows Sampled : 샘플링된 행 수 (행 수가 많을 경우 일부를 샘플링하여 사용)

Steps : 히스토그램의 단계 수.고유 인덱스가 아닐 경우 단계수가 많아지며 최대 200단계 이다.

Average Key length : 컬럼 값의 평균 길이. Int형이므로 4가 표시 된다.

All density : 밀도. 밀도는 Steps의 값과 무관하며 일반적으로 (1/ 인덱스 키들의 수) 이다.

RANGE_HI_KEY : 각 단계(step)에서샘플링된 최대 값.

RANGE_ROWS : 각 단계에서RANGE_HI_KEY갑을 제외한 값들의 개수.

EQ_ROWS : 최대값의 개수.

DISTINCT_RANGE_ROWS : RANGE_ROWS 컬럼 값들중 고유한 값의 개수.

 

수동으로 통계 업데이트

UPDATE STATISTICS 테이블이름 

 

인덱스 정보 확인하기 

EXEC SP_HELPINDEX [PERSON.ADDRESS]


 

출처 : http://sqlmvp.kr/140165557766

by 짱구를꼭말려 2014. 1. 22. 17:01

 SINGLE_USER

이 항목에서는 SQL Server Management Studio 또는 Transact-SQL을 사용하여 SQL Server 2012에서 사용자 정의 데이터베이스를 단일 사용자 모드로 설정하는 방법에 대해 설명합니다. 단일 사용자 모드는 한 번에 하나의 사용자만 데이터베이스에 액세스할 수 있도록 지정하며 일반적으로 유지 관리 동작에 사용됩니다.

 

주의 사항

- 데이터베이스를 단일 사용자 모드로 설정할 때 다른 사용자가 데이터베이스에 연결되어 있으면 해당 데이터베이스 연결이 경고 없이 닫힙니다. 

- 옵션을 설정한 사용자가 로그오프해도 데이터베이스는 단일 사용자 모드로 유지됩니다.  이때 다른 한 명의 사용자만 데이터베이스에 연결할 수 있습니다.

 

이 옵션을 쓰기 전에 체크할 사항

데이터베이스를 SINGLE_USER로 설정하기 전에 AUTO_UPDATE_STATISTICS_ASYNC 옵션이 OFF로 설정되어 있는지 확인합니다. 이 옵션이 ON으로 설정되면 통계 업데이트에 사용되는 백그라운드 스레드가 데이터베이스에 대한 연결을 점유하므로 사용자는 단일 사용자 모드로 데이터베이스에 액세스할 수 없습니다. 자세한 내용은 ALTER DATABASE SET 옵션(Transact-SQL)을 참조하십시오.

 

ALTER 권한 필요

 

출처 : http://technet.microsoft.com/ko-kr/library/ms345598.aspx

 

 ROLLBACK IMMEDIATE

현재 접속해 있는 사용자에 대한 옵션

완료되지 않은 트랜잭션은 모두 롤백되며 AdventureWorks2012 데이터베이스로의 다른 모든 연결은 즉시 끊어집니다.

 

 

'MSSQL 2008 > 기타' 카테고리의 다른 글

COLLATION 관련 내용  (329) 2015.08.11
데이터 타입(2Byte짜리 글자가 깨질 때)  (0) 2015.08.10
MSSQL 서버이름 변경, 서버명 변경  (0) 2015.07.16
추적 플래그  (0) 2014.01.20
시스템 데이터 베이스  (0) 2014.01.05
by 짱구를꼭말려 2014. 1. 22. 16:38