Database 67

SQL Server Error Log 관리

SQL Server 의 Error Log의 데이터가 많을 경우 로드하는데 많은 시간이 발생됩니다. Error Log 파일의 구성을 보면 HKEY_LOCAL_MACHINE\Software\Microsoft\MSSQLServer\MSSQLServer 위치에 NumErrorLogs 의 숫자 만큼 파일이 보관되며(6개가 Default) 99개 까지 설정 할 수 있습니다. 파일 개수 변경 방법은 방법 1. USE [master] GO EXEC xp_instance_regwrite N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'NumErrorLogs', REG_DWORD, [변경할 파일 숫자] GO 방법2. 로 파일 개수를 변경할 수..

Database/MS SQL 2013.04.25

TRY CATCH는 과연 만고땡인가?

버전 : SQL 2005, SQL 2008, SQL 2008 R2, SQL 2012 MS SQL Server 2005 이상부터 C++에나 있던 TRY CATCH 구문이 도입되어서 굉장히 편하게 에러가 발생되는 부분을 찾고 처리하기 쉽게 되었다. BEGIN TRY SELECT 1 / 0 END TRY BEGIN CATCH SELECT ERROR_NUMBER() AS ErrorNumber , ERROR_SEVERITY() AS ErrorSeverity , ERROR_STATE() AS ErrorState , ERROR_PROCEDURE() AS ErrorProcedure , ERROR_LINE() AS ErrorLine , ERROR_MESSAGE() AS ErrorMessage; END CATCH 그러나 ..

Database/MS SQL 2013.04.23

MS SQL 2008 이상 BACKUP LOG TRUNCATE_ONLY , NO_LOG

버전 : SQL 2008, SQL 2008 R2, SQL 2012 MS SQL 2008 부터는 BACKUP LOG [데이터베이스명] WITH TRUNCATE_ONLY GO 를 지원하지 않고 있습니다. 이유는 이걸 사용했을 경우 로그체인이 끊어져서 데이터베이스에 문제가 발생 할 경우 데이터를 복구 할 수 없는 상태가 발생 할 수 있습니다. 그러나 관리상의 문제나 기타 다른 문제로 LOG의 백업이 당장 필요 없는 경우도 발생을 합니다. 그럴 경우 사용 할 수 있는 방법은 다음과 같습니다. 주의!!! 아래의 방법은 권장하는 방법이 아니므로 반드시 전체백업 후에 진행하기시 바랍니다. 저의 TestDB 상태입니다. BACKUP LOG [데이터베이스명] TO DISK='NUL:' GO DBCC SHRINKFILE ..

Database/MS SQL 2013.04.23

Fill Factor

Fill Factor는 Index Data의 채우기 비율을 말한다. 이게 무슨 이야기냐 하면 SQL Server의 데이터는 PAGE라는 개념에 저장이 된다. PAGE에 저장할 수 있는 용량은 약 8000byte 정도가 된다. ("약 8000 byte" 이라고 표현한 이유는 Heap 데이터, 클러스터인덱스, 넌클러스터 인덱스 구조냐에 따라서 실제 저장 용량이 차이가 난다.) 실제 계산을 해보자. CREATE TABLE Table1 ( A INT -- 4 byte , B CHAR(900) -- 900 byte ) GO 이 테이블은 Row당 904 byte를 차지한다. 그렇다면 한 개 PAGE에는 8개(904 * 8 = 7232 byte)의 Row가 들어간다. INSERT INTO Table1 VALUES( ..

Database/MS SQL 2013.04.16

암호화된 Procedure 보는 방법

버전 : SQL Server 2005, 2008, 2008 R2, 2012 프로시져를 암호화해서 만들어 놓았는데 원본 소스를 삭제한 경우 기존에 암호화 된 프로시져를 분석해야 한다. 분석할 암호화된 프로지셔를 만들어보자. -- 암호화된 Procedure -- 2013.04.13 SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROCEDURE sp_EncryptionProc @TEST VARCHAR(100) WITH ENCRYPTION AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; S..

Database/MS SQL 2013.04.13

SSMS 관리자 전용 연결하기

관리자 전용으로 연결하기 위해서 sqlcmd –A 를 이용하는데 SQL Server의 SSMS로 연결을 하면 쉽게 작업을 할 수 있다 먼저 구성 옵션을 변경해야 한다. 1 2 3 4 5 sp_configure 'remote admin connections', 1 GO RECONFIGURE WITH OVERRIDE GO SSMS를 실행하고 반드시 "데이터베이스 엔진 쿼리"로 연결을 해야 한다. 서버 이름 입력란에 ADMIN: 을 앞에 넣고 연결을 하면 관리자 전용 연결로 연결이 된다.

Database/MS SQL 2013.04.13

MS SQL 가져오기(DTS) 실패시

데이터 가져오기가 이상하게 실패하는 경우가 있다. Excel의 경우는 많지 않지만 Text 파일의 경우가 특히 그렇다. URL이나 특정문자가 들어간 경우가 흔히 그러하다. (인코딩 문제인것 같아서 Unicode, UTF-8 다 해보아도 안되는 경우가 있다.) 그런 경우 Bulk Insert 를 사용하면 편하다. BULK INSERT 테이블명 FROM '파일명' with (FIELDTERMINATOR='column 구분자',ROWTERMINATOR='row 구분자')

Database/MS SQL 2013.04.04