DB 57

테이블 및 컬럼의 설명 속성(description property) 활용하기

오늘 문득 SQL SSMS를 보다가 컬럼의 설명 속성(description property)에 눈길이 갔습니다. 여기에 값을 기록하면 분명 시스템 테이블 어딘가에 저장이 될텐데... 그럼 그 값을 활용하여 테이블 명세 관리하는 방법이 있지 않을까 하는데 생각이 미쳤습니다. 그럼, 그 설명 속성 값을 얻으려면 어떻게 해야하는가를 검색하여 보았더니 자료가 좀 되더군요. 아래 참고자료 중에 "MSSQL2000, 2005 테이블 명세서 출력쿼리"를 보면 원 저작자가 누구인지는 모르겠지만, 엄청난 노가다(?)를 한 유용한 쿼리더군요. 간단하게 한 DB에서 실행해 봤는데... 명세서도 깔끔하게 잘 나오더군요. 앞으로 테이블 관리할 적에 별도의 문서에 각 테이블, 컬럼별 주석을 정리해 두면 문서 관리 상에도 문제가 ..

DB/MS-SQL 2009.02.10

조건문과 함께 임시 테이블의 사용시 주의할 점.

#TEMP 등과 같은 임시 테이블을 사용할 때 특이한 경우가 있음. IF 조건문을 이용하여 동일한 임시테이블을 생성하지만 서로 다른 조건으로 쿼리한 결과를 담을 필요가 있어서 다음과 같이 쿼리를 작성하였더니 실행시 이미 있는 임시파일이라고 계속 오류가 발생함 IF @condition = 1 SELECT data1 INTO #TEST FROM TEST WHERE 1 = 1 AND regdate = '2009-01-01' #TEMP 임시 테이블이 이미 있는 것이라고 계속 오류가 발생합니다. SELECT ... INTO 로 임시 테이블을 생성할 경우 INTO로 같은 임시..

DB/MS-SQL 2009.01.01

연결된 서버의 저장 프로시저를 호출하기.

연결된 서버 개체를 생성할 때, 서버 옵션에서 PRC , RPC 내보내기 옵션을 TRUE로 만들어 주어야만 합니다. 그래서 연결된 서버를 통한 저장 프로시저 호출이 가능합니다. EXEC REMOTE_SERVER.TEST.dbo.usp_test_proc 주의할 점은 원격 서버의 호출할 저장 프로시저에서 PRINT 등으로 처리할 내용 외에 내용을 출력하게 되면 호출하는 서버에서 오류가 발생합니다. 개발시에 넣었던 PRINT 등을 모두 제거하여 원격 서버에서 호출할 때, 오류가 발생하지 않도록 해야 합니다.

DB/MS-SQL 2008.12.31

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
728x90