강의 컨설팅 트레이닝 무료진단 무료책자 마케팅편지 마케팅정보공유 다이어리 서비스제휴 고객센터

[MSSQL]데이터베이스 옵션 설정
작성자 : 99 단국강토
등록날짜 : 2009.01.12 09:47
3,052

출처http://blog.naver.com/choyjoy?Redirect=Log&logNo=150000800359

데이타 베이스 옵션과 성능

Auto shrink - 안좋다

Auto growth - 안좋다

Auto close - 안좋다

Auto create statistics - 좋다

Auto update statistics - 좋다

조각 모음 - 안좋다

 

데이터베이스 옵션 설정

각 데이터베이스마다 데이터베이스의 특징을 결정하는 여러 데이터베이스 수준 옵션을 설정할 수 있습니다. 시스템 관리자, 데이터베이스 소유자, sysadmindbcreator 고정 서버 역할과 db_owner 고정 데이터베이스 역할의 구성원만 이 옵션을 수정할 수 있습니다. 각 데이터베이스마다 고유한 옵션이 있으며 다른 데이터베이스에는 영향을 주지 않습니다.

ALTER DATABASE 문의 SET 절,

sp_dboption 시스템 저장 프로시저

또는 SQL Server 엔터프라이즈 관리자를 사용하여

데이터베이스 옵션을 설정할 수 있습니다.

?mk:@MSITStore:D:Program%20FilesMicrosof

참고   서버 차원의 설정은 sp_configure 시스템 저장 프로시저나 SQL Server 엔터프라이즈관리자를 사용하여 설정할 수 있습니다. 자세한 내용은 구성 옵션 설정을 참고하십시오. 연결 수준 설정은 SET 문을 사용하여 지정합니다. 자세한 내용은 SET 옵션을 참조하십시오.

데이터베이스 옵션을 설정하면 검사점이 자동으로 수행되어 변경 사항이 곧바로 반영되도록 합니다.

새로 만든 데이터베이스에 대한 데이터베이스 옵션의 기본값을 바꾸려면 model 데이터베이스에서 해당 데이터베이스 옵션을 변경하십시오. 예를 들어, 이후에 만들어진 새 데이터베이스에 대해 AUTO_SHRINK 데이터베이스 옵션의 기본 설정을 ON으로 지정하려면, model의 AUTO_SHRINK 옵션을 ON으로 설정하십시오.

데이터베이스 옵션에는 다음의 다섯 가지 범주가 있습니다.

  • 자동 옵션

  • 커서 옵션

  • 복구 옵션

  • SQL 옵션

  • 상태 옵션
자동 옵션

자동 옵션은 특정 자동 동작을 제어합니다.

AUTO_CLOSE

이 옵션이 ON이면, 데이터베이스를 마지막으로 사용한 사용자가 종료하고 데이터베이스의 모든 프로세스가 완료될 때 데이터베이스가 완전히 닫히고 종료됩니다. 이에 따라 모든 리소스가 해제됩니다. 기본적으로, 운영 체제와 상관없이 Microsoft? SQL Server™ 2000 Desktop Engine을 사용할 때는 모든 데이터베이스에서 이 옵션이 ON으로 설정되며 다른 Edition의 경우에는 OFF로 설정됩니다. 사용자가 데이터베이스를 다시 사용하려 할 때 데이터베이스가 자동으로 다시 열립니다. 데이터베이스가 완전히 종료되었으면, 사용자가 데이터베이스를 다시 사용하려 할 때에는 SQL Server를 다시 시작해야 데이터베이스를 사용할 수 있습니다. 이 옵션이 OFF이면, 사용자가 현재 데이터베이스를 사용하지 않아도 열린 상태로 남아 있습니다.

AUTO_CLOSE 옵션을 사용하면 데이터베이스 파일을 일반 파일처럼 다룰 수 있기 때문에 데스크톱 데이터베이스에서 유용합니다. 데이터베이스 파일을 이동하거나 복사하여 백업본을 만들 수도 있고 다른 사용자에게 전자 우편으로 보낼 수도 있습니다. AUTO_CLOSE 옵션은 반복적으로 SQL Server로 연결을 설정하고 끊는 응용 프로그램에서 액세스하는 데이터베이스에 대해 사용하면 안됩니다. 각 연결 사이에 데이터베이스를 닫았다 다시 여는 데 드는 오버헤드로 인해 성능이 낮아질 수 있습니다.

이 옵션의 상태는 DATABASEPROPERTYEX 함수의 IsAutoClose 속성을 검사하여 알 수 있습니다.

AUTO_CREATE_STATISTICS

이 옵션이 ON으로 설정되면 조건자에서 사용되는 열에 대해 자동으로 통계가 생성됩니다. 통계를 추가하면 SQL Server 쿼리 최적화 프로그램이 쿼리 평가 방법을 더 잘 결정할 수 있기 때문에 쿼리 성능이 향상됩니다. 통계가 사용되지 않으면 SQL Server가 자동으로 그 통계를 삭제합니다. 이 옵션이 OFF로 설정되면 SQL Server가 통계를 자동으로 만들지 않습니다. 그대신, 직접 통계를 만들 수 있습니다. 자세한 내용은 통계 정보를 참조하십시오.

AUTO_CREATE_STATISTICS의 기본값은 ON입니다.

이 옵션의 상태는 DATABASEPROPERTYEX 함수의 IsAutoCreateStatistics 속성을 검사하여 알 수 있습니다.

AUTO_UPDATE_STATISTICS

이 옵션이 ON으로 설정되면, 테이블의 데이터가 변경되어 기존 통계가 최신 상태가 아닐 때 그 통계를 자동으로 업데이트합니다. 이 옵션이 OFF로 설정되면, 기존 통계가 자동으로 업데이트되지 않습니다. 대신 통계를 직접 업데이트할 수 있습니다. 자세한 내용은 통계 정보를 참조하십시오.

AUTO_UPDATE_STATISTICS의 기본값은 ON입니다.

이 옵션의 상태는 DATABASEPROPERTYEX 함수의 IsAutoUpdateStatistics 속성을 검사하여 알 수 있습니다.

AUTO_SHRINK

이 옵션이 ON으로 설정되면, 데이터베이스 파일이 정기적으로 축소됩니다. 데이터 파일과 로그 파일이 모두 자동으로 축소될 수 있습니다. 이 옵션이 OFF이면, 사용되지 않는 공간을 정기적으로 검사할 때 데이터베이스 파일을 자동으로 축소하지 않습니다. 기본적으로, 운영 체제와 상관없이, SQL Server Desktop Edition을 사용할 때는 모든 데이터베이스에서 이 옵션이 ON으로 설정되며, 다른 Edition의 경우에는 OFF로 설정됩니다.

AUTO_SHRINK는 데이터베이스가 단순 복구 모델로 설정되거나 로그가 백업된 경우에만 트랜잭션 로그의 크기를 축소합니다.

AUTO_SHRINK 옵션은 파일에서 사용되지 않는 공간이 25% 이상일 때 파일을 축소합니다. 파일은 파일의 25%가 사용되지 않을 때의 크기 또는 파일이 만들어졌을 때의 크기 중 더 큰 값으로 축소됩니다.

읽기 전용 데이터베이스는 축소할 수 없습니다.

이 옵션의 상태는 DATABASEPROPERTYEX 함수의 IsAutoShrink 속성을 검사하여 알 수 있습니다.

커서 옵션

커서 옵션은 커서 동작과 범위를 제어합니다.

CURSOR_CLOSE_ON_COMMIT

이 옵션이 ON이면, 트랜잭션이 커밋될 때 열려 있는 커서가 자동으로 닫힙니다. 이 옵션의 기본값은 OFF이고, 이 경우에 커서는 트랜잭션에서 계속 열린 채로 있게 되며 연결이 닫히거나 커서가 명시적으로 닫힐 때만 닫힙니다.

SET 문을 사용하여 설정한 연결 수준의 설정은 CURSOR_CLOSE_ON_COMMIT의 기본 데이터베이스 설정을 무시합니다. 기본적으로, ODBC 및 OLE DB 클라이언트는 SQL Server에 연결할 때 세션에 대해 CURSOR_CLOSE_ON_COMMIT를 OFF로 설정하여 연결 수준의 SET 문을 실행합니다. 자세한 내용을 보려면 SET CURSOR_CLOSE_ON_COMMIT을 참조하십시오.

이 옵션의 상태는 DATABASEPROPERTYEX 함수의 IsCloseCursorsOnCommitEnabled 속성을 검사하여 알 수 있습니다.

CURSOR_DEFAULT LOCAL | GLOBAL

CURSOR_DEFAULT LOCAL이 설정되고, 커서가 만들어질 때 GLOBAL로 정의되지 않았으면, 커서의 범위는 커서가 만들어진 일괄 처리, 저장 프로시저 또는 트리거에 로컬로 적용됩니다. 커서 이름은 그 범위 내에서만 유효합니다. 일괄 처리, 저장 프로시저, 트리거의 지역 커서 변수, 또는 저장 프로시저 OUTPUT 매개 변수에서 커서를 참조할 수 있습니다. 커서는 OUTPUT 매개 변수에서 다시 전달되지 않는 한 일괄 처리, 저장 프로시저 또는 트리거가 종료될 때 암시적으로 할당이 취소됩니다. OUTPUT 매개 변수에서 커서가 다시 전달되면, 커서를 참조하는 마지막 변수의 할당이 취소되거나 공간이 부족할 때 커서의 할당이 취소됩니다.

CURSOR_DEFAULT GLOBAL이 설정되고, 커서가 만들어질 때 LOCAL로 정의되지 않았다면, 커서의 범위는 연결에 대해 전역으로 적용됩니다. 연결되어 실행하는 모든 저장 프로시저 또는 일괄 처리에서 커서 이름을 참조할 수 있습니다. 커서는 연결이 끊어질 때 암시적으로 할당이 취소됩니다. CURSOR_DEFAULT GLOBAL이 기본 설정입니다. 자세한 내용은 DECLARE CURSOR를 참조하십시오.

이 옵션의 상태는 DATABASEPROPERTYEX 함수의 IsLocalCursorsDefault 속성을 검사하여 알 수 있습니다.

복구 옵션

복구 옵션은 데이터베이스의 복구 모델을 제어합니다.

RECOVERY FULL | BULK_LOGGED | SIMPLE

FULL이 지정되면, 미디어 장애 시 데이터베이스 백업본과 트랜잭션 로그 백업본이 사용되어 전체 복구 기능을 제공합니다. SELECT INTO, CREATE INDEX와 같은 대량 작업 및 대량 데이터 로드를 포함한 모든 작업은 전적으로 로그됩니다. 자세한 내용은 전체 복구를 참조하십시오.

BULK_LOGGED가 지정되면, 모든 SELECT INTO, CREATE INDEX 및 대량 데이터 로드에 대한 로깅이 최소화되므로 로그 공간이 덜 필요하게 됩니다. 성능이 향상되고 로그 공간을 적게 사용하는 대신 손실의 위험은 전체 복구에서 보다 더 큽니다. 자세한 내용은 대량 로그 복구를 참조하십시오.

SIMPLE이 지정되면, 마지막 전체 데이터베이스 백업본 또는 마지막 차등 백업본으로만 데이터베이스를 복구할 수 있습니다. 자세한 내용은 단순 복구를 참조하십시오.

SIMPLE은 SQL Server Desktop Edition 및 데이터 엔진에서 기본 설정이고, FULL은 그 밖의 모든 Edition에서 기본값입니다.

이 옵션의 상태는 DATABASEPROPERTYEX 함수의 Recovery속성을 검사하여 알 수 있습니다.

TORN_PAGE_DETECTION

이 복구 옵션을 사용하면 SQL Server가 정전이나 다른 시스템 장애에 의해 발생하는 완료되지 않은 I/O 작업을 검색할 수 있습니다.

이 값이 ON으로 설정되면, 디스크에 페이지가 쓰일 때마다 8KB 데이터베이스 페이지의 512바이트 섹터마다 한 비트가 반대로 되도록 합니다. SQL Server가 나중에 그 페이지를 읽을 때 비트가 다른 상태에 있으면, 페이지가 제대로 쓰이지 않은 것이고 조각난 페이지가 검색된 것입니다. 복원 시 제대로 쓰이지 않은 페이지가 읽히는 경우가 많기 때문에 조각난 페이지는 대개 복원 중 검색됩니다.

SQL Server 데이터베이스가 페이지가 8KB이지만, 디스크는 512바이트 섹터를 사용하여 I/O 작업을 수행합니다. 따라서, 데이터베이스 페이지 당 16섹터가 쓰입니다. 운영 체제가 첫 번째 512바이트 섹터를 디스크에 쓰는 시간과 8KB의 I/O 작업을 완료하는 시간 사이에 정전과 같은 시스템 장애가 발생하면 조각난 페이지가 생길 수 있습니다. 장애가 생기기 전에 데이터베이스 페이지의 첫 번째 섹터가 쓰이면 디스크의 데이터베이스가 업데이트된 것으로 나타납니다.

?mk:@MSITStore:D:Program%20FilesMicrosof

참고   배터리 보충의 디스크 캐시를 사용하면 데이터가 디스크에 제대로 쓰이거나 전혀 쓰이지 않도록 할 수 있습니다.

조각난 페이지가 검색되면 I/O 오류가 발생하고 연결이 끊깁니다. 복원 중 조각난 페이지가 검색되면 데이터베이스가 주의 대상으로 표시됩니다. 데이터베이스가 물리적으로 일치하지 않기 때문에 데이터베이스 백업본이 복원되어야 하고 트랜잭션 로그 백업본이 적용되어야 합니다.

TORN_PAGE_DETECTION의 기본값은 ON입니다.

이 옵션의 현재 설정은 DATABASEPROPERTYEX 함수의 IsTornPageDetectionEnabled 속성을 검사하여 알 수 있습니다.

SQL 옵션

SQL 옵션은 ANSI 표준 옵션을 제어합니다.

ANSI_NULL_DEFAULT

사용자가 데이터베이스의 기본 Null 허용 여부를 결정할 수 있도록 합니다. NULL 또는 NOT NULL이 확실히 지정되지 않으면 사용자 정의 데이터 형식이나 열 정의에서 Null 허용 여부의 기본값을 사용합니다. Null 허용 여부는 세션 및 데이터베이스 설정에 의해 결정됩니다. Microsoft SQL Server™ 2000의 기본값은 NOT NULL입니다. ANSI 호환을 위해 데이터베이스 옵션 ANSI_NULL_DEFAULT를 ON으로 설정하면 데이터베이스의 기본값이 NULL로 변경됩니다.

이 옵션이 ON으로 설정되면, CREATE TABLE 또는 ALTER TABLE 문에서 NOT NULL로 정의되지 않은 모든 사용자 정의 데이터 형식 또는 열에서 Null 값을 허용합니다. 제약 조건이 정의된 열은 이 설정에 상관없이 제약 조건 규칙을 따릅니다.

SET 문을 사용하여 설정한 연결 수준의 설정은 ANSI_NULL_DEFAULT의 기본 데이터베이스 수준 설정을 무시합니다. 기본적으로, ODBC 및 OLE DB 클라이언트는 SQL Server에 연결할 때 세션에 대해 ANSI_NULL_DEFAULT를 ON으로 설정하여 SET 문을 실행합니다. 자세한 내용을 보려면 SET ANSI_NULL_DFLT_ON을 참조하십시오.

이 옵션의 상태는 DATABASEPROPERTYEX 함수의 IsAnsiNullDefault 속성을 검사하여 알 수 있습니다.

ANSI_NULLS

이 옵션이 ON으로 설정되면 Null 값과의 모든 비교는 NULL(알 수 없음)이 됩니다. 이 옵션이 OFF로 설정되면, 유니코드가 아닌 값과 Null 값을 비교하여 두 값이 모두 Null일 때 TRUE가 됩니다. ANSI_NULLS 데이터베이스 옵션의 기본값은 OFF입니다.

SET 문을 사용하여 설정한 연결 수준의 설정은 ANSI_NULLS의 기본 데이터베이스 설정을 무시합니다. 기본적으로, ODBC 및 OLE DB 클라이언트는 SQL Server에 연결할 때 세션에 대해 ANSI_NULLS을 ON으로 설정하여 연결 수준의 SET 문을 실행합니다. 자세한 내용은 SET ANSI_NULLS를 참조하십시오.

계산된 열 또는 인덱스된 뷰에서 인덱스를 만들거나 변경할 때에도 SET ANSI_NULLS을 ON으로 설정해야 합니다.

이 옵션의 상태는 DATABASEPROPERTYEX 함수의 IsAnsiNullsEnabled 속성을 검사하여 알 수 있습니다.

ANSI_PADDING

이 옵션이 ON으로 설정되면, varchar 열에 삽입된 문자 값의 후행 공백과 varbinary 열에 삽입된 이진 값의 후행 0이 잘리지 않습니다. 값은 열의 길이만큼 채워지지 않습니다. 이 옵션을 OFF로 설정하면, 후행 공백(varchar에서)과 0(varbinary에서)이 잘립니다. 이 설정은 새 열의 정의에만 영향을 미칩니다.

SET ANSI_PADDING이 ON으로 설정되면 Null을 허용하는 Char(n)binary(n) 열이 열의 길이에 채워지지만, SET ANSI_PADDING이 OFF로 설정되면 후행 공백과 0이 잘립니다. Null을 허용하지 않는 Char(n)binary(n) 열은 항상 열의 길이에 채워집니다.

?mk:@MSITStore:D:Program%20FilesMicrosof

중요   ANSI_PADDING을 항상 ON으로 설정하도록 권장합니다. 계산된 열 또는 인덱스된 뷰에서 인덱스를 만들거나 변경할 때 SET ANSI_PADDING은 ON이어야 합니다.

이 옵션의 상태는 DATABASEPROPERTY 함수의 IsAnsiPaddingEnabled 속성을 검사하여 알 수 있습니다.

ANSI_WARNINGS

이 옵션이 ON으로 설정되면 "0으로 나누기" 또는 집계 함수에 Null이 나타나는 등의 상태에서 오류 또는 경고가 발생합니다. 이 옵션이 OFF로 설정되면, 집계 함수에 Null 값이 나타날 때 경고가 발생하지 않고, "0으로 나누기"와 같은 상태가 발생할 때 Null 값이 반환됩니다. ANSI_WARNINGS의 기본값은 OFF입니다.

계산된 열 또는 인덱스된 뷰에서 인덱스를 만들거나 변경할 때 SET ANSI_WARNINGS은 ON으로 설정되어야 합니다.

SET 문을 사용하여 설정한 연결 수준 설정은 ANSI_WARNINGS의 기본 데이터베이스 설정을 무시합니다. 기본적으로, ODBC 및 OLE DB 클라이언트는 SQL Server에 연결할 때 세션에 대해 ANSI_WARNINGS를 ON으로 설정하여 연결 수준의 SET 문을 실행합니다. 자세한 내용을 보려면 SET ANSI_WARNINGS를 참조하십시오.

이 옵션의 상태는 DATABASEPROPERTYEX 함수의 IsAnsiWarningsEnabled 속성을 검사하여 알 수 있습니다.

ARITHABORT

이 옵션이 ON으로 설정되면, 오버플로 또는 0으로 나누기 오류가 발생하여 쿼리 또는 일괄 처리가 종료되도록 합니다. 트랜잭션에서 오류가 발생하면 트랜잭션이 롤백됩니다. 이 옵션이 OFF로 설정되면, 이러한 오류 중 하나가 발생할 경우 경고 메시지가 표시되지만, 쿼리, 일괄 처리 또는 트랜잭션이 오류가 발생하지 않은 것처럼 계속 처리됩니다.

계산된 열 또는 인덱스된 뷰에서 인덱스를 만들거나 변경할 때 SET ARITHABORT는 ON으로 설정되어야 합니다.

이 옵션의 상태는 DATABASEPROPERTYEX 함수의 IsArithmeticAbortEnabled 속성을 검사하여 알 수 있습니다.

NUMERIC_ROUNDABORT

ON을 지정하면 식에서 정밀도 손실이 발생할 경우 오류가 생성됩니다. 이 옵션이 OFF로 설정되면, 정밀도의 손실로 인한 오류 메시지가 생성되지 않고 결과를 저장하는 열 또는 변수의 정밀도에 따라 결과값이 반올림됩니다.

계산된 열 또는 인덱스된 뷰에서 인덱스를 만들거나 변경할 때 SET NUMERIC_ROUNDABORT는 ON으로 설정되어야 합니다.

이 옵션의 상태는 DATABASEPROPERTYEX 함수의 IsNumericRoundAbortEnabled 속성을 검사하여 알 수 있습니다.

CONCAT_NULL_YIELDS_NULL

이 옵션이 ON으로 설정될 경우, 연결 연산의 피연산자 중 하나가 NULL이면 연산 결과는 NULL이 됩니다. 예를 들어, 문자열 "This is"와 NULL을 연결하면 결과는 "This is"가 아니라 NULL이 됩니다.

이 옵션이 OFF로 설정될 경우, Null 값과 특정 문자열을 연결하면 연산 결과가 문자열이 됩니다. Null 값은 빈 문자열로 간주됩니다. CONCAT_NULL_YIELDS_NULL의 기본값은 OFF입니다.

계산된 열 또는 인덱스된 뷰에서 인덱스를 만들거나 변경할 때 SET CONCAT_NULL_YIELDS_NULL은 ON으로 설정되어야 합니다.

SET 문을 사용하여 설정한 연결 수준의 설정은 CONCAT_NULL_YIELDS_NULL의 기본 데이터베이스 설정을 무시합니다. 기본적으로, ODBC 및 OLE DB 클라이언트는 SQL Server에 연결할 때 세션에 대해 CONCAT_NULL_YIELDS_NULL을 ON으로 설정하여 연결 수준의 SET 문을 실행합니다. 자세한 내용은 SET CONCAT_NULL_YIELDS_NULL을 참조하십시오.

이 옵션의 상태는 DATABASEPROPERTYEX 함수의 IsNullConcat 속성을 검사하여 알 수 있습니다.

QUOTED_IDENTIFIER

이 옵션이 ON으로 설정되면, 식별자를 큰따옴표로 구분할 수 있고 리터럴을 작은따옴표로 구분해야 합니다. 큰따옴표로 구분되는 모든 문자열은 개체 식별자로 해석됩니다. 따옴표 붙은 식별자는 Transact-SQL 식별자 규칙을 따르지 않아도 됩니다. 따옴표 붙은 식별자는 키워드일 수 있고 Transact-SQL 식별자에서 일반적으로 허용되지 않는 문자를 포함할 수 있습니다. 작은따옴표(')가 리터럴 문자열의 일부이면, 큰따옴표(")로 나타낼 수 있습니다.

이 옵션이 OFF(기본값)로 설정되면, 식별자가 따옴표 안에 있을 수 없고 모든 Transact-SQL 식별자 규칙을 따라야 합니다. 리터럴은 작은따옴표 또는 큰따옴표로 구분할 수 있습니다.

SQL Server는 식별자가 대괄호([ ])로 구분되는 것을 허용합니다. 대괄호로 묶인 식별자는 QUOTED_IDENTIFIER의 설정에 관계없이 항상 사용될 수 있습니다. 자세한 내용은 구분 식별자를 참조하십시오.

계산된 열 또는 인덱스된 뷰에서 인덱스를 만들거나 변경할 때 SET SET QUOTED_IDENTIFIER는 ON으로 설정되어야 합니다.

SET 문을 사용하여 설정한 연결 수준의 설정은 QUOTED_IDENTIFIER의 기본 데이터베이스 설정을 무시합니다. 기본적으로, ODBC 및 OLE DB 클라이언트는 SQL Server에 연결할 때 QUOTED_IDENTIFIER를 ON으로 설정하여 연결 수준의 SET 문을 실행합니다. 자세한 내용을 보려면 SET QUOTED_IDENTIFIER를 참조하십시오.

이 옵션의 상태는 DATABASEPROPERTYEX 함수의 IsQuotedIdentifiersEnabled 속성을 검사하여 알 수 있습니다.

RECURSIVE_TRIGGERS

이 옵션이 ON으로 설정되면, 트리거를 재귀적으로 시작합니다. 이 옵션이 OFF(기본값)이면, 트리거가 재귀적으로 시작될 수 없습니다..

?mk:@MSITStore:D:Program%20FilesMicrosof

참고   RECURSIVE_TRIGGERS가 OFF로 설정되면 직접 재귀만 허용되지 않습니다. 간접 재귀를 비활성 상태로 만들려면, nested triggers 서버 옵션을 0으로 설정해야 합니다.

이 옵션의 상태는 DATABASEPROPERTYEX 함수의 IsRecursiveTriggersEnabled 속성을 검사하여 알 수 있습니다.

상태 옵션

상태 옵션은 데이터베이스의 온라인 또는 오프라인 여부, 데이터베이스에 연결할 수 있는 사용자 및 데이터베이스가 읽기 전용 모드 인지의 여부를 제어합니다. termination을 사용하여 데이터베이스가 한 상태에서 다른 상태로 전환될 때 연결의 종료 방식을 제어할 수 있습니다.

OFFLINE | ONLINE

OFFLINE이 지정되면, 데이터베이스가 닫히고 종료되며 오프라인으로 표시됩니다. 데이터베이스가 오프라인으로 설정될 때는 데이터베이스를 수정할 수 없습니다.

ONLINE이 지정되면, 데이터베이스가 열려 데이터베이스를 사용할 수 있습니다. ONLINE이 기본 설정입니다.

이 옵션의 상태는 DATABASEPROPERTYEX 함수의 Status 속성을 검사하여 알 수 있습니다.

READ_ONLY | READ_WRITE

READ_ONLY가 지정되면 데이터베이스가 읽기 전용 모드입니다. 사용자는 데이터베이스에서 데이터를 검색할 수는 있지만 수정은 할 수 없습니다. 읽기 전용 데이터베이스는 데이터 수정을 허용하지 않기 때문에 다음 사항을 수행하지 않습니다.

  • 시스템 시작 시 자동 복원을 하지 않습니다.

  • 데이터베이스 축소가 불가능합니다.

  • 읽기 전용 데이터베이스에서는 잠금이 발생하지 않으므로 쿼리 성능이 더 향상될 수 있습니다.

READ_WRITE를 지정하면, 사용자가 데이터를 검색하고 수정할 수 있습니다. READ_WRITE가 기본 설정입니다.

이 옵션의 상태는 DATABASEPROPERTYEX 함수의 Updateability 속성을 검사하여 알 수 있습니다.

SINGLE_USER | RESTRICTED_USER | MULTI_USER

SINGLE_USER를 사용하면 한 번에 한 명의 사용자만 데이터베이스에 연결할 수 있습니다. 다른 모든 사용자의 연결은 끊어집니다. 연결 종료의 시간 프레임은 ALTER DATABASE 문의 termination에 의해 제어됩니다. 새 연결 시도가 거부됩니다. 옵션을 설정한 사용자가 로그오프해도 데이터베이스는 SINGLE_USER 모드로 유지됩니다. 이 때, 다른 사용자(한 사용자만)가 데이터베이스에 연결할 수 있습니다.

여러 연결을 허용하려면, 데이터베이스를 RESTRICTED_USER 또는 MULTI_USER 모드로 변경해야 합니다.

RESTRICTED_USER는 db_owner 고정 데이터베이스 역할 및 dbcreatorsysadmin 고정 서버 역할의 구성원만 데이터베이스에 연결하도록 하지만, 구성원 수를 제한하지는 않습니다. 이러한 역할의 구성원이 아닌 사용자는 ALTER DATABASE 문의 termination 절에서 지정한 시간 프레임이 지나면 연결이 끊깁니다. 또한, 자격이 없는 사용자의 새 연결 시도가 거부됩니다.

MULTI_USER는 적절한 권한이 있는 모든 사용자가 데이터베이스에 연결할 수 있도록 합니다. MULTI_USER가 기본 설정입니다.

이 옵션의 상태는 DATABASEPROPERTYEX 함수의 UserAccess 속성을 검사하여 알 수 있습니다.

WITH <termination>

ALTER DATABASE 문의 termination 절은 데이터베이스가 한 상태에서 다른 상태로 전환될 때 완료되지 않은 트랜잭션을 종료하는 방법을 지정합니다. 데이터베이스로의 연결을 끊으면 트랜잭션이 종료됩니다. termination 절을 생략하면 트랜잭션이 커밋하거나 자체로 롤백될 때까지 ALTER DATABASE 문이 무기한 대기합니다.

ROLLBACK AFTER integer [SECONDS]
ROLLBACK AFTER integer SECONDS는 지정한 시간(초) 동안 대기한 다음 부적당한 연결을 끊습니다. 완료되지 않은 트랜잭션은 롤백됩니다. SINGLE_USER 모드로 전환될 때, 부적당한 연결은 ALTER DATABASE 문을 실행하는 연결을 제외한 모든 연결입니다. RESTRICTED_USER 모드로 전환될 때 부적당한 연결은 db_owner 고정 데이터베이스 역할 및 dbcreatorsysadmin 고정 서버 역할의 구성원이 아닌 사용자에 대한 연결입니다.
ROLLBACK IMMEDIATE
ROLLBACK IMMEDIATE는 정식이 아닌 연결을 즉시 끊습니다. 완료되지 않은 모든 트랜잭션은 롤백됩니다. 부적당한 연결은 ROLLBACK AFTER integer SECONDS에 대해 설명된 연결과 같습니다.
NO_WAIT
NO_WAIT는 데이터베이스 상태의 변경을 시도하기 전에 연결을 점검하여 특정 연결이 있을 때 ALTER DATABASE 문이 실행되지 않도록 합니다. SINGLE_USER 모드로 전환될 때, 다른 연결이 있으면 ALTER DATABASE 문이 실행되지 않습니다. RESTRICTED_USER 모드로 전환될 때, 정식이 아닌 연결이 있으면 ALTER DATABASE 문이 실행되지 않습니다. 

[출처] 웹디황용

"쇼핑몰·홈페이지·오픈마켓
블로그·페이스북·이메일 등의 각종 마케팅 글쓰기,
각종 광고, 영업, 판매, 제안서, 전단지
반응율 3배×10배 이상 높이는 마법의 8단계 공식"
자세히보기

Comments

번호 제목 글쓴이 날짜 조회
2835 [ JSP ] 브라우저 인코딩이 자동으로 한글이 안되는 경우 해결법 99 단국강토 01.02 3053
2834 여러객체를 for 문 돌리며 사용 99 단국강토 02.19 3052
2833 씬시티 영화 처럼 특정색 강조하기 10 액션쟁이 01.07 3050
2832 T-SQL: Parameter Sniffing 쿼리 튜닝 99 단국강토 01.05 3047
2831 vmware에 설치한 페도라코어5에 vmware tool 설치하기 99 단국강토 01.05 3045
2830 SQL : 집계함수 : 집계함수. 13 김영철 01.23 3044
2829 [AJAX] DOMDocument 에서 selectSingleNode 을 이용한 XML 노드 (Node) 찾기 99 단국강토 12.30 3044
2828 테그의 기본 99 단국강토 02.04 3043
2827 동영상 그림크기조절 99 단국강토 12.30 3042
2826 php전역변수 13 김영철 01.14 3041
2825 MSSQL 기본값 13 김영철 01.24 3040
2824 음악 태그 사운드 태그 댓글1 M 최고의하루 12.24 3039
2823 리눅스의 기본 명령어 99 단국강토 12.30 3039
2822 DBMS에 따른 날짜포맷 변환 99 단국강토 01.07 3038
2821 오라클 캐릭터 셋 변경 M 최고의하루 01.12 3038
2820 포토샵-만화처럼 보이게 하기(신시티스타일) 10 액션쟁이 01.07 3035
2819 [CSS]스타일시트 {속성:값}의 모든 것 99 단국강토 02.03 3035
2818 MovieClip.attachMovie 99 단국강토 02.05 3034
2817 MySQL에서 외래키 설정하기 13 김영철 01.29 3034
2816 일본어로 된 웹을 한글로 즐기기 99 단국강토 01.06 3033
2815 <HTML TIP> 스크롤바, 링크주변 점선 제거, IFrame속성.. 99 단국강토 02.03 3030
2814 버튼 미디어 플래이어를 구현해 보자 99 단국강토 02.19 3030
2813 문자열중 숫자만 출력하기 13 김영철 01.14 3030
2812 php 파일 업, 다운로드 13 김영철 01.13 3028
2811 BLOCKQUOTE TAG 99 단국강토 01.20 3027
2810 php 대용량 메일 13 김영철 01.13 3027
2809 cascasde(연속동작) 13 김영철 01.23 3025
2808 E execCommand() 의 명령어 목록 | JavaScript 99 단국강토 01.30 3024
2807 [정보] EditPlus에서 BOM 문제 해결법 13 김영철 01.14 3024
2806 php 대용량 메일 13 김영철 01.13 3024
마케팅
특별 마케팅자료
다운로드 마케팅자료
창업,경영
기획,카피,상품전략
동기부여,성취