본문 바로가기
Skills/MsSQL

[MSSQL] SQL-Server 자주 사용하는 옵션들 정리

by Hoseok 2023. 11. 13.
728x90
반응형

 

1. SET ANSI_NULLS ON


SET ANSI_NULLS ON을 설정하면, SQL Server는 NULL 값 비교를 ANSI SQL 표준에 따라 처리한다.

이 모드에서는 NULL과의 모든 비교 (=, !=, <, >, <=, >=)가 UNKNOWN으로 평가된다. 

즉, NULL 값은 다른 NULL과도 같지 않다고 간주된다 (NULL = NULL은 거짓).


예를 들어, SET ANSI_NULLS ON 상태에서 WHERE column = NULL 또는 WHERE column != NULL 쿼리는 어떤 결과도 반환하지 않는다. 

 

대신 IS NULL 또는 IS NOT NULL을 사용해야 한다.

 

2. SET QUOTED_IDENTIFIER ON


SET QUOTED_IDENTIFIER ON을 설정하면, 문자열 상수를 따옴표 (')로식별자 (예: 테이블 또는 컬럼 이름)를 대괄호 ([])나 이중 따옴표 (")로 묶어야 한다.


이 설정이 활성화되면, 예를 들어 "MyTable"은 식별자 (테이블 또는 컬럼 이름 등)로 해석되고, 'MyTable'은 문자열 상수로 해석된다.

 

3. PAD_INDEX = OFF


PAD_INDEX 옵션은 인덱스의 중간 노드에 여유 공간을 두는 옵션이다.

 

OFF로 설정되면, 추가 여유 공간을 두지 않는다. 

 

이는 인덱스의 리프 레벨에만 적용되며, 중간 레벨에는 적용되지 않는다.


4. STATISTICS_NORECOMPUTE = OFF


STATISTICS_NORECOMPUTE 옵션은 테이블이나 인덱스에 대한 통계를 자동으로 재계산하는 것을 제어하는 옵션이다.

 

OFF로 설정하면, SQL Server가 필요시 자동으로 통계를 업데이트한다.


5. IGNORE_DUP_KEY = OFF


IGNORE_DUP_KEY 옵션은 인덱스가 중복 키 값을 무시할지 여부를 결정한다.

 

OFF 상태에서는 중복 키 값이 삽입 시 오류를 발생시킨다.

 

ON으로 설정하면 중복 키 값을 무시하고 오류를 발생시키지 않는다.


6. ALLOW_ROW_LOCKS = ON


ALLOW_ROW_LOCKS 옵션은 인덱스에 대한 행 레벨 잠금을 허용한다.

 

이는 동시성과 성능에 영향을 줄 수 있으며, ON으로 설정하면 행 레벨 잠금이 가능하다.


7. ALLOW_PAGE_LOCKS = ON


ALLOW_PAGE_LOCKS 옵션은 페이지 레벨 잠금을 허용한다. 

 

이 옵션 역시 동시성과 성능에 영향을 미치며, ON으로 설정하면 페이지 레벨 잠금이 가능하다.

 

728x90
반응형