'IT/MSSQL'에 해당되는 글 29건

  1. 2013.04.10 Database Naming Rule
  2. 2013.04.09 MSSQL 문자열 함수
  3. 2013.04.09 Trigger 트리거 관련 정보 조회.
  4. 2013.04.01 MSSQL Data Type(2)
  5. 2013.04.01 MSSQL Data Type
  6. 2013.04.01 MSSQL Int (Integer) Type
  7. 2013.03.21 Database Compare Tool.
  8. 2013.03.19 MSSQL Index
  9. 2013.03.18 DB ID 조회 Query

2013. 4. 10. 09:00 IT/MSSQL

Database Naming Rule

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

1. Database Schema Name
1.1.
규칙
- Database Profile
이름을 의미함
- DB Alias
이름과 동일하게 함
-
영문 대문자로 작성함

- Database Short Name의 길이는 최대 8자리를 넘을 수 없음
- Database Short Name
은 각 Site Unique Name을 사용함
1.2.
표기 방식
) TOURDB, ETKP, TKS

2. Table Name
2.1.
규칙
-
테이블임을 표시하기 위해 테이블 명 뒤에 ‘_TB’ 라는 구분을 사용함
-
테이블명은 대문자로 사용함(ex> USER_LIST_TB)

(일부에서는 "_" 구분 대신 Pascal Case를 사용하기도 한다. UserList 등..)
-
시스템 구분 코드와 모듈구분코드로 업무 영역을 구분함
-
의미있는 테이블명은 3단어까지 사용할 수 있음
-
단어와 단어 사이는 ‘_’로 구성함
-
각 단어는 최대 8자리까지 사용함
-
구분명은 Table의 특성을 나타냄
-
예로는 Master, Detail, Control, Summary, Trigger, History 등이 있음
2.2.
표기 방식
<
시스템 구분> + _ + <의미있는 테이블명> + _ + TB
) 사용자 테이블 : ACT_USERS_TB

3. Column Name
3.1.
규칙
-
물리명은 영문 대문자를 이용함. 논리명을 사용자가 알 수 있는 정도에서 명사 및 명사형동사를 사용함(ex> SITE_CODE_CD)

(일부에서는 "_" 구분 대신 Camel Case를 사용하기도 한다. siteCode 등..)
- Column
에 대한 자리수는 총 12자리로 하며, 제한은 없음
, 사용하는 Database의 특성에 따라 제한될 수 있음
- Word
Word 사이에는 ‘_’로 구분함
-
Word 8자리를 넘을 수 없음
-
모든 Column Dictionary List에 등록된 약어사전 및 자료사전을 기초로 작성함
- Dictionary List
에 등록되지 않은 약어는 책임자의 동의 하에 등록함
- Column Name
은 약어의 조합으로 구성
-
컬럼명에 컬럼을 대표하는 접미사를 사용하여 컬럼명의 성격을 나타냄.
3.2.
표기방식

<
의미있는 컬럼명> 혹은 <의미있는 컬럼명> + _ + 접미사
종종 자주 사용하는 접미사는 다음과 같다.

접미사

내용

설명

_CD

CODE

주로 코드 테이블의 코드, 각종 코드에 사용된다.
숫자나 문자로 이루어진 코드에 해당되며, 숫자나 문자의 각 부분이 의미가 있는 경우에 코드를 사용한다. 대부분 PK에 해당한다
.
) 대분류 코드
CTGRY_CD,
시도코드
SIDO_CD,
사용자 그룹 코드 USER_GROUP_CD

_NM

NAME

코드에 대한 명칭에 주로 사용된다. 논리명이 이름, 명칭인 경우에 해당된다.
) 사용자이름
USER_NM,
자원명
RES_NM,
중분류 코드명
DVSN_NM,
메뉴명 MENU_NM

_NO

NUMBER

숫자로만 이루어진 경우, 주로 논리명이 번호인 경우에 사용.
) 주민등록번호
JUMIN_NO,
조문번호
JO_NO,
게시물번호 BOARD_NO

_SQ

SEQUENCE

오라클의 Sequence, MSSQL Identity의 경우에 사용한다. 숫자 일련번호로 PK를 설정할 경우 SQ를 사용한다. MSSQL Identity의 경우 주로 _ID를 사용하는 경우가 많은데, 사용자 아이디 ? USER_ID ID와 의미가 틀려 SQ를 사용한다.
) 작업번호
WORK_SQ,
이력번호 HISTORY_SQ

_ID

ID

주로 사용자 아이디의 경우에 사용한다.
) 사용자아이디
USER_ID,
등록자아이디 REG_ID

_DT

DATE

날짜의 경우 사용한다. DT는 날짜 타입이 DATE형인 경우에만 사용한다. 보통 날짜의 경우 CHAR(8)형으로 20050718식으로 저장을 많이 한다. 이런 경우에는 _YMD를 사용한다.
) 삭제일자
DEL_DT,
변경일자 CHG_DT

_YMD

YYYYMMDD

날짜의 경우 사용한다. 날짜 타입이 CHAR 인경우 사용한다. 년월일인 경우 _YMD를 사용하고, 년월형식으로 CHAR(6)로 저장될 경우 _YM을 사용한다. 년도, , 일자 인경우에는 YEAR, MONTH, DAY등의 컬럼명을 사용한다.

_GB

구분

구분값을 나타낼 때 사용한다.
CD
는 주로 코드테이블을 별도로 사용할 때 적당하고, 테이블 없이 코드상에서 구별할 때 사용한다. 가령 사용자구분 필드가 있을 때 일반사용자, 내부사용자가 있다면 별도의 사용자 그룹테이블로 분리하여 사용할 경우 GROUP_CD가 필드명이 되지만, 코드상에서 일반(G), 내부(I)로 사용하기로 결정했다면 GROUP_GB 필드명을 사용하면 된다
.
) 통계구분 STAT_GB

_ST

STATE

상태값이다. 주로 CHAR(1) 형식을 사용한다.
) 사용자 상태 USER_ST

_FL

FLAG

플레그값이다. 종종 삭제하지 않는 테이블에 삭제플레그를 많이 사용된다. 값은 0/1 이나 Y/N를 많이 사용한다.
) 삭제여부 DEL_FL, 요청여부 REQ_FL

_ORD

ORDER

순서를 나타낼 때 사용한다.
) 컬럼순서 COLUMN_ORD

_CNT

COUNT

) 조회수 VIEW_CNT

_AMT

AMOUNT

) 재고량 STOCK_AMT

_SUM

SUM

) 분기합계 QTR_SUM, 년도합계 YEAR_SUM

3.3. 순서규칙
-
기본적으로 관계형 모델에서 열(Column)의 순서는 의미가 없음.

그러나, 물리적인 형태로 생성되어 관리될 때에는 보다 효율적인 저장공간의 관리를 위해 다음 순서에 따라 우선순위를 결정함
- Primary Key
가 우선함
- Primary Key
내에서는 Index 의미에 따라 순서를 결정함
- Not Null Columns
이 우선함
- Not Null Columns
내에서는 Foreign Key, Attributes 순서로 함
- Null Columns
내에서는 다음의 규칙에 따라 순서를 결정함
- Fixed Length Columns
이 우선함(Date,Number,Char)
- Smaller Length Column
이 우선함

4. Index Name
4.1.
규칙
-
해당하는 테이블명 뒤에 ‘_IX’를 붙여 index임을 명확히 함
-
대문자를 사용함
-
일련번호는 01 ~ 99까지 사용할 수 있음
- MSSQL
의 경우 클러스터드 인덱스와 넌 클러스터드 인덱스를 구분하여 작성함.

클러스터드 인덱스 _IXC를 사용하며, 넌 클러스터드 인덱스는 일반 인덱스 명 룰을 따름.
-
테이블에 인덱스가 하나만 존재할 경우 일련번호를 사용하지 않아도 됨
.
4.2.
표기 방식

<
시스템 구분> + _ + <의미있는 테이블명> + _ + IX{<일련번호>}
) Table명 ‘I01_MASTER_TB’의 Index : I01_MASTER_IX01

5. Primary Key Name
5.1.
규칙
-
영문 대문자로 작성함
-
해당하는 테이블명의 맨 뒤에 ‘_PK’라는 구분을 사용함
5.2.
표기방식
<
시스템 구분> + _ + <의미있는 테이블명> + _ + PK
) Table 명 ‘AC_USERS_TB’의 Primary Key : AC_USERS_PK

6. Foreign Key Name
6.1.
규칙
-
영문 대문자로 작성함
-
해당하는 테이블명의 맨 뒤에 ‘_FK’라는 구분을 사용함
-
일반적으로 테이블명과 컬럼명까지 사용하나, OBJECT의 명칭이 길어져서 테이블명을 기준으로 작성함.
-
일련번호
: 1 ~ 9
6.2.
표기방식

<
시스템 구분> + _ + <의미있는 테이블명> + _ + FK{<일련번호>}
) Table 명 ‘I01_MASTER_TB’의 Foreign Key : I01_MASTER_FK1

7. Stored Procedure Name
7.1.
규칙
-
길이는 큰 제한이 없으나 오라클의 OBJECT NAME 길이 제한은 있음.
-
해당하는 테이블명의 맨 뒤에 ‘_SP’라는 구분을 사용함

-
기능명은 복수개 사용이 가능하면 3개의 단어를 넘지 않도록 함
-
기능을 나타내는 명칭이 하나일 경우 일련번호를 생략해도 됨.
-
단어간에는 ‘_’로 구분함

-
업무룰에 해당되지 않는, 혹은 특정 테이블에 해당되지 않는 DBMS 전반적인 프로시저의 경우,

시스템 프로시저로 작성하는 경우에는 시스템구분 과 테이블명을 생략하고 간단히 작성할 수 있다.

) 스키마 스크립트 GENERATION ? GENERATE_SP
-
오라클의 경우 패키지 내부의 프로시저의 경우 패키지 명칭에 시스템구분을 사용하므로,

프로시저나 함수명에 시스템구분 코드를 넣지 않는다.

또한 기능에 따른 일련번호를 사용하지 않고 OOP의 기능인 Method Overloading 의 기능을 사용하여 작성한다.

또한 명칭은 Camel 표기법을 사용하여 작성한다. ) 사용자를 가져오는 경우 getUsers()
7.2.
표기방식

<
시스템 구분> + _ + <의미있는 테이블명> + _ + <기능명>{<일련번호>} + _ + SP
) I01_MASTER_TB’ 테이블에서 데이타 입력에 대한
Procedure
: I01_MASTER_INS01_SP

기능명

명칭

설명

INS

INSERT

단일 테이블의 단순 INSERT 작업인 경우, 사용자 테이블에 데이터 입력 프로시저의 경우 업무룰이 복잡하여 여러 테이블에 걸쳐 삽입 작업이 된다면(서버측 트랜잭션이 구현된다면) INS를 사용하지 않고, REG를 사용한다.

UDT

UPDATE

단일 테이블의 단순 UPDATE 작업의 경우

DEL

DELETE

단일 테이블의 단순 삭제인 경우

LST

LIST

SELECT문을 사용하여 조회하는 경우

REG

REGISTER

등록작업(트랜잭션을 사용하여 여러 테이블에 입력 작업이 이루어질 때)

MOD

MODIFY

수정작업(트랜잭션을 사용하여 여러 테이블에 수정 작업이 이루어질 때)

REM

REMOVE

삭제작업(트랜잭션을 사용하여 여러 테이블에 삭제 작업이 이루어 질 때)

8. Function Name
8.1.
규칙
-
길이는 제한이 없으며 영문 대문자를 사용함
-
해당하는 테이블명의 맨 뒤에 ‘_FC’라는 구분을 사용함을 원칙으로 하나,

함수명이 길어서 사용상 불편할 경우, 특정 시스템에 국한하지 않고, 항상사용하는 라이브러리 같은 함수의 경우

구분가능한 Short Name을 사용해도 무방하다.
-
단어간에는 ‘_’로 구분함

-
시스템 함수로 작성한 경우에는 접미사를 사용하지 않고, 간략한 함수이름을 사용한다. ) INSTR, LEASTR(@x bigint, @y bigint)
-
오라클의 경우 패키지 내부의 함수의 경우에는 프로시저의 해당 규칙에 따른다.

즉 시스템구분 코드와 접미사를 사용하지 않고, Camel 표기법으로 간략하게 작성한다.
8.2.
표기방식

<
시스템 구분> + _ + <기능명> + _ + FC
) I01_MASTER_TB’ 테이블에서 주소명를 가져오기 위한
Function
: I01_GET_ADDRESSNAME_FC(p_AddressCode IN Char)
내지는

: getAddressName(p_AddressCode IN Char)

9. Table Trigger Name
9.1.
규칙
-
영문 대문자로 작성함
-
일련번호는 01 ~ 99까지 사용 가능함
9.2.
표기방식
<
시스템 구분> + _ + <의미있는 테이블명> + _ + <일련번호> + _ + TG
- Timing : B(Before), A(After)
- Trigger Event : I(Insert), D(Delete), U(Update)

) I01_MASTER_TB’ 테이블에서 데이타 입력 후에 실행되는 Trigger
: I01_MASTER_AU01_TG

10. View Name
10.1.
규칙
-
길이는 제한이 없으며, 영문 대문자로 작성함
-
해당하는 테이블명의 맨 뒤에 ‘_VW’라는 구분을 사용함
-
일련번호는 01 ~ 99까지 사용할 수 있음
10.2.
표기방식
<
시스템 구분> + _ + <의미있는 테이블명><일련번호> + _ + VW
) AC_ADMINL_USER_VW

11. Sequence Name <오라클의 경우에만 해당>
11.1.
규칙

-
길이는 제한이 없으며 영문 대문자를 사용함
-
해당하는 테이블명의 맨 뒤에 ‘_SQ’라는 구분을 사용함
11.2.
표기방식
<
시스템 구분> + _ + <의미있는 테이블명> + _ + SQ
) I01_MASTER_TB’ 테이블의 Sequence : I01_MASTER_SQ

12. Package Name<오라클의 경우에만 해당>
12.1.
규칙

-
길이는 제한이 없으며 영문 대문자를 사용함
-
해당하는 테이블명의 맨 뒤에 ‘_PKG’라는 구분을 사용함
12.2.
표기방식
<
시스템 구분> + _ + <의미있는 패키지명> + _ + PKG
) 검색엔진에서 사용하는 자원에 관련된 패키지 : SCH__PKG

13. Check 제약조건
13.1.
규칙
-
길이는 제한이 없으며 영문 대문자를 사용함
-
기존의 명칭룰에 해당하는 접미사를 사용하지 않고, 예외적으로 접두어 CK_를 사용한다.
일반적으로 CHECK DEFAULT 제약조건은 특정 테이블에 한정시켜서 작성하기 보다는

시스템 전반에 걸쳐서 사용이 가능하므로 예외규정을 둔다.
13.2.
표기방식

CK +
_ + <의미있는 CHECK>
) 이메일 체크
: CK_EMAIL
) 성별 체크 : CK_SEX

14. Default 제약조건
14.1.
규칙
-
길이는 제한이 없으며 영문 대문자를 사용함
-
기존의 명칭룰에 해당하는 접미사를 사용하지 않고, 예외적으로 접두어 DF_를 사용한다.
일반적으로 CHECK DEFAULT 제약조건은 특정 테이블에 한정시켜서 작성하기 보다는

시스템 전반에 걸쳐서 사용이 가능하므로 예외규정을 둔다
14.2.
표기방식
DF +
_ + <의미있는 DEFAULT>
) Null String Default ? DF_NULLSTR
) 0(Zero) Default ? DF_ZERO

'IT > MSSQL' 카테고리의 다른 글

임의의 컬럼( column ) 명이 있는 전체 테이블 ( table ) 찾기.  (0) 2013.05.28
MSSQL DB 이관  (0) 2013.04.24
MSSQL 문자열 함수  (0) 2013.04.09
Trigger 트리거 관련 정보 조회.  (0) 2013.04.09
MSSQL Data Type(2)  (0) 2013.04.01
Posted by 당양부부34

2013. 4. 9. 18:08 IT/MSSQL

MSSQL 문자열 함수

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

 

1) Ascii() - 문자열의 제일 왼쪽 문자의 아스키 코드 값을 반환(Integer)

예) SELECT Ascii('abcd')

>> 결과는 a의 아스키 코드값인 97 반환

1-1) Char() - 정수 아스키 코드를 문자로 반환(Char)

예) SELECT Char(97) >> 결과는 a 반환

1-2)Nchar() - 지정한 정수 코드의 유니코드 문자 반환

예) SELECT Nchar(65) 결과 >> A

1-3)Unicode() - 식에 있는 첫번째 문자의 유니코드 정수 값을 반환

예)SELECT Unicode('abcde') 결과 >> 97


3) Charindex() - 문자열에서 지정한 식의 위치를 반환 ????

예) SELECT Charindex('b','abcde') >> 결과 : 2 1,2,3
SELECT Charindex('b','abcde',2) >> 결과 : 2
SELECT Charindex('b','abcde',3) >> 결과 : 0

-- 인수값이 3개일때 마지막은 abcde 에서의 문자열 검색 시작위치를 말하며

2인경우는 bcde 라는 문자열에 대해서 검색

3인 경우는 cde 라는 문자열에 대해서 검색 하게 된다.

5) Left() - 문자열에서 왼쪽에서부터 지정한 수만큼의 문자를 반환 1,2,3 이네.. mssql은

예) SELECT Left('abced',3) 결과 >> abc
Right() - 문자열의 오른쪽에서 부터 지정한 수 만큼 반환(Left() 와 비슷 )

예) SELECT Right('abcde',3) 결과>> cde

6) Len() - 문자열의 길이 반환

예) SELECT Len('abced') 결과>>5

7) Lower() - 대문자를 소문자로 반환

예) SELECT Lower('ABCDE') 결과 >> abcde

Upper() - 소문자를 대문자로 반환

예) SELECT Upper('abcde') 결과>> ABCDE

8) Ltrim() - 문자열의 왼쪽 공백 제거

예) SELECT Ltrim(' AB CDE') 결과>> AB CDE

Rtrim() - 문자열의 오른쪽 공백 제거

예) SELECT Rtrim(' ab cde ') 결과>> ' ab cde' <-- 공백구분을위해 ' 표시

10) Replace - 문자열에서 바꾸고 싶은 문자 다른 문자로 변환

예) SELECT Replace('abcde','a','1') 결과>>1bcde

11) Replicate() - 문자식을 지정한 횟수만큼 반복

예) SELECT Replicate('abc',3) 결과>> abcabcabc

12) Reverse() - 문자열을 역순으로 출력

예) SELECT Reverse('abcde') 결과>> edcba

15) Space() - 지정한 수만큼의 공백 문자 반환

예) SELECT Space(10) 결과 >> ' ' -- 그냥 공백이 나옴

확인을 위해서 SELECT 'S'+Space(10)+'E' 결과 >> S E

16) Substring() - 문자,이진,텍스트 또는 이미지 식의 일부를 반환

예) SELECT Substring('abcde',2,3) 결과>> bcd

※ 기타 함수 Tip

19) Isnumeric - 해당 문자열이 숫자형이면 1 아니면 0을 반환

>> 숫자 : 1 , 숫자X :0

예) SELECT Isnumeric('30') 결과 >> 1

SELECT Isnumeric('3z') 결과 >> 0

20) Isdate() - 해당 문자열이 Datetime이면 1 아니면 0
lsdate(4444) >>결과 0 >> 날짜 : 1 , 날짜 X :0

'IT > MSSQL' 카테고리의 다른 글

MSSQL DB 이관  (0) 2013.04.24
Database Naming Rule  (0) 2013.04.10
Trigger 트리거 관련 정보 조회.  (0) 2013.04.09
MSSQL Data Type(2)  (0) 2013.04.01
MSSQL Data Type  (0) 2013.04.01
Posted by 당양부부34
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

SELECT (SELECT F.name FROM sysusers F WHERE N.uid=F.uid) as 'TABLE_OWNER'
  ,N.name as 'TABLE_NAME'
  ,(SELECT G.name FROM sysusers G WHERE T.uid=G.uid) as 'TRIGGER_OWNER'
  ,T.TRIGGER_NAME as 'TRIGGER_NAME'
FROM sysobjects N,
(SELECT name as TRIGGER_NAME, parent_obj,crdate,uid FROM sysobjects WHERE xtype='TR' and name like 'TR_%') T
WHERE N.id=T.parent_obj
ORDER BY T.TRIGGER_NAME

'IT > MSSQL' 카테고리의 다른 글

Database Naming Rule  (0) 2013.04.10
MSSQL 문자열 함수  (0) 2013.04.09
MSSQL Data Type(2)  (0) 2013.04.01
MSSQL Data Type  (0) 2013.04.01
MSSQL Int (Integer) Type  (0) 2013.04.01
Posted by 당양부부34

2013. 4. 1. 17:10 IT/MSSQL

MSSQL Data Type(2)

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

MSSQL NUMERIC DATA TYPE

 

BIGINT, 8 bytes of storage . -263 to 263 -1. If possible avoid this.

 

INT, 4 bytes of storage ; store numbers from -231 to 231 -1.

 

SMALLINT, 2 bytes of storage store numbers from -215 to 215 -1.

 

TINYINT, 1 byte of storage store numbers from 0 to 255.

 

MONEY, 8 bytes of storage.

 

SMALLMONEY, 4 bytes of storage.

 

 

REAL, 4 bytes for storage; precision of 7 digits. The synonym for REAL is FLOAT[(n)] for n = 1 to 7.

 

FLOAT, 8 bytes for storage;precision of 15 digits. The synonym for FLOAT is DOUBLE PRECISION and FLOAT[(n)] for n = 8 to 15.

 

DECIMAL, whose storage size varies based on the specified precision and uses 217 bytes for storage. The synonyms for DECIMAL are DEC and NUMERIC.

 

 

 


Character Data Types

 

 

CHAR(n)s are fixed-length single-byte and can store8,000 bytes of data. Faster than varchar type. Useful for fixed data which invariable. Social Security number could be of CHAR(9)

 


Varchar(n) are non-fixed-length and can store also 8000 bytes of data. = variable char.

"Variable length means that if less data than the specified n bytes is used, the storage size will be the actual length of the data entered."(quoted from "Learning SQL series" by oreilly).

 


Varchar is same as varchar2 in Oracle.

 

 

 


Text: more than 8000 bytes. It is same as Long in Oracle.

 

 

 

 

 

 

Nchar and Nvarchar are for unicode.

 

 


Tips) from Oreilly book "Learning SQL series"


1. Use the variable-length data types (VARCHAR) over fixed-length data types (CHAR) when you expect a lot of null values or a lot of variation in the size of data.

 

2. 데이터 사이즈의 변화가 심하거나 널 가치가 들어갈때에는 char 대신 varchar타입을 사용하라.

 


3. If a column's data does not vary widely in number of characters, consider using CHAR instead of VARCHAR.

 

4. 칼럼의 데이타가 캐릭터 수치상 크게 변하지 않을때는 varchar대신 char를 사용.


5. NVARCHAR or NCHAR data types should not be used unless you need to store 16-bit character (Unicode) data.

NVARCHARs and NCHARs take up twice as much space as VARCHAR or CHAR data types, reducing I/O performance.


6. nvarchar나 nchar,는 꼭 필요할때만 사용한다. varchar나 char보다 2배의 공간을 차지하기 때문이다.

 

 

 

Date and Time Data Types

 


datetime(date in Oracle): up to 8 bytes;

smalldatetime: up to 4 bytes;

Respectively stored as date and time part. Primary key should not be used in these data types.

 

 

 

 


Others


The BINARY data types are BINARY and VARBINARY.

 


1.BINARY data : store strings of bits, hexadecimal (hex) representation. 8000 bytes.

 

널값이나 데이터 사이즈 변화가 자주일어날때는 Varbinary를 사용한다.


2. The VARBINARY data type can store up to 8,000 bytes of variable-length binary data.

 

 

 

 

 

In Oracle, raw is the equivalent of VARBINARY.

 

 

 

 

 

IMAGE DATA TYPE: USED TO STORE PICTURES AND BINARY DATA UP TO 8000 BYTES.

IMAGE IS SAME AS "LONG LAW" IN ORACLE.

 

 

 

 


*BIT DATATYPE: 0 OR 1. Can not be indexed and null.

 

 

 

 

 

 

 


The monetary data types

Monetary data types are generally used to store monetary values.

MONEY: 8 bytes of storage
SMALLMONEY:4 bytes of storage


money


 -922,337,203,685,477.5808 - 922,337,203,685,477.5807
 8바이트
 


smallmoney


 - 214,748.3648 - 214,748.3647
 4바이트
 

 

 

 

 

The TABLE data type

: Used to store function's result.

 

 

 

 

 

 

 

 

 

 

 

 

 

3.1.4.7. The UNIQUEIDENTIFIER data type

 

 

The UNIQUEIDENTIFIER data type, globally unique identifier (GUID)


3.1.4.8. The XML data type

 


Introduced in sql server 2005 for the first time.

 


Tips) Selecting Data Types

If possible, use smallest column sizes to faster sql server.


For example, if you want to store numbers from 1 to 100 in a column, selecting TINYINT is better choice than INT.

 


Better use numeric data type like INTEGER than VARCHAR OR CHAR. Because it requires much less space than character data types.

From. http://blog.daum.net/wonderful_nhk/417

'IT > MSSQL' 카테고리의 다른 글

MSSQL 문자열 함수  (0) 2013.04.09
Trigger 트리거 관련 정보 조회.  (0) 2013.04.09
MSSQL Data Type  (0) 2013.04.01
MSSQL Int (Integer) Type  (0) 2013.04.01
Database Compare Tool.  (0) 2013.03.21
Posted by 당양부부34

2013. 4. 1. 17:04 IT/MSSQL

MSSQL Data Type

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
Integers
 
bigint
-2^63 (-9223372036854775808) 부터 2^63-1 (9223372036854775807) 까지의 정수를 지정 가능 합니다.
 
int
-2^31 (-2,147,483,648) 부터  2^31 - 1 (2,147,483,647)까지의 정수를 지정 가능 합니다.
 
smallint
2^15 (-32,768) 부터  2^15 - 1 (32,767)까지의 정수를 지정 가능 합니다.
 
tinyint
0 부터 255 까지의 정수를 지정 가능 합니다.
 
bit
 
bit
1 또는 0  이라는 데이터를 저장 가능하며 참, 거짓에 사용 됩니다.
 
decimal and numeric
 
decimal
-10^38 -1  10^38 -1 까지의 수에 대해 정밀도와 크기를 사용자에 의해 지정 가능 합니다.
 
numeric
decimal 형과 같습니다.
 
money and smallmoney
 
money
돈과 관계되는 데이터 타입으로  -2^63 (-922,337,203,685,477.5808) 부터 2^63 - 1 (+922,337,203,685,477.5807)까지의 수치를 사용가능 하며 1000단위 컴마를 사용 가능 합니다. 천조 까지의 데이터를 처리 가능합니다.
 
smallmoney
-214,748.3648 부터 +214,748.3647 까지 사용 가능하며 1000단위 컴마 지정이 가능 합니다.
 
Approximate Numerics
 
float
부동(정확하지 않은) 소수 데이터 형으로  -1.79E + 308 부터  1.79E + 308 까지의 데이터 사용이 가능 합니다.
 
real
-3.40E + 38 부터 3.40E + 38 까지의 부동 소수 데이터 형입니다.
 
datetime and smalldatetime
 
datetime
1월  1일, 1753년, 부터 12월 31일, 9999년, 까지의 데이터를 1000분의 일초 단위로 지정 가능 합니다.
 
smalldatetime
1월 1일, 1900년, through 6월 6일, 2079년, 까지 1분 단위 정확도로 지정 가능 합니다.
 
Character Strings
 
char
8,000바이트(문자)까지 지정 가능한 유니코드가 아닌 고정길이 데이터 형입니다.
 
varchar
8,000바이트 까지 지정 가능한 유니코드가 아닌 가변길이 데이터 형입니다.
 
text
2^31 - 1 (2,147,483,647) 유니코드가 아닌 가변길이 데이터형으로 2기가 까지 지정 가능 합니다.
 
 
 
Unicode Character Strings
 
nchar
4,000바이트 까지 지정 가능한 유니코드 고정길이 데이터 형입니다.
 
nvarchar
4,000바이트 까지 지정 가능한 유니코드 가변길이 데이터 형입니다.
 
ntext
2^30 - 1 (1,073,741,823) 즉, 1기가 까지 지정 가능한 가변길이 유니코드 데이터 형입니다.
 
Binary Strings
 
binary
8,000 바이트 까지 이진 데이터를 지정 가능한 고정길이 데이터형입니다.
 
varbinary
8,000바이트 까지 이진 데이터를 지정 가능한 가변길이 데이터형입니다.
 
image
2기가까지 이진 데이터를 지정 가능한 가변길이 데이터형입니다.
 
Other Data Types
 
cursor
커서 지정에 사용하는 형입니다. 커서에서만 사용 합니다.
 
rowversion
sql2000에서 timestamp 형에서 변경된 데이터 형으로 데이터베이스에 걸쳐 유일하게 사용하는 고유 값을 지정 하는 데이터 형입니다. 해당 로우가 변경될시 함께 변경됩니다. timestamp 형이라 보통 불립니다.
 
sql_variant
text, ntext, timestamp, 과 sql_variant 형을 제외한 모든 데이터형을 저장 가능한 데이터 형입니다.
 
table
sql2000부터 생긴 데이터 형으로 테이블과 같은 2차원 데이터를 저장하기위한 데이터 형입니다.
 
uniqueidentifier
어떠한 경우라도 중복되지 않는 항상 고유한 값을 저장하는 데이터 형입니다.

 

'IT > MSSQL' 카테고리의 다른 글

Trigger 트리거 관련 정보 조회.  (0) 2013.04.09
MSSQL Data Type(2)  (0) 2013.04.01
MSSQL Int (Integer) Type  (0) 2013.04.01
Database Compare Tool.  (0) 2013.03.21
MSSQL Index  (0) 2013.03.19
Posted by 당양부부34
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

 Type

Byte 

Range 

 bigint  8  -2^63(-9,223,372,036,854,775,808) ~ 2^63-1(9,223,372,036,854,775,807)
 int  4  -2^31(-2,147,483,648) ~ 2^31-1(2,147,483,647)
 smallint  2  -2^15(-32,768) ~ 2^15-1(32,767)

 tinyint

 1  0 ~ 255

smallint를 잠시 살펴보면

1Byte = 8Bit..

Bit는 0과 1. 즉 2가지 Case.

그러므로

2Byte 표현 가능수 =16Bit의 표현가능 수 = 2^16 = 65535

0~65535 하면 음수 표현 못하니까

반 잘라서

-32768~32767

너무 당연한 이야기를 했지만.. 그래도 끄적거리고 싶었다.

 

그럼 왜 tinyint는 반 잘라서 음수표현을 안한것일까?

걍 내 생각엔 1Byte의 숫자범위(0~255)를 그대로 살리고자 했음이 아닐까 싶다.

플밍을 하다보면 Byte 단위는 소중하니까(Memory Handling 등..).. ㅋㅋ

 

 

 

'IT > MSSQL' 카테고리의 다른 글

MSSQL Data Type(2)  (0) 2013.04.01
MSSQL Data Type  (0) 2013.04.01
Database Compare Tool.  (0) 2013.03.21
MSSQL Index  (0) 2013.03.19
DB ID 조회 Query  (0) 2013.03.18
Posted by 당양부부34

2013. 3. 21. 14:45 IT/MSSQL

Database Compare Tool.

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

http://dbcomparer.com/

Free ~

But you can support..

에혀.. 공짠데 기부하려면 기부해도 된다.. 괜히 영어쓰려다 짜증만 팍!

'IT > MSSQL' 카테고리의 다른 글

MSSQL Data Type(2)  (0) 2013.04.01
MSSQL Data Type  (0) 2013.04.01
MSSQL Int (Integer) Type  (0) 2013.04.01
MSSQL Index  (0) 2013.03.19
DB ID 조회 Query  (0) 2013.03.18
Posted by 당양부부34

2013. 3. 19. 15:43 IT/MSSQL

MSSQL Index

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

인덱스(MSSQL)

1.색인의 기본 개념

SQL서버에서 기본값으로 테이블을 만들고 데이터를 추가,수정하고 필요없는 데이터 삭제해가면서 저장할 때 데이터의 레코드는 내부적으로 아무런 순서 없이 저장된다.이때 데이터 저장영역을 Heap이라고 한다. Heap에서는 인덱스가 없는 테이블의 데이터를 찾을 때 무조건 전체 데이터 페이지의 처음 레코드부터 끝페이지의 마지막 레코드까지 다 읽어서 검색조건과 비교하게 된다. 이런식의 데이터 검색방법을 테이블 스캔(table scan) 또는 풀 스캔(full scan)이라고 한다.이럴 경우 양이 많은 테이블에서 일부분의 데이터만 필요로 할때 전체 영역을 다 읽어서 검색조건과 비교하게 되므로 처리 성능이 떨어진다.즉 색인은 데이터를 select 할 때 빨리 찾기 위해 사용된다.

create table board(
id int not null,
name varchar(20) default ''default name'',
date smalldatetime default getdate()
)
go

insert board values(1,default,default)

select name from board where id=1

select문을 마우스로 드래그하여 선택한 후 메뉴의 쿼리-예상실행계획표시(Ctrl+L)를 택하고 밑에 나오는 그림에 마우스를 갖다대면 풍선도움말이 나온다.여기에 보면 물리적연산,논리적 연산에 Table Scan 이라고 나온다.



2. 인덱스 만들 때 고려할 점

인덱스를 만들면 좋은 컬럼
* where , order by , group by 문 등에서 자주 사용되는 칼럼(인덱스 데
이터는 order by문을 사용하지 않더라도 정렬된 순서로 되어있음)
* 프라이머리키,유니크 constraints 컬럼 (내부적으로 유니크 인덱스 사
용)
* 포린 키 컬럼

인덱스 만들면 나쁜 컬럼
* 쿼리에서 자주 사용하지 않는 컬럼
* 키값이 선별도가 나쁠때 (성별,국적,학력...)


3.인덱스가 있을경우

1)만드는 방법:
CREATE [UNIQUE] [CLUSTERED | NONCLUSTERED]
INDEX index_name ON table (column [,...n])
[WITH
[PAD_INDEX]
[[,] FILLFACTOR = fillfactor]
[[,] IGNORE_DUP_KEY]
[[,] DROP_EXISTING]
[[,] STATISTICS_NORECOMPUTE]
]
[ON filegroup]

2)생성된 인덱스 보기
exec sp_helpindex 테이블이름

3)인덱스 제거
drop index ''table.index''[,...n]

4)클러스터드 인덱스(clustered index)
:책으로 예를 들면 차례에 해당한다.
한테이블에 하나만 있어야 한다.
차례에 나오는 순서와 책의 순서가 일치하듯 데이터가 키값에 따라 정렬되어있다.
일정한 범위를 주고 찾는 경우 속도 향상에 도움이 된다.

create clustered index board_CL on board(id)
go

select name from board where id=1

select문을 마우스로 드래그하여 선택한 후 메뉴의 쿼리-예상실행계획표시(Ctrl+L)를 택하고 밑에 나오는 그림에 마우스를 갖다대면 풍선도움말이 나온다.여기에 보면 물리적연산,논리적 연산에 clustered index seek이라고 나온다.



5)넌클러스터드 인덱스(nonclustered index)
:책으로 예를 들면 찾아보기에 해당한다.
용어찾기,표찾기,그림찾기 처럼 한테이블에 여러개가 있을수 있다.
찾아보기가 책의 순서와 일치하지 않듯이 데이터는 들어가 있는 순서대로 있다.
일정한 범위를 주고 찾는 경우 테이블 관리자가 테이블과 함께 인덱스까지 관리해야 한다.

create table board2(
id int not null,
name varchar(20) default ''default name'',
date smalldatetime default getdate()
)
go

create clustered index board_NC on board2(id)
go

select name from board2 where id=1

select문을 마우스로 드래그하여 선택한 후 메뉴의 쿼리-예상실행계획표시(Ctrl+L)를 택하고 밑에 나오는 그림에 마우스를 갖다대면 풍선도움말이 나온다.여기에 보면 물리적연산,논리적 연산에 index seek이라고 나온다.

5.유일색인과 중복허용
1)primary key constraint
:클러스터 색인,유일색인이 디폴트
create table board3(
id int constraint PK_id primary key not null,
name varchar(20) default ''default name'',
date smalldatetime default getdate()
)
go

2)create index
:넌클러스터 색인,중복허용
create table board4(
id int not null,
name varchar(20) default ''default name'',
date smalldatetime default getdate()
)
go

create index board4_NC on board4(id)

insert board4 values(1,default,default)
insert board4 values(1,default,default)
중복이 허용된다.

클러스터 색인에 유일색인으로 바꾸고 싶으면
delete board4 (테이블의 데이터 지우기)
drop index board4.board4_NC (색인 지우기)

create unique clustered index board4_CL on board4(id)
이제 중복이 허용되지 않고 클러스터드 인덱스로 바뀌었다.

6.테이블에서 중복된 컬럼값 찾기
테이블에 이미 중복된 키값이 있을 경우 유니크 인덱스(유일색인)를 만들 수 없다.그럼 테이블에 어떤값이 얼마나 중복되어 있는지 미리 볼 수 있는 방법을 알아보자.
create table member(
id int not null,
name varchar(20)
)

insert member values(1,''길동'')
insert member values(2,''철수'')
insert member values(2,''영희'')
insert member values(3,''순이'')
insert member values(3,''은정'')
insert member values(4,''성관'')

select * from memeber where id in(select id from member group by id having count(id)>1) order by id

7.복합(composite)인덱스
테이블에서 인덱스의 키값으로 사용되는 컬럼이 두개 이상일때를 말하며 두개 이상의 컬럼이 조건문에서 함께 자주 사용되는 경우 필요하다.주민등록번호 앞의 6다리와 뒤의 7자리로 두개의 컬럼에 저장할 때 유니크 복합인덱스를 사용하는것이 일반적이다.
*최대 16개까지의 컬럼이 하나의 인덱스에 사용될 수 있다.각 컬럼의 합은 전체 900바이트를 초과할 수 없다.
*(column1,column2)의 순서로 만든 인덱스는 (column2,column1)의 순서로 만든 인덱스와 키값 저장구조가 틀리다.중복이 가장 적은 컬럼을 앞에 두는순서로 만들면 인덱스를 더욱 효율적으로 사용하여 검색 속도를 높이게 된다.
*(column1,column2)의 순서로 만든 인덱스가 있을 때 조건문에서 column2만을 사용때는 인덱스를 사용할 수 없다.하지만 column1 또는 column1과 column2을 함께 사용할 때는 인덱스를 사용할 수 있다.

drop table member

create table member(
id int nuo null,
name varchar not null,
jumin1 char(6) null,
jumin2 char(7) null
)

create unique index ix_jumin on member(jumin1,jumin2)

8.covering index
전체 테이블에서 일부 컬럼만을 액세스할 때는 해당 컬럼에 대해서 넌클러스터드 인덱스를 만들어 두면 월등한 처리 성능의 향상을 볼 수 있다.
create table member2(
id1 int not null,
id2 int not null,
name varchar(20),
address char(950)
)

set nocount on
begin tran
declare @i int
set @i=0
while @i<1000
begin
insert member2 values(@i,@i,''A'',''TEST ADDRESS'')
set @i=@i+1
end
commit tran
set nocount off

(set nocount on은 한개행 적요됨 이 나타나지 않도록 하기 위함)

1)일반 index 성능 분석
create index ix_id1_id2 on member2(id1)

set statistics io on
select id2 from member2 where id1=100
set statistics io off

(여기서 statistics io on은 쿼리 성능 분석하는 것으로 입출력 처리 정보를 보여준다.I/O가 많다는 것은 속도가 느려진다는 것을 의미한다.
실행하는데 걸린 시간을 알고 싶으면 set statistics time on/off을 사용한다.)

실행한 후 메시지를 보면 논리적 읽기 수가 3으로 나온다.

set statistics io on
select id1 from member2 where id2=100
set statistics io off
실행한 후 메시지를 보면 논리적 읽시 수가 143이다.
이것이 인덱스를 사용할 때와 사용하지 않았을 때의 상황이다.

2)covering index를 생성했을때
create index ix_id1_id2 on member2(id1,id2) with drop_existing

(여기서 with drop existing 는 테이블에 이미 인덱스가 있을때 같은 이름으로 인덱스를 새로 만들때는 이 옵션을 쓴다.)

set statistics io on
select id2 from member2 where id1=100
set statistics io off

논리적 읽기수 4개로 나옴

set statistics io on
select id1 from member2 where id2=100
set statistics io off

논리적 읽기수 4개로 나옴

3)키값이 아닌 컬럼을 쿼리에서 사용할 때
select * from member2 where id2=100 where id2=100 ---모든 컬럼 선택

논리적 읽기 수 5개


9.Optimizer Hints사용법
Optimizer Hints는 쿼리를 실행할 때 데이터를 어떻게 액세스하는지를 지정하는 것으로 쿼리 옵티마이저가 선택하는 처리순서를 바꾸려고 할 때 사용한다.
1)사용법
select from table_name with (table_nint[,...n])

* index(0) 옵션은 테이블 스캔을 하게 한다.
* 하나의 쿼리에서 여러개의 인덱스를 사용할 수 있다. index(index1,index2)
* optimizer hints는 정적(static)으로 쿼리 실행계획(execution plan)을 지정하며 쿼리 옵티마이저보다 우선한다.그러므로 optimizer hints를 사용할 때는 처리 성능이 좋았더라도 테이블의 데이터나 환경 설정이 변했을 때는 쿼리 처리 성능이 저하될 수 있으므로 주의 해야 한다.

create table member3(
id1 int not null,
id2 int not null,
name varchar(20),
address char(950)
)

set nocount on
begin tran
declare @i int
set @i=0
while @i<1000
begin
insert member3 values(@i,@i%50,''A'',''TEST ADDRESS'')
set @i=@i+1
end
commit tran
set nocount off

create index ix_id1_id2 on member3(id1,id2)

일반 상태
set statistics io on
select * from member3 where id2=5
set statistics io off

논리적 읽기 수 143개

옵티마이저힌트 사용
set statistics io on
select * from member3 with(index(ix_id1_id2)) where id2=5
set statistics io off

논리적 읽기 수 24개

10.clusterd와 nonclustered 색인에 대한 이해
클러스터 색인이 넌클러스터 색인보다 빠르다.범위를 주고 찾는경우에도 클러스터 색인이 훨씬 좋은 성능을 자랑한다.넌클러스터 색인만으로 범위를 주고 찾는 것은 테이블 스캔보다 더 나쁜 성능을 낸다.그렇지만 클러스터색인은 테이블당 하나밖에 존해할 수 없기 때문에 신중히 선택해야 한다.
클러스터 인덱스가 없을때 프라이머리키 constraints를 생성하면 기본적으로 클러스터드 인덱스가 만들어진다.그러나 기본키를 무조건 클러스터 색인으로 설정하는 것은 옳지 않다.일반적으로 정렬이 되어있어야 더 좋은 속도를 낼 수 있는 컬럼을 클러스터 색인으로 만드는 것이 좋다.왜냐하면 클러스터 색인은 데이터가 미리 키값으로 정렬되어있기 때문이다.그래서 프라이머리키를 클러스터 인덱스로 사용하지 않을 경우 생성할 때 명시적으로 Nonclustered 옵션을 지정해줘야 한다.

1)테이블 만들고 클러스터 색인 만들기
create table t_index(
id int identity,
name char(20) default ''default name'',
date smalldatetime default getdate()
)

create clustered index t_index_CL on t_index(id)
go

2)테이블에 10000건의 데이터 입력
set nocount on
declare @i smallint
set @i=0
while @i<10000
begin
set @i=@i+1
insert t_index default values
end
set nocount off

3)제대로 입력되었는지 확인
select max(id) from t_index

4)색인이 언제 사용되는지 확인
select * from t_index where id=300

select문을 마우스로 드래그하여 선택한 후 메뉴의 쿼리-예상실행계획표시(Ctrl+L)를 택하고 밑에 나오는 그림에 마우스를 갖다대면 풍선도움말이 나온다.(아래부터 플랜이라 명한다.)여기에 보면 물리적연산,논리적 연산에 clustered index seek이라고 나온다.즉 색인을 사용하고 있다.

5)범위가 있는 경우
select * from t_index where id between 1 and 10000
플랜을 사용하면 clustered index seek이라고 나온다.즉 색인을 사용하고 있다.

6)클러스터 색인이 있을 경우 테이블 스캔
select * from t_index with(index(0)) where id=300
select * from t_index with(index(0)) where id between 1 and 10000
플랜을 사용하면 clustered index scan이라고 나온다.즉 테이블 스캔을 사용하고 있다.

7)nonclustered 색인 만들기
create nonclustered index t_index_NC on t_index(id)
go

8)질의 사용시 색인 사용하면 I/O얼마나 발생?
set statistics io on
select count(name) from t_index where id=300
set statistics io off

2페이지 발생

set statistics io on
select count(name) from t_index with(index(t_index_NC)) where id=300
set statistics io off

(클러스터드 인덱스가 존재하므로 optimizer hint를 명시하지 않으면 자동적으로 clusterd index가 사용된다.)

4페이지 발생
(그렇다면 순수하게 넌클러스터 색인에서만 발생한 페이지는 2페이지다.왜냐하면 넌클러스터 색인은 클러스터 인덱스에 의 다시 배열되어있으므로 넌클러스터 색인을 찾고 다시 클러스터 색인을 찾기 때문이다.)

9)범위를 주고 찾는 질의 수행할 경우 클러스터와 넌클러스터 색인의 차이

클러스터 색인 사용시
set statistics io on
select count(name) from t_index where id between 1 and 300
set statistics io off
논리적인 읽음 수 3

테이블 스캔 사용
set statistics io on
select count(name) from t_index with(index(0)) where id between 1 and 300
set statistics io off
논리적인 읽음 수 47

넌클러스터 색인 사용시
set statistics io on
select count(name) from t_index with(index(t_index_NC)) where id between 1 and 300
set statistics io off
논리적인 읽음 수 645

이것은 테이블 전체인 46페이지보다 더 많다.(테이블 크기는 exec sp_spaceed t_index를 실행해보면 알수 있다.data 368Kb를 8로 나누면 페이지가 나온다.)따라서 넌클러스터 색인은 범위를 주고 값을 찾을 때는 색인을 사용하지 않는 것보다 불리하다.

10)클러스터 색인만 삭제하면 어떤일이 발생?
drop index t_index.t_index_CL
넌클러스터 색인이 다시 만들어진다.크러스터 색인의 키 값을 가리키다가 행번호를 가리키게 되기 때문이다.

11)스토어드 프로시저의 recompile
프로시저 만들기
create proc porcGetById
@id int
as
select count(date) from t_index where id<@id

I/O양 비교
set statistics io on
select count(date) from t_index where id<2
exec procGetByID 2
둘다 3페이지의 I/O를 보인다.아무 차이 없다.

다음 질의를 이어서 실행해보자
set statistics io on
select count(date) from t_index where id<1000
exec procGetByID 1000
첫번째는 49페이지.두번째는 1003페이지.
첫번째 실행에서 색인을 사용하도록 컴파일 되었기 때문에 두번째도 넌클러스터 색인을 사용하였고 그래서 엄청난 I/O를 보이고 있다.recompile하면 된다.

set statistics io on
exec porcGetByID 1000 with recompile

12)새로운 테이블을 만들고 클러스터 색인과 넌클러스터 색인을 모두 만들자.
create table contig(
id int identity constraint PK_contig Primary Key nonclustered,
name char(20) not null,
date datetime default getdate()
)

set nocount on
declare @i smallint
set @i=0
while @i<2000
begin
set @i=@i+1
insert contig values(''NAME''+convert(char(20),@i),default)
end

select count(*) from contig
go

create clustered index contig_CL on contig(name)
go

이미 PK로 선언된 넌클러스터 색인이 있기 때문에 클러스터 색인을 만들면 넌클러스터 색인은 다시 만들어진다.그래서 항상 클러스터 색인을 먼저 만들고 그 뒤에 넌클러스터 색인을 만드는것이 좋다.

'IT > MSSQL' 카테고리의 다른 글

MSSQL Data Type(2)  (0) 2013.04.01
MSSQL Data Type  (0) 2013.04.01
MSSQL Int (Integer) Type  (0) 2013.04.01
Database Compare Tool.  (0) 2013.03.21
DB ID 조회 Query  (0) 2013.03.18
Posted by 당양부부34

2013. 3. 18. 15:10 IT/MSSQL

DB ID 조회 Query

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

select * from master.dbo.sysdatabases

DB ID 알아다가

Profiler에서 DB ID Column 열을 체크하고(혹은 필터링해도 된다) Trace하면

DB가 여러개라 할지라도 쉽게 해당 DB만 트레이스 가능하다.

유용하다.

'IT > MSSQL' 카테고리의 다른 글

MSSQL Data Type(2)  (0) 2013.04.01
MSSQL Data Type  (0) 2013.04.01
MSSQL Int (Integer) Type  (0) 2013.04.01
Database Compare Tool.  (0) 2013.03.21
MSSQL Index  (0) 2013.03.19
Posted by 당양부부34
이전버튼 1 2 3 이전버튼

블로그 이미지
주요 토렌트를 블로깅하고 있습니다. 토렌트 순위 등은 다른 사이트를 찾아보세요. 주요 웹툰 순위도 게재했어요 경제를 좋아하는 일산의 행복한 프로그래머입니다.
당양부부34
Yesterday
Today
Total

달력

 « |  » 2024.4
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

글 보관함