catchv blog 135

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

procedure에 종속된 잘못된 테이블 찾기

테이블 변경이 가해지는 경우 프로시져에 문제가 발생할 수 있다. 그런 경우를 예방하기 위해서 MS SQL에서는 DMV를 제공한다. 아래 내용은 MSDN의 내용중 프로시져에 관련된 내용을 옭겨 놓은 것이다. 4.비스키마 바운드 열 종속성 반환 다음 예에서는 Table1을 삭제하고 Table2 및 저장 프로시저 Proc1을 만듭니다.이 프로시저는 Table2 및 존재하지 않는 테이블 Table1을 참조합니다.저장 프로시저가 참조 엔터티로 지정되어 sys.dm_sql_referenced_entities 뷰가 실행됩니다.결과 집합에는 Table1에 대한 행 하나와 Table2에 대한 행 세 개가 표시됩니다. Table1이 없기 때문에 열 종속성을 확인할 수 없고 오류 2020이 반환됩니다. is_all_colu..

Database/MS SQL 2013.02.26

SQL Server 2012 New T-SQL 1

아래의 내용은 What's New in SQL Server 2012를 정리한 것입니다. String Function CONCAT 문자열 또는 모든 연산에서 NULL과 연산이 될 경우 결과는 NULL이 된다. 하지만 모든 쿼리 문자열에서 이런 형태를 구현할려면 ISNULL('문자열', '')로 처리를 해야 한다. 그래서 CONCAT이 나온 것 같다. CREATE TABLE #Customer ( FirstName VARCHAR(30) NULL , MiddleName VARCHAR(30) NULL , LastName VARCHAR(30) NULL ) GO INSERT INTO #Customer VALUES ('Rachel', 'Jane', 'Clements') , ('Rachel', NULL, 'Clement..

Database/MS SQL 2013.01.29