큰 데이터 볼륨에서 SQL Server 데이터베이스의 최적화

출처: 인터넷
작성자: 사용자
키워드: 경우 서로 다른 그래서

1.1: 보조 데이터 파일을 증가

SQL SERVER 2005 부터는 데이터베이스 기본값으로 사용 하지 않은 NDF 데이터 파일을 생성, 일반적으로 주 데이터 파일 (MDF)은 충분, 하지만 몇 가지 큰 데이터베이스, 정보, 및 자주 쿼리 그래서 쿼리의 속도 개선 하기 위해 어떤 테이블이 나 별도 데이터 파일에 테이블에서 레코드의 일부를 저장할 수 있습니다.

때문에 CPU와 메모리 속도 하드 디스크 보다 훨씬 높은 읽기 쓰기 속도, 그래서 같은 시간 쿼리, CPU 및 메모리 성능을 완전히 활용 하는 여러 개의 하드 드라이브 쿼리 속도 향상 시킬 때 쿼리를 가질 수 있도록 서로 다른 실제 하드 드라이브에서 다른 데이터 파일을 넣을 수 있습니다. 여기에 쓰기를 작동 하는 방법, 그리고 어떻게 데이터 파일 (MDF, NDF) 및 로그 파일 (LDF) 다르게 기록 됩니다에 대 한 자세한 설명이입니다.

데이터 파일: 3 데이터 파일 A.mdf, 경우 동일한 파일 그룹에 있는 모든 파일의 기존 여유 공간의 크기에 따라 모든 공간 데이터 파일에 새 데이터를 배포 하는 SQL Server 그는 경우 로그 파일이 꽉 찼습니다, 그것은 그것을 쓰지 것입니다 40, 20, 10의 데이터를 ABC 세 파일에 쓸 것입니다, 그리고 B.NDF,C.NDF, 유휴 크기 200MB, 50MB, 100MB, 이며 다음 70 mb 일 작성

로그 파일: 로그 파일에에서 작성 되 고 하나는 다른 쓰기 전에 전체

위의 데이터 파일 ndf를 증가 수에서 볼 수, 큰 데이터 쿼리 속도, 그러나 증가 로그의 찬성 파일 유용 하지 않습니다.

1.2: 자동 파일 증가 (많은 양의 데이터, 작은 양의 데이터 설정 없이) 설정

기본 MDF 파일의 초기 크기 5 메가바이트, 1 메가바이트, 무제한 성장, 증가 이후 SQL Server 2005에서는 LDF 처음 1 MB, 10%의 성장, 수, 일반 디자인, 디자인으로 SQL을 사용 하 여 제한 된 파일 증가 수 있지만, 큰 데이터베이스 디자인 초기 값이 너무 작아, 다음 데이터베이스 전체 것, 전체, 경우 삽입 될 경우 그들의 성장 및 직접에서 초기 크기를 디자인 하는 것이 최선인가? 데이터 파일은 전체, 일부 작업을 완료 하면 SQL Server는 파일의 자동 성장 이상이 며 원래 작업은 계속 됩니다 때까지 기다립니다. 그것은 성장 하는 데 시간이 오래 걸립니다, 원래 작업 취소 제한 시간 (기본 임계값은 15 초)를 기다릴 수 없어, 뿐만 아니라이 작업은 롤백할 수, 파일의 자동 증가 또한 취소 됩니다. 즉,이 이번 파일 얻지 않았다 어떤 증가, 시간이 너무 작고, 너무 큰, 긴 시간을 기다려, 그래서 몇 가지에 주목 하 자동 증가 설정 해야 하는 경우 다양 한 맞게, 연속 성장 해야 하는 경우 자동 성장의 크기에 따라 성장:

1 증가 하는 고정된 크기와 비례 하지로 설정 됩니다. 이 성장 하는 너무 많이 또는 너무 적게의 불필요 한 번거로움을 피할 수 있습니다. 작은 데이터베이스를 비교 하 고 mb MB의 증가 설정 하는 것이 좋습니다. 큰 데이터베이스에 대 한 mb MB의 증가 설정 합니다.

정기적으로 큰, 각 파일에 대 한 남은 공간 되도록 최대한 각 데이터 파일 또는 예상된 비율의 사용을 모니터 2.

3은 디스크 공간이 성장에 영향을 미치는 운영 체제에서 SQL Server 파일을 방지 하기 위해 최대 파일 크기를 설정 합니다.

4 성장, 적시에 발생 후 새로운 데이터 파일 공간 할당을 확인합니다. SQL Server 항상 개별 파일에 데이터를 작성 하지 마십시오.

따라서, 더 바쁜 데이터베이스에 대 한 권장된 설정은 데이터베이스 공간이 부족에서 응용 프로그램을 방지 하기 위해 하지만 엄격 하 게 자동 성장 발생을 피하기 위해 데이터베이스 자동 증가 옵션을 켜는 것입니다. 또한, 자동 축소 기능을 사용 하지 않기 위하여 보십시오.

1.3 데이터와 로그 파일이 서로 다른 디스크에 별도로 저장 됩니다.

데이터 파일 및 로그 파일의 작업이 많은 양의 I/O 생성합니다. 가능 하면, 로그 파일 데이터 및 인덱스는 I/O, 또한 데이터베이스에 대 한 재해 복구를 촉진 하는 동안 배포에 데이터 파일이 다른 하드 디스크에 저장 합니다.

② 최적화: 분할 테이블, 인덱스 분할 (최적화 된 ① 거친 테이블 분할 ② 정확한 데이터 분할에 대 한 최적화)

테이블 분할은 왜 필요 합니까?

테이블에 있는 데이터의 양이 너무 큰 경우에, 할 우리가 싶은 무슨 대부분? 하나 이상의 지점으로는 테이블 분할 하지만 테이블은 여전히 테이블 그리고 그것은 단지 그 내용을 분리, 그래서 그것이 거의 n 배 더 빨리 읽을.

원리: 테이블 데이터를 파일에 배치할 수 없습니다 하지만 파일 그룹은 파일에 배치할 수 있습니다 그리고 테이블 직접 구현 하지 테이블 데이터 파일을 다른 파일에는 파일 그룹에 배치 될 수 있습니다. 테이블, 인덱스 및 큰 개체 데이터를 분할 될 수 있다.

도입 하는 SQL SERVER 2005 테이블 분할 때 테이블에 있는 데이터의 양을 증가, 쿼리 데이터의 속도가 느린 것, 응용 프로그램의 성능이 저하 될 것 이다, 데이터의 많은 경우는 테이블 분할 고려해 야 합니다의 개념, 분할할 수 있습니다 그것은 여러 개의 테이블, 데이터를 검색할 수 있기 때문에, 쿼리는 더 빠르게 실행할 수 있습니다,이 작업 크게 성능이 향상 됩니다, 테이블 분한 후, 논리 테이블은 여전히 완전 한 테이블, 테이블에서 데이터는 하나 이상의 테이블 공간 (물리적 파일)에 물리적으로 저장 때 쿼리 데이터를 검색 하지 전체 테이블 모든 시간을

2.1 사용 하는 경우 파티션 테이블:

1, 2GB 보다는 더 많은 테이블의 크기.

2. 테이블 기록 데이터를 포함 하 고 새 파티션으로 새 데이터 추가 됩니다.

2.2 테이블 분할 장점 및 단점

테이블 분할 다음과 같은 이점이 있습니다.

1, 쿼리 성능 향상: 그들의 자신의 관리 파티션 개체 수만 검색 쿼리, 검색의 속도 향상.

2. 유용성 향상: 테이블의 파티션 실패 하면, 다른 파티션에 데이터를 여전히 사용할 수;

3, 유지 보수 편의성:는 오류 섹션의 테이블 파티션을 수 있습니다;만 수리 데이터 복구 해야하는 경우

4, I/O 균형: 균형 I/O 디스크, 전반적인 시스템 성능을 향상 시킬 수 다른 파티션을 매핑할 수 있습니다.

단점:

파티션 테이블 상관 관계: 기존 테이블에 분할 된 테이블로 직접 변환 될 수 있는 방법 없다. 그러나, Oracle 테이블 온라인 재정의 하는 기능을 제공 합니다.

2.3 테이블 분할 작업 3 단계

2.31 파티션 함수 만들기

파티션 함수 만들기 xx1 (int)

값 (10000, 20000);에 대 한 범위를 왼쪽으로

참고: 파티션 함수 만들기: myRangePF2 int 형식 파티션, 지역 c에서 지역 A, 지역 B, 2W 이상 1w-2w 10000 이내 3 간격으로 나누어

2.3.2 파티션 스키마 만들기

파티션 구성표 만들기 myRangePS2

파티션 xx1로

(A, B, c);

참고: 파티션 함수 XX1에 파티션 스키마를 작성: myRangePS2, a, b, c 3 간격으로 각각

A, b의 c 3 파일 그룹의 이름을 3 NDF 합병이 세 그룹을가지고 있어야 합니다 그리고 만들어진 파일 그룹을 수정할 수 없습니다

2.3.3 테이블 분

일반적인 데이터 사양 데이터 공간 유형 수정: 파티션 구성표를 파티션 구성표 이름 및 분할 열 목록을 선택한 다음 그림에서와 같이 결과:

SQL 문을 사용 하 여 생성 또한 수 있습니다.

만들기 테이블 [dbo]입니다. [Avcache] ([avnote] [varchar] (+) NULL, [BB] [int] 정체성 (1, 1)) [MyRangePS2]에 (BB);

-[myRangePS2] 아키텍처 BB 파티션 따라 여기 사용 됩니다

2.3.4 쿼리 테이블 분

선택 *, $PARTITION. [MyRangePF2] (BB) dbo. Avcache

그래서 당신은 명확 하 게 테이블의 데이터를 분할 하는 방법을 볼 수 있습니다.

2.3.5 만들 인덱스 파티션에

③ 최적화: 분산 데이터베이스 디자인

분산된 데이터베이스 시스템은 중앙 집중식된 데이터베이스 시스템 기초 개발 하 고 그것은 매우 간단 이해 하 고, 즉, 전체 데이터베이스를 분리 하 고 다양 한 장소에, 본질적으로, 분산 배포 데이터베이스 시스템은 두 가지로 나누어: 1. 분산된 데이터베이스 이며 논리적으로 통합 데이터는 논리적으로 통합 하 고 물리적으로 분산, 전체, 물리적으로 별도 물리적 노드에 저장 됩니다. 우리는 일반적으로 분산된 데이터베이스는이 2 말. 논리 배포 되어 물리적으로 분산, 그리고 연맹을 구성 하는 다양 한 서브 데이터베이스 시스템은 상대적으로 "자치", 그리고이 시스템의 서로 다른 데이터베이스, 다양 한 수용할 수 있기 때문에 이것은 또한 페더레이션된 배포 데이터베이스 그것은 더 큰 범위에서 데이터베이스의 통합에 적합 합니다.

분산된 데이터베이스는이 자세한 사용에서 더 복잡 한와 설명, 그냥 예를 들어 더 많은 사용자 분할 시스템, 전국 체인, 각 분기에 대 한 일반 디자인 자체 판매 및 재고 정보, 본사는 경우에 대 한 지금 분산된 데이터베이스는 직원, 공급 업체, 정보 및 다른 데이터베이스에 저장 해야 합니다. 지점 데이터베이스의이 유형은 완전히 일치 될 수 있습니다, 각 체인 스토어 데이터 저장 로컬, 그로 인하여 증가 충격 속도, 통신 비용 절감 및 전체 시스템을 붕괴를 유발 하지 않고 개별 사이트를 실패 하는 경우에 여러 복제본을 여러 사이트에서 데이터를 배포 되도록 많은 시스템 또한 불일치, 발생할 수 있습니다. 하지만 그는 또한과 같은 많은 문제, 제공: 데이터 일관성 문제, 원격 데이터 전송, 분산된 데이터베이스 시스템의 개발은 좀 더 복잡 한, 통신 비용의 감소의 구현 그냥 모두의 원리 이해, 특정 사용 방법의 자세한 소개를 하지 않습니다.

④ 최적화: 데이터베이스 조각화 구성

테이블은 이미 인덱스를 만든, 하지만 성능은 여전히 나쁘다, 조각 모음을 해야 하는 인덱스 조각 될 것입니다.

인덱스 조각 이란 무엇입니까?

과도 하 게 삽입, 수정, 및 삭제 테이블에, 때문에 인덱스 페이지는 조각, 그리고 인덱스를 스캔 하는 시간이 된다 더 이상 인덱스 조각화 되 면 및 심지어 인덱스 사용할 수 없습니다, 그래서 데이터 검색 작업 속도가 느려집니다.

인덱스 조각 발생 한 경우 어떻게 알 수 있습니까?

SQL Server 데이터베이스에서 인덱스 조각화는 DBCC SHOWCONTIG 또는 DBCC SHOWCONTIG (테이블 이름) 우리를 안내 하 여 초과 다시 확인 됩니다.

(너무 낮은) 스캔 밀도 통해 분석 결과 (너무 높은) 파편을 검색, 확인 여부 인덱스 재구성 필요 주로 보면 다음 두 가지:

검색 밀도 [http://www.aliyun.com/zixun/aggregation/16460.html 베스트 > 수: 실제]-검색 밀도 [최적: 실제 값]: DBCC Showcontig 가장 유용한 비율을 반환합니다. 이것은 최고의 가치와 실제 범위 값의 비율 이다. 백분율은 가능한 100%에 가까운 이어야 한다. 낮은 외부 조각을 나타냅니다.

논리 스캔 조각화 논리 검색 조각화: 정렬 되지 않은 페이지의 백분율. 비율 0%와 10% 사이 여야 하 고 높은 외부 조각을 나타냅니다.

해결 방법:

먼저, DBCC INDEXDEFRAG를 사용 하 여 인덱스 조각 조각 모음

두 번째 DBCC DBREINDEX를 사용 하 여 인덱스를 재구성 하는 것입니다.

Microsoft에는 두 호출 사이의 차이 다음과 같습니다.

DBCC indexdefrag 명령은 온라인 작업 이므로 인덱스는 명령이 실행 되 고 완료 된 작업의 손실 없이 작업을 해제할 수 있습니다 경우에 사용할 수 합니다. 이 방법의 단점은 없습니다 유효한 드롭/다시 create의 작동 데이터의 조직에서 클러스터형된 인덱스입니다.

클러스터형된 인덱스를 다시 만드는 데이터 페이지 채우고 있도록 데이터 다시 정렬 됩니다. 충만의 수준은 FILLFACTOR 옵션을 사용 하 여 구성할 수 있습니다. 이 방법의 단점은 드롭/재현 주기 동안 인덱스는 오프 라인 및 작업이 원자입니다. 만약 당신이 휴식 인덱스 생성, 인덱스 다시 작성 아니다. 다른 말로 하면, 좋은 결과 얻기 위해 인덱스를 다시 작성 하기로 결정 그래서 다시 인덱스를 사용 해야 합니다.

관련 문서

연락처

이 페이지의 내용은 인터넷에서 가져온 것이므로 Alibaba Cloud의 공식 의견이 아닙니다.이 페이지에서 언급 된 제품 및 서비스는 Alibaba Cloud와는 관련이 없으므로이 페이지의 내용이 골칫거리 인 경우 저희에게 알려주십시오. 우리는 5 일 근무일 이내에 이메일을 처리 할 것입니다.

커뮤니티에서 표절 사례를 발견한 경우 info-contact@alibabacloud.com 으로 관련 증거를 첨부하여 이메일을 보내주시기 바랍니다. 당사 직원이 영업일 기준 5일 내에 연락 드리도록 하겠습니다.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.