SQL 채우기 비율 값을 어떻게 측정합니까?
-
08-06-2019 - |
문제
일반적으로 테이블에 인덱스를 생성할 때 일반적으로 인덱스가 무엇인지 추측합니다. Fill Factor
테이블이 어떻게 사용될 것인지(많은 읽기 또는 많은 쓰기)에 대한 추측을 기반으로 해야 합니다.
좀 더 정확한 것을 판단할 수 있는 좀 더 과학적인 방법이 있을까요? Fill Factor
값?
해결책
현실적인 작업의 큰 목록을 실행하고 다양한 작업에 대한 IO 대기열을 살펴볼 수 있습니다.
각 행의 크기, 쓰기 수와 읽기 수 등 이를 제어하는 변수가 많이 있습니다.
원래:높은 채우기 비율 = 더 빠른 읽기, 낮은 = 더 빠른 쓰기.
그러나 거의 모든 쓰기가 먼저 조회되어야 하는 행의 하위 집합에 대한 것이기 때문에 그렇게 간단하지는 않습니다.
예를 들어:채우기 비율을 10%로 설정하면 각 단일 행 업데이트는 페이지 분할이 거의 발생하지 않더라도 변경되는 행을 찾는 데 10배의 시간이 걸립니다.
일반적으로 채우기 비율은 70%(매우 높은 쓰기)에서 95%(매우 높은 읽기)까지 표시됩니다.
그것은 약간의 예술 형식입니다.
채우기 요소를 생각하는 좋은 방법은 주소록의 페이지와 같다는 것입니다. 주소를 더 빽빽하게 넣을수록 주소를 변경하기는 더 어려워지지만 책은 더 얇아집니다.제가 더 잘 설명했던 것 같아요 내 블로그.
다른 팁
나는 성능 향상을 추구한다면 스키마를 조정하고 쿼리를 최적화하며 좋은 인덱스 적용 범위를 보장하는 등 다른 곳에서 시간을 보내는 것이 훨씬 더 낫다고 생각하는 경향이 있습니다.채우기 비율은 다음과 같은 경우에만 걱정하면 되는 요소 중 하나입니다. 알다 시스템의 다른 모든 것이 최적이라는 것입니다.나는 그런 말을 할 수 있는 사람을 모른다.