테이블 생성 시 체크해야 할 리스트
* SQL Server 기준으로 작성하였습니다.
1. 테이블의 용도
1. 해당 테이블이 어떤 용도로 인해 만들어 졌는지 DBA 도 알고 있어야 합니다.
2. 로그성 테이블인 경우 데이터 보관일자에 대해서도 결정이 되어야 합니다.
로그성 데이터는 계속 쌓을 이유는 없기 때문입니다.
( 그래서 많은 사이트의 경우, 몇년 이상의 기록은 확인할 수 없다. 라는 내용을 확인할 수 있습니다. )
2. 데이터 유입량 체크
1. 테이블을 생성하면 하루에 유입되는 데이터 량과 최대 어느정도까지 데이터가 들어올지를 알고 있어야 합니다.
2. 그 기준으로 데이터 파일 크기가 어느정도까지 늘어날지, 디스크의 이슈는 없는지 확인이 가능합니다.
3. 명명 규칙 확인
1. 테이블 명을 규칙없이 생성하면 이후에 해당 테이블이 어떤 목적으로 왜 생성이 되었는지를 알기 힘듭니다.
2. 로그성 테이블은 테이블명 뒤에 _history 와 같은 suffix 를 붙여두는 것도 좋습니다.
3. 컬럼도 데이터 타입별로 명칭을 다르게 부여하면 더 좋습니다.
예로 아래와 같이 컬럼명 앞에 타입을 요약해두면 컬럼명만 보고도 컬럼의 크기를 알 수 있습니다.
bit 타입은 n1Column
integer 타입은 n4Column
datetime 타입은 dtColumn
4. 컬럼의 Data Type 이 적합한지 확인
1. Data Type 타입이 의미없이 크게 설정되어 있지는 않은지 확인합니다.
저장공간을 최대한 효율적으로 사용해야 합니다.
2. TEXT / VARCHAR(MAX) / LOB 타입은 VARCHAR(8000) 과 같은 타입으로 변경할 수 있는지 확인합니다.
저장된 데이터를 한번 더 찾아가야 하는 비용을 줄일 수 있습니다.
3. TEXT 컬럼의 경우 Text 전용 파일 그룹으로 설정하였는지 확인합니다.
5. 파일 그룹 확인
1. 파일 그룹이 Data 전용파일그룹(생성해야함)에 설정되었는지 확인합니다.
개발팀으로부터 테이블을 생성해달라고 요청이 왔을 때,
위의 리스트를 확인 후 진행하면 이후 업무에 도움이 많이 될 것입니다.
'Database > DBA 의 개인생각' 카테고리의 다른 글
[DBA] 컬럼 추가 시 체크해야 할 리스트 (0) | 2019.12.08 |
---|---|
[DBA] 인덱스 생성 시 체크해야 할 리스트 (0) | 2019.12.07 |
[DBA] 트리거가 성능에 미치는 악영향에 대해서 (0) | 2019.08.07 |
[DBA] 게시판 페이징 처리하는 방법 (Scan VS Seek) (0) | 2019.05.02 |
[DBA] COUNT(*) 안쓰고 테이블 총 레코드 조회하는 법 생각해보기 (0) | 2019.02.12 |