데이터베이스 성능 최적화 2:데이터베이스 테이블 최적화 성능 향상

5622 단어 성능표 최적화
데이터베이스 최 적 화 는 다음 과 같은 세 부분 을 포함 하고 데이터베이스 자체 의 최적화,데이터베이스 테이블 최적화,프로그램 조작 최 적 화 를 포함한다.이 글 은 두 번 째 부분 이다. 최적화 ①:디자인 규범화 표,데이터 중복 데이터 베이스 패 러 다 임 을 없 애 는 것 은 데이터 베이스 구조 가 합 리 적 이 고 각종 조회 수 요 를 만족 시 키 며 데이터 베이스 조작 이상 을 피 하 는 데이터 베이스 디자인 방식 이다.범례 요 구 를 만족 시 키 는 표 는 규범화 표 라 고 한다.범례 는 1970 년대 초 에 생 겨 났 다.일반 표 디자인 은 앞의 세 가지 범례 를 만족 시 키 면 된다.여기 서 앞의 세 가지 범례 를 간단하게 소개 하고 바 이 두 백과 가 내 린 정 의 를 보 여 준다.첫 번 째 범례(1NF)가 중복 되 지 않 는 이른바 첫 번 째 범례(1NF)는 관계 모델 에서 도 메 인 에 추 가 된 규범 요 구 를 말한다.모든 도 메 인 은 원자 성 이 어야 한다.즉,데이터베이스 시트 의 모든 열 은 분리 할 수 없 는 원자 데이터 항목 이 고 집합,배열,기록 등 비 원자 데이터 항목 이 어야 한다.두 번 째 패 러 다 임(2NF)속성 은 1NF 를 바탕 으로 비 코드 속성 은 코드[1NF 를 바탕 으로 비 주 속성 이 주 코드 에 대한 일부 함수 의존 을 없 애 야 합 니 다]세 번 째 패 러 다 임(3NF)속성 은 1NF 를 바탕 으로 그 어떠한 비 주 속성 도 다른 비 주 속성 에 의존 하지 않 습 니 다[2NF 를 바탕 으로 전달 의존 제거]통속 적 으로 설명 하 겠 습 니 다(가장 과학적 이지 않 을 수도 있 습 니 다.가장 정확 한 이해)첫 번 째 범례:속성(필드)의 원자 적 제약 은 속성 이 원자 성 을 가지 고 더 이상 분할 할 수 없 도록 요구한다.두 번 째 범례:기록 의 유일한 제약 은 기록 에 유일한 표 지 를 요구 하고 모든 기록 은 하나의 속성 으로 실체의 유일한 표지 가 되 어야 한다.세 번 째 범례:속성(필드)의 불필요 한 제약,즉 그 어떠한 필드 도 다른 필드 에서 파생 되 어 서 는 안 된다 는 것 이다.통속 적 인 점 은 바로 메 인 키 가 직접적인 관계 가 없 는 데이터 열 은 반드시 제거 해 야 한 다 는 것 이다.(제거 하 는 방법 은 하나의 표를 만들어 서 그들 을 저장 하 는 것 이다.물론 외부 키 는 제외)만약 에 데이터 베이스 디자인 이 완전한 표준화 에 이 르 렀 다 면모든 시 계 를 키 워드 를 통 해 연결 할 때 데이터 복사 본(repetition)이 나타 나 지 않 습 니 다.표준화 의 장점 은 뚜렷 하 다.이 는 데이터 의 번 거 로 움 을 피하 고 자 연 스 럽 게 공간 을 절약 하 며 데이터 의 일치 성(consistency)에 근본 적 인 보장 을 제공 하여 데이터 가 일치 하지 않 는 현상 을 근절 하 는 동시에 효율 도 높 였 다.최적화 ②:적당 한 번 거 로 움,계산 열 데이터 베이스 디자인 의 실 용적 인 원칙 은 데이터 번 거 로 움 과 처리 속도 사이 에서 적당 한 균형 점 을 찾 아 범례 를 만족 시 키 는 표 는 반드시 규범화 된 표 이지 만 반드시 가장 좋 은 디자인 은 아니다.많은 경우 에 데이터 뱅 크 의 운행 효율 을 높이 기 위해 범례 기준 을 낮 춰 야 한다.번 거 로 움 을 적당 하 게 증가 하고 공간 으로 시간 을 바 꾸 는 목적 을 달성 해 야 한다.예 를 들 어 우 리 는 표,제품 명칭,단가,재 고량,총 가치 가 있다.이 표 는 세 번 째 범례 에 만족 하지 않 는 다.왜냐하면'총 가치'는'단가'에'수량'을 곱 해서 얻 을 수 있 기 때문에'금액'은 불필요 한 필드 임 을 설명 한다.그러나'총 가치'라 는 불필요 한 필드 를 늘 리 면 조회 통계 의 속 도 를 높 일 수 있다.이것 이 바로 공간 으로 시간 을 바 꾸 는 방법 이다.합 리 적 인 잉여 는 데이터 양 이 많은 표 의 병발 압력 을 분산 시 킬 수 있 고 특수 조회 의 속 도 를 가속 화 할 수 있 으 며 잉여 필드 는 데이터 베이스 표 의 연결 을 효과적으로 감소 하고 효율 을 높 일 수 있다.그 중에서'총 가치'는 하나의 계산 열 로 데이터베이스 에 두 가지 유형 이 있 습 니 다.데이터 열 과 계산 열,데이터 열 은 우리 가 수 동 또는 프로그램 이 할당 해 야 하 는 열 입 니 다.계산 열 은 표 의 다른 데이터 에서 계산 할 수 있 습 니 다.예 를 들 어 여기 의'총 가치'는 SQL 에서 계산 열 을 만 듭 니 다
 
create table table1
(
number decimal(18,4),
price money,
Amount as number*price --
)
다시 표 디자인 할 수 있 습 니 다.열 속성 을 직접 수 동 으로 추가 하거나 수정 하면 됩 니 다.다음 그림 지속 성 여 부 는 우리 도 주의해 야 한다.만약'아니오'라면 이 열 이 가상 열 이라는 것 을 설명 하고 조회 할 때마다 한 번 계산 하 며 check,foreign key 또는 not null 제약 을 할 수 없다.'예'라면 실제 열 입 니 다.매번 계산 할 필요 가 없습니다.이 열 에 색인 을 만 들 수 있 습 니 다.최적화 ③:색인 색인 은 표 최적화 의 중요 한 기준 으로 표 최적화 에서 매우 중요 한 성분 을 차지 하기 때문에'SQL 색인'을 한 장 씩 작성 하여 색인 최적화 ④:메 인 키 와 외 키 의 필요 성 메 인 키 와 외 키 의 디자인 을 어떻게 구축 하고 최적화 하 는 지 알려 주 고 전체적인 데이터 베이스 디자인 에서 중요 한 위 치 를 차지한다.왜냐하면 메 인 키 는 실체의 추상 적 이 고 메 인 키 와 외부 키 의 조합 으로 실체 간 의 연결 을 나타 내기 때문이다.메 인 키:두 번 째 범례 에 따라 하나의 필드 로 이 기록 을 표시 해 야 한다.메 인 키 는 가장 좋 은 표지 임 에 틀림없다.그러나 많은 표 도 메 인 키 가 필요 하지 않 지만 데이터 의 양 이 많 고 조회 가 빈번 한 데이터 베이스 표 에 대해 반드시 메 인 키 가 있어 야 한다.메 인 키 는 효율 을 높이 고 중복 을 방지 할 수 있다 는 장점 이 있다.메 인 키 의 선택 도 중요 하 다.보통 전체 길이 가 작은 키 를 선택 하고 작은 키 는 속도 가 빠 르 며 작은 키 는 메 인 키 의 B 트 리 구조의 차원 을 더욱 적 게 할 수 있다.메 인 키 의 선택 은 메 인 키 의 필드 순 서 를 주의해 야 합 니 다.메 인 키 를 조합 하 는 데 있어 서로 다른 필드 순서 의 메 인 키 의 성능 차이 가 클 수 있 습 니 다.보통 중복 율 이 낮 고 단독 또는 조합 조회 가능성 이 높 은 필드 를 앞 에 두 어야 합 니 다.외부 키:외부 키 는 데이터 베이스 대상 으로 많은 사람들 이 귀 찮 고 사용 하지 않 는 다 고 생각 합 니 다.실제로 외부 키 는 대부분 상황 에서 매우 유용 합 니 다.이 유 는 외부 키 는 가장 효율 적 인 일치 성 유지 방법 데이터 뱅 크 의 일치 성 요구 이 고 순서대로 외부 키,CHECK 제약,규정 제약,트리거,클 라 이언 트 프로그램 을 사용 할 수 있 습 니 다.일반적으로 생각 합 니 다.데이터 와 가 까 운 방법 일수 록 효율 이 높다.직렬 삭제 와 직렬 업 데 이 트 를 신중하게 사용 하고 직렬 삭제 와 직렬 업 데 이 트 는 SQL SERVER 2000 년 의 새로운 기능 으로 2005 년 에 보류 되 었 으 므 로 사용 할 수 있 는 점 이 있어 야 한다.제 가 여기 서 말 하 는 신중 함 은 직렬 삭제 와 직렬 업데이트 가 전통 적 인 외부 키 에 대한 정 의 를 돌 파 했 기 때 문 입 니 다.기능 이 너무 강하 기 때문에 사용 하기 전에 자신 이 그 기능 범 위 를 잘 파악 해 야 합 니 다.그렇지 않 으 면 직렬 삭제 와 직렬 업 데 이 트 는 당신 의 데 이 터 를 이상 하 게 수정 하거나 잃 어 버 릴 수 있 습 니 다.성능 으로 볼 때 직렬 삭제 와 직렬 업 데 이 트 는 다른 방법 보다 효율 적 인 방법 이다.최적화 ⑤:저장 과정,보기,함수 의 적당 한 사용 은 많은 사람들 이 복잡 한 조작 을 응용 프로그램 층 에 두 는 습관 이 있 지만 데이터 액세스 성능 을 최적화 하려 면 SQL 코드 를 데이터베이스 에 이식(저장 과정,보기,함수 와 트리거 사용)하 는 것 도 큰 개선 원인 이다.1.저장 과정 은 네트워크 전송,처리 와 저장 작업량 을 감소 시 켰 다.또한 컴 파일 과 최 적 화 를 통 해 실행 속도 가 빠 르 고 유지 하기 쉬 우 며 표 의 구조 가 바 뀌 었 을 때 클 라 이언 트 의 응용 프로그램 2,저장 과정,보기,함 수 는 응용 프로그램 에서 SQL 복사 의 단점 을 줄 이 는 데 도움 이 된다.왜냐하면 지금 은 한 곳 에서 만 SQL 3 을 집중 적 으로 처리 하고 데이터 베 이 스 를 사용 하 는 대상 이 모든 TSQL 을 실현 하 는 것 이 TSQL 의 성능 문 제 를 분석 하 는 데 도움 이 되 기 때문이다.또한 TSQL 코드 를 집중 적 으로 관리 하 는 데 도움 이 되 고 TSQL 코드 최적화 ⑥:전설의'3 소 원칙'①:데이터 베 이 스 는 표 가 적 을 수록 좋다 ②:표 의 필드 가 적 을 수록 좋다 ③:필드 의 조합 키,조합 색인 이 적 을 수록 좋다.물론 이곳 의 적은 것 은 상대 적 이 고 데이터 의 번 거 로 움 을 줄 이 는 중요 한 디자인 이념 이다.최적화 ⑦:시 계 를 분할 하고 시계 사 이 즈 를 줄 입 니 다.만약 에 특정한 표 의 기록 이 너무 많은 것 을 발견 하면 천만 개가 넘 으 면 이 시 계 를 수평 으로 분할 해 야 합 니 다.수평 분할 방법 은 이 표 의 메 인 키 의 특정한 값 을 경계선 으로 하고 이 표 의 기록 수준 을 두 표 로 나 누 는 것 이다.만약 에 특정한 표 의 필드 가 너무 많은 것 을 발견 하면 예 를 들 어 80 개가 넘 으 면 이 표를 수직 으로 나 누 어 원래 의 표 하 나 를 두 개의 표 로 나 누 어 최적화 시 킵 니 다 ⑨:필드 디자인 원칙 필드 는 데이터 베이스 의 가장 기본 적 인 단위 로 디자인 이 성능 에 미 치 는 영향 이 매우 큽 니 다.주의해 야 할 것 은 다음 과 같다.A.데이터 유형 은 가능 한 한 숫자 형 을 사용 하고 숫자 형 은 문자 형 보다 훨씬 빠르다.B.데이터 유형 은 가능 한 한 작 게 하고 여기 서 가능 한 한 작 게 하 는 것 은 예견 할 수 있 는 미래 수 요 를 만족 시 키 는 전제 에서 하 는 것 을 말한다.C.NULL 을 가능 한 한 허용 하지 마 십시오.필요 하지 않 으 면 NOT NULL+DEFAULT 로 대체 할 수 있 습 니 다.D.TEXT 와 IMAGE 를 적 게 사용 하면 바 이 너 리 필드 의 읽 기와 쓰기 가 느 리 고 읽 는 방법 도 많 지 않 으 므 로 대부분 사용 하지 않 는 것 이 좋 습 니 다.E.자체 증가 필드 는 신중하게 사용 해 야 하 며 데이터 이전 에 불리 합 니 다.

좋은 웹페이지 즐겨찾기