- 카테고리:
시스템 함수 (시스템 정보)
SYSTEM$ESTIMATE_AUTOMATIC_CLUSTERING_COSTS¶
테이블에 대한 자동 클러스터링 활성화 관련 예상 비용을 반환합니다. 이 함수는 다음을 수행하는 데 사용됩니다.
테이블을 처음으로 클러스터링하는 비용을 추정합니다.
테이블의 클러스터 키를 변경하는 비용을 추정합니다.
가능하면 지정된 키를 중심으로 테이블을 클러스터링한 후 테이블 유지 관리와 관련된 비용을 추정합니다. 때로는 향후 유지 관리 비용을 추정하기 위해 테이블에 더 많은 DML 기록이 필요할 수 있습니다.
중요
SYSTEM$ESTIMATE_AUTOMATIC_CLUSTERING_COSTS 함수에서 반환하는 비용 추정치는 최선을 다해 예상한 수치입니다. 실제 실현 비용은 예상 비용과 최대 100%까지 다를 수 있습니다(또는 드물긴 하지만 몇 배나 차이가 날 수도 있음).
구문¶
SYSTEM$ESTIMATE_AUTOMATIC_CLUSTERING_COSTS( '<table_name>' ,
[ '( <expr1> [ , <expr2> ... ] )' ] )
인자¶
- ‘
table_name
’ 클러스터링의 추정 비용을 반환하려는 테이블의 이름입니다.
- ‘
(expr1 [ , expr2 ... ])
’ 테이블에 대해 제안된 클러스터 키는 각 식이 테이블 열로 확인되는 곳입니다. 이 함수는 이러한 열을 클러스터 키로 사용하여 테이블을 클러스터링하는 비용을 추정합니다.
전달하는 열 이름이나 식이 하나뿐이더라도 괄호로 묶어야 합니다.
이 인자는 클러스터링 키가 없는 테이블에 필수적입니다. 인자가 생략되면 오류가 반환됩니다.
클러스터링 키가 있는 테이블의 경우 이 인자는 선택 사항입니다. 이 인자가 생략되면 함수는 테이블의 현재 클러스터링 키를 사용하여 테이블을 클러스터링하는 비용을 추정합니다.
반환¶
VARCHAR 형식의 값입니다. 반환된 문자열은 JSON 형식이며 다음 이름/값 페어를 포함합니다.
warning
조건이 비용 추정 정확도나 클러스터 키 선택의 효과에 영향을 미칠 수 있는지 여부를 나타냅니다.
reportTime
함수의 출력이 생성된 날짜입니다.
clusteringKey
클러스터 키를 구성하는 열입니다.
initial
지정된 클러스터 키를 중심으로 테이블을 클러스터링하는 데 필요한 예상 비용을 설명합니다. 테이블을 클러스터링한 후 유지 관리하기 위한 추정 비용은 포함되지 않습니다.
initial
JSON 오브젝트에는 다음 이름/값 페어가 포함됩니다.unit
초기 비용을 표현하는 단위를 나타냅니다.
value
unit
으로 표현된 테이블 클러스터링 비용을 나타냅니다.comment
클러스터링의 초기 비용을 해석합니다.
maintenance
테이블을 처음 클러스터링한 후, 제대로 클러스터링된 테이블을 유지하기 위한 예상 비용을 설명합니다. 테이블이 변경됨에 따라 다시 클러스터링되므로 이러한 예측은 최근의 DML 활동을 기반으로 합니다.
빈 오브젝트는 테이블이나 클러스터 키 열 중 하나가 새로운 것임을 나타냅니다. 즉, 이 함수는 유지 관리 비용을 추정하기 위해 DML 작업에 대한 더 많은 과거 데이터가 필요하다는 것을 의미합니다.
unit
비용을 표현하는 단위를 나타냅니다.
value
초기 클러스터링 후 테이블 유지 관리에 드는 비용을 나타내며, 일당
units
로 나타냅니다.comment
비용이 발생한 기간과 추정의 기준이 되는 기간을 포함합니다.
액세스 제어 요구 사항¶
비용을 추정하는 데 필요한 권한은 테이블을 읽고 클러스터 키를 변경하는 데 필요한 권한과 동일합니다. 다음과 같은 권한이 필요합니다.
테이블에 대한 SELECT 및 INSERT 권한, 또는 테이블에 대한 OWNERSHIP 권한.
상위 스키마 및 데이터베이스에 대한 USAGE 또는 OWNERSHIP 권한.
사용법 노트¶
SYSTEM$ESTIMATE_AUTOMATIC_CLUSTERING_COSTS 함수가 반환하는 비용 추정치는 테이블에서 마이크로 파티션의 하위 세트를 샘플링하고 클러스터링 실행 시간을 캡처하는 데 기반합니다. 샘플링된 특정 마이크로 파티션과 시스템 속도에 따라, 함수 실행 간의 비용 추정치는 다를 수 있습니다.
가능한 최선의 결과를 얻으려면 SYSTEM$ESTIMATE_AUTOMATIC_CLUSTERING_COSTS를 여러 번 실행하고 결과의 평균을 구하면 됩니다. 이 함수는 샘플 클러스터링 작업을 사용하고 실행 시간을 수집합니다. 제공되는 비용 추정치는 시스템 속도에 따라 변동될 수 있습니다. 함수를 여러 번 실행하고 결과의 평균을 구하면 더 정확한 비용 추정치를 얻을 수 있습니다.
유지 관리 비용 추정이 부정확한 가장 흔한 이유는 추정에 근거한 과거 DML 패턴이 미래의 DML 패턴과 일치하지 않았기 때문입니다.
예¶
테이블 myTable
의 클러스터 키로 열 tenantId
를 정의하는 데 관련된 추정 비용을 반환합니다.
SELECT SYSTEM$ESTIMATE_AUTOMATIC_CLUSTERING_COSTS('myTable', '(tenantId)');
{
"reportTime": "Fri, 12 Jul 2024 01:06:18 GMT",
"clusteringKey": "LINEAR(tenantId)",
"initial": {
"unit": "Credits",
"value": 98.197987412,
"comment": "Total upper bound of one time cost"
},
"maintenance": {
"unit": "Credits",
"value": 10.0,
"comment": "Daily maintenance cost estimate provided based on DML history from the
past seven days."
}
}