문제

나는 백만 개가 넘는 기록으로 성장한 테이블이 있습니다 ... 오늘 (모두 유효)

속도를 높여야합니다 ... 테이블 파티션이 답이 될까요? 그렇다면 쿼리 구축에 도움을받을 수 있습니까?

테이블에는 4 개의 큰 값 키가 있으며 모두 기본 키 인덱스가 있고 userID의 인덱스 DESC가있는 다른 값은 최대 139입니다 (현재 10,000 명이 넘는 사용자가 있습니다).

모든 도움이나 방향에 감사드립니다 :)

도움이 되었습니까?

해결책

쿼리 및/또는 인덱스를 조정하면됩니다. 1 백만의 기록이 문제를 일으키지 않아야합니다. 나는 수 천만 레코드가있는 테이블을 가지고 있으며 매우 고성능을 유지할 수 있습니다. SQL Server Profiler 가이 것들에 꽤 도움이된다는 것을 알았습니다. SQL Server Management Studio (불행히도 Express 버전은 아님)에서 사용할 수 있습니다. 당신은 또한 할 수 있습니다 Query > Include Actual Execution Plan 쿼리 중에 시간이 소요되는 위치에 대한 다이어그램을 보려면.

다른 팁

파티셔닝에 대해 생각하기 전에 인덱스 및 쿼리 워크로드를 조사해야합니다. 많은 수의 인서트를 수행 한 경우 클러스터 된 인덱스가 조각화 될 수 있습니다.

SQL Server Express를 사용하고 있지만이 무료 도구를 사용하여 여전히 프로필을 수행 할 수 있습니다. Microsoft SQL Server 2005/2008 Express Edition의 프로파일 러

나는 다른 의견에 동의합니다. 합리적으로 작은 데이터베이스 (가장 큰 표 1mm 레코드)를 사용하면 쿼리가 최적화되고 나머지 코드가 데이터베이스를 중복 쿼리로 남용하지 않으면 데이터베이스의 모든 활동이 눈에 띄는로드를 제공 할 가능성은 낮습니다. 데이터베이스 쿼리와 나머지 코드 사이의 상호 작용에 대한 느낌을 얻을 수있는 좋은 기회입니다.

여기에서 SQL 테이블 파티셔닝에 대한 내 실험을 참조하십시오 [여기에서 [http://faiz.kera.la/2009/08/02/does-partitioning-improve-performance-for-sql-tables/. 이것이 당신에게 도움이되기를 바랍니다 ... 그리고 당신의 경우, 1m은 상당한 인물이 아닙니다. 파티션을하는 것보다 쿼리를 미세 조정해야 할 수도 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top