나는 약 30 개의 테이블이있는 데이터베이스를 만들고 있는데, 각 테이블에는 수천만 개의 행이 있고 각 테이블에는 하나의 중요한 열과 기본 / 외래 키 열이 포함되어있어 무거운 상황에서 쿼리 효율을 극대화합니다. 업데이트 및 삽입 및 클러스터형 인덱스를 많이 사용합니다. 두 테이블은 가변 길이의 텍스트 데이터를 포함하고 그 중 하나는 수억 행을 포함하지만 나머지는 숫자 데이터 만 포함합니다.
사용 가능한 하드웨어 (약 64GB RAM, 매우 빠른 SSD 및 16 코어)에서 마지막으로 성능 저하를 없애고 싶을 때 각 테이블에 자체 파일이 있도록 허용하려고 생각했습니다. 2, 3, 4, 5 이상의 테이블에 합류하고 있습니다. 각 테이블은 항상 별도의 스레드를 사용하여 읽히고 각 파일의 구조는 테이블 내용과 밀접하게 정렬되므로 조각화를 최소화하고 더 빨리 만들 수 있습니다. SQL Server가 주어진 테이블의 내용에 추가 할 수 있습니다.
한 가지주의 할 점은 SQL Server 2008 R2 Web Edition 에 붙어 있습니다. 즉, 자동 수평 파티셔닝을 사용할 수 없으므로 성능이 향상됩니다.
테이블 당 하나의 파일을 사용하면 실제로 성능이 최대화됩니까, 아니면 중복되는 내장 SQL Server 엔진 특성을 간과합니까?
둘째, 테이블 당 하나의 파일을 사용하는 것이 유리하다면 왜 create table
특정 논리 파일이 아닌 파일 그룹에 테이블을 할당하는 옵션 만 제공합니까? 이를 위해서는 시나리오의 모든 파일에 대해 별도의 파일 그룹을 만들어야합니다. 이는 SQL Server가 내가 제안한 작업을 수행 할 때 얻을 수있는 이점을 상상하지 못하고 있음을 나타냅니다.