DB/MS-SQL 32

Undocumented 저장 프로시저 : sp_MSforeachtable, sp_MSforeachdb

SQL 온라인 도움말에는 없는 유용한 두 가지 저장프로시저를 소개합니다. sp_MSforeachtable 저장프로시저 이름에서 느껴지듯이 현 DB의 모든 사용자 테이블로 지정한 명령을 처리합니다. 사용법은 아래와 같습니다. exec @RETURN_VALUE=sp_MSforeachtable @command1, @replacechar, @command2, @command3, @whereand, @precommand, @postcommand @RETURN_VALUE - is the return value which will be set by "sp_MSforeachtable" @command1 - is the first command to be executed by "sp_MSforeachtable" and ..

DB/MS-SQL 2008.10.07

MS SQL Server 2005의 데이터베이스 미러링

데이터베이스의 고가용성을 확보하기 위한 MS SQL Server 2005 이상에서 새로 선보이는 미러링(Mirroring) 데이터베이스 미러링을 이용하면 트랜잭션 로그 레코드를 서버 간에 직접 전송할 수 있으며 대기 서버로 장애 조치를 빠르게 수행할 수 있습니다. 연결 정보를 자동으로 리디렉션하고 장애 조치 시 대기 서버와 데이터베이스에 자동으로 연결되도록 클라이언트 응용 프로그램 코드를 작성할 수 있습니다. 미러링은 커밋된 데이터의 손실 없이 신속하게 장애 조치를 수행할 수 있으며 전용 하드웨어가 필요 없고 설정 및 관리가 용이합니다. 데이터베이스 미러링 운영 모드 운영 모드 트랜잭션 안전성 전송 메커니즘 쿼럼 필요 미러링 모니터 서버 장애 조치 유형 가용성 우선 FULL 동기 Y Y 자동 또는 수동 ..

DB/MS-SQL 2008.10.07

MS-SQL 서버의 버전을 확인하는 방법

MS-SQL 서버의 버전을 확인하는 방법에는 두 가지가 있습니다. 첫 번째 방법은 아래와 같습니다. SELECT @@version 그러면 아래와 비슷한 결과가 나타납니다. Microsoft SQL Server 2000 - 8.00.192 (Intel X86) Jul 31 2000 15:47:46 Copyright (c) 1988-2000 Microsoft Corporation Enterprise Edition on Windows NT 5.0 (Build 2195: ) (1 row(s) affected) 두 번째 방법은 아래와 같습니다. SELECT SERVERPROPERTY('ProductVersion') 그러면 아래와 비슷한 결과가 나타납니다. 8.00.192 (1 row(s) affected)

DB/MS-SQL 2008.09.03

master DB 복구 방법 및 복구시 발생하는 문제들.

준비하기 백업해 놓은 master DB의 빌드 번호와 현재 복구하려는 서버의 빌드 번호가 일치 해야합니다. 현 서버의 빌드 번호가 높다면 서버를 재설치하여, master.bak 파일의 빌드 번호와 일치시킵니다. 데이터 정렬 방식도 동일한지 확인합니다. 데이터 정렬 방식이 동일하도록 서버를 재설치 합니다. SQL Server 2000 기본, 명명된 또는 가상 인스턴스를 수동으로 제거하는 방법 SQL Server 2005 인스턴스를 수동으로 제거하는 방법 Single Mode로 서버 실행하기 아래 명령을 통하여 싱글 모드로 SQL 서버를 시작합니다. cd "C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Binn" sqlservr.exe -m 또는 net star..

DB/MS-SQL 2008.09.02

트랜잭션 로그 백업 및 크기 줄이기(축소)

SQL 2005의 경우 TEST DB의 로그를 백업하기 BACKUP LOG TEST TO DISK = "D:\Backup\Test_log.bak" -- WITH NO_LOG 트랜잭션 로그를 백업할 필요가 없는 경우, TO DISK 대신에 아래에 있는 WITH NO_LOG 를 주면 대부분의 활성 가상 로그 파일을 비활성화합니다. 그러면, 다음의 명령을 통하여 트랜잭션 로그 파일을 원하는 크기로 줄일 수 있습니다. TEST DB의 로그 파일 줄이기 앞서 설명한 트랜잭션 로그를 백업하면 활성 가상 로그 파일이 비활성화되어, 로그 파일의 크기를 줄일 수 있게 됩니다. 다음 명령을 수행하면 TEST_LOG 파일이 10 MB 정도로 줄어들게 됩니다. DBCC SHRINKFILE (TEST_LOG, 10) -- WI..

DB/MS-SQL 2008.08.29

응용 프로그램 성능 최적화를 위한 숨겨진 데이터 찾기

MSDN 에서 아주 멋진 내용을 찾았습니다. 주된 내용은, 동적 관리 뷰 및 함수/ 서버 대기의 원인/ 일반적인 인덱스 문제/ 논리 I/O와 관련된 문제에 관련해서 예제 데이터 베이스 및 SQL Server 를 토대로 점검 결과와 그에 대한 분석 방법을 설명해 놓고 있습니다. 최적화 관련하여 아주 유용한 자료더군요. 참고하세요. 아래는 목차입니다. 서버 대기의 원인 읽기 및 쓰기 데이터베이스별 누락된 인덱스 비용이 높은 누락된 인덱스 사용되지 않는 인덱스 사용 비용이 높은 인덱스 자주 사용되는 인덱스 논리적으로 조각난 인덱스 I/O 비용이 높은 쿼리 CPU 비용이 높은 쿼리 비용이 높은 CLR 쿼리 가장 많이 실행된 쿼리 차단당하는 쿼리 가장 적게 재사용되는 계획 추가 작업 http://msdn.micr..

DB/MS-SQL 2008.07.16

임시테이블의 OBJECT_ID 얻기

OBJECT_ID 함수를 이용하여 해당 테이블이 존재하는지 여부를 검사할 때 다음과 같이 사용하게 됩니다. IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'MY_TABLE') AND type in (N'U')) -- 'MY_TABLE' 테이블이 존재함. 하지만, 임시 테이블의 존재 여부를 검사할 때는 그냥 위와 같이 하면 테이블을 100% 찾을 수 없다고 나옵니다. 임시 테이블은 TEMPDB에 생성되므로 그곳에서 테이블에 대한 OBJECT_ID를 얻어와야 합니다. 따라서 다음과 같이 코드를 수정해야만 합니다. IF EXISTS (SELECT * FROM tempdb.sys.objects WHERE object_id = OBJECT_I..

DB/MS-SQL 2008.06.10

복구 모델(Recovery Model)

# 복구 모델이란? 데이터베이스에 트랜잭션이 발생하였을 때 트랜잭션을 로그에 기록하는 범위를 지정해 놓은 것입니다. 장애 발생시 데이터 손실을 취소화하기 위한 계획을 세우는데 필수적으로 고려해야할 부분으로 데이터베이스 백업과 밀접한 관계가 있습니다. # 데이터베이스 복구 모델의 종류 및 차이점 1) 단순(Simple) - 트랜잭션 로그를 자동으로 삭제 - 데이터가 중요하지 않고, 쉽게 재생성이 가능한 경우 - 테스트나 개발에 사용하는 DB - 마지막 백업 이후의 데이터는 복구 불가능. 백업을 하지 않은 경우에는 데이터 복구 불가능 - 트랜잭션 로그를 백업할 수 없음 2) 대량 로그(Bulk Logged) - 데이터가 중요하지만, 대량의 벌크 로그는 로그를 남기지 않도록 할 경우(BULK INSERT, C..

DB/MS-SQL 2008.05.14

SELECT @@VERSION 의 빌드(BUILD) 번호로 서비스팩 및 보안패치 현황 파악하기.

MS-SQL에서 다음과 같은 쿼리를 이용하여 SQL 서버의 버전을 확인할 수 있습니다. SELECT @@VERSION하지만, 위에서 나오는 결과로는 서비스 팩을 어디까지 설정하였고, 패치는 어느 버전까지 적용되어 있는지는 알 수가 없습니다. SQL 서버의 버전 정보를 확인할 때, 빌드 번호를 통하여 서비스팩의 현황 및 어느 버전까지 보안 패치가 적용되어 있는지 다음 사이트에서 확인하실 수 있습니다. http://www.sqlsecurity.com/FAQs/SQLServerVersionDatabase/tabid/63/Default.aspx 가령, MS-SQL Server 2000을 사용중이고, 빌드 번호가 2187이라면 SQL 2000 sp4가 설치되어 있고, 914384/898709/915065/9153..

DB/MS-SQL 2008.03.12
728x90