저는 거대한 테이블 (수십억 개의 행)에서 파티셔닝을 구현할 것입니다.SQL Server 2008 R2에서 mod 분할을 구현하는 방법은 무엇입니까?
각 테이블 행은 특정 장치에 대해 일종의 상태를 가지고 있으며 이는 분 단위로 삽입됩니다. 따라서 장치 당 하루에 1440 (24 x 60) 행이있게됩니다. 각 장치에는 고유 한 ID (DeviceID)가 있습니다.
DeviceID MOD {TheNumberOfPartitionsThatIWant}를 사용하여 파티셔닝하는 것에 대해 생각했습니다. TheNumberOfPartitionsThatIWant가 250 인 것이 좋은 절충안이라고 생각합니다. 이 전략을 사용하면 장치를 파티션 전체에 균등하게 배포 할 수 있으며 특정 장치를 쿼리 할 때 쿼리 엔진은 모든 250 개의 파티션이 아니라 하나의 파티션 만 터치하면됩니다.
문제는이 열을 사용하여 파티션 스키마에서 테이블을 정의 할 수 있도록 행이 속한 파티션을 나타 내기 위해 내 테이블에 여분의 열을 추가해야한다는 것입니다. 이 간단한 열을 사용하는 대신 파티션 스키마에 DeviceID MOD 250을 제공하는 것이 훨씬 더 좋습니다. 거기에 대한 해결 방법이 있습니까?
이전에 [질문] (http://stackoverflow.com/questions/4249073/partitioning-for-query-performance-in-sql-server-2008)에 ** ** 2 **의 의견을 보았습니다. 드라이브. 2 개의 파티션을 사용합니다. 이러한 종류의 볼륨을 처리하려면 하드웨어에서 * 전혀 * 처리하지 마십시오. – gbn
그것은 단지 경험이었습니다. 최종 솔루션에서는 DAS 또는 SAN 구성을 사용합니다. – gsb
파티셔닝 전략의 목적은 무엇입니까? 쿼리에서 파티션 제거를 달성하거나, 빠른 데이터로드를 지원하거나, 이전 데이터를 선택적으로 보관할 수 있습니까? DeviceID를 기반으로 계산 된 열을 기준으로 250 개의 범위를 만들 수 있지만 모든 파티션이 매일 업데이트 될 수 있다는 점을 감안할 때 현명한 분할 전략이라고는 분명하지 않습니다. 또한, 테이블의 예상 크기는 MB/GB로 하루에 무엇입니까? – sqlvogel