- 카테고리:
시스템 함수 (시스템 정보)
SYSTEM$ESTIMATE_SEARCH_OPTIMIZATION_COSTS¶
주어진 테이블에 검색 최적화 를 추가하고 검색 최적화를 위해 특정 열을 구성하는 데 필요한 예상 비용을 반환합니다.
중요
SYSTEM$ESTIMATE_SEARCH_OPTIMIZATION_COSTS 함수에서 반환하는 비용 추정치는 최선을 다해 예상한 수치입니다. 실제 실현 비용은 예상 비용과 최대 50%까지 다를 수 있습니다(또는 드물긴 하지만 몇 배나 차이가 날 수도 있음).
빌드 및 저장소 비용 추정치는 테이블에 있는 행의 하위 세트 샘플링을 기반으로 합니다.
유지 관리 비용 추정치는 테이블의 최근 생성, 삭제 및 업데이트 활동을 기반으로 합니다.
구문¶
SYSTEM$ESTIMATE_SEARCH_OPTIMIZATION_COSTS('<table_name>' [ , '<search_method_with_target>' ])
인자¶
필수:
table_name
검색 최적화 비용을 추정하려는 테이블입니다.
테이블 이름이 정규화되지 않은 경우(
db_name.schema_name.table_name
또는schema_name.table_name
형식) 함수는 세션의 현재 스키마에서 테이블을 찾습니다.전체 이름은 작은따옴표로 묶어야 합니다.
선택 사항:
search_method_with_target
ALTER TABLE … ADD SEARCH OPTIMIZATION 명령의 ON 절에서 지정할 수 있는 것과 유사한 열 구성 에 대한 검색 방법과 대상 을 지정합니다.
이 전체 인자는 작은따옴표로 묶어야 합니다. 이 문자열 내에서 필요한 경우 열 이름 주위에 큰따옴표를 사용합니다.
출력¶
이 함수는 아래에 설명된 속성이 있는 JSON 오브젝트를 반환합니다.
속성 |
설명 |
---|---|
|
테이블의 이름입니다. |
|
테이블 또는 그 내부의 열에 대해 검색 최적화가 활성화되어 있으면 |
|
테이블 또는 테이블의 열에 검색 최적화를 추가할 때 예상되는 비용을 설명하는 오브젝트 배열입니다. |
costPositions
배열의 각 오브젝트는 서로 다른 유형의 비용 추정치를 나타냅니다.
...
"costPositions" : [
{
"name" : "BuildCosts",
...
}, {
"name" : "StorageCosts",
...
}, {
"name" : "Benefit",
...
}, {
"name" : "MaintenanceCosts",
...
}
]
...
name
속성은 오브젝트가 나타내는 비용 유형을 식별합니다. name
은 다음 중 하나일 수 있습니다.
|
설명 |
---|---|
|
이 오브젝트는 테이블에 대한 검색 액세스 경로를 구축하는 데 예상되는 비용을 설명합니다. 검색 최적화가 테이블 또는 지정된 모든 열에 이미 추가된 경우, 이 오브젝트는 비용 정보를 포함하지 않습니다. |
|
이 오브젝트는 테이블에 대한 검색 액세스 경로에 필요한 예상 저장 공간(TB)을 설명합니다. |
|
이 오브젝트는 테이블에서 검색 최적화가 활성화되었을 때만 나타납니다. 지금은 정보가 포함되어 있지 않습니다. |
|
이 오브젝트는 행이 삽입, 삭제 또는 수정될 때 테이블에 대한 검색 액세스 경로를 유지 관리하는 데 예상되는 비용을 설명합니다. 테이블이 최근에 만들어진 경우에는 보고되는 비용 정보가 없습니다. |
costPositions
배열의 각 오브젝트는 다음 속성을 가질 수 있습니다.
속성 |
설명 |
---|---|
|
이 오브젝트가 나타내는 비용 정보의 유형을 식별하는 이름 입니다. |
|
다음 속성과 관련하여 예상 비용을 설명하는 오브젝트: |
value |
예상 비용 금액입니다. |
unit |
비용 측정 단위입니다(예: 컴퓨팅 비용의 경우 “크레딧”, 저장소 비용의 경우 “TB” 등). |
perTimeUnit |
유지 관리 비용의 경우, 예상 비용이 포함되는 시간 단위입니다(예: 월별 비용의 경우 |
|
여러 방법을 사용할 수 있는 경우, 비용을 추정하는 데 사용되는 방법입니다. |
|
예상 비용에 대한 추가 정보입니다. |
사용법 노트¶
searchOptimizationEnabled
속성은 테이블이나 테이블의 열에 검색 최적화가 활성화되었을 때true
입니다.빌드 비용의 경우, 이 함수는 지정된 테이블의 데이터 샘플에 대한 검색 액세스 경로 빌드를 기반으로 근사값을 반환합니다.
유지 관리 비용의 경우, 이 함수는 테이블에 대한 최근 변경 사항(시간 경과에 따른 바이트 변경 사항)을 기반으로 합니다.
이 함수를 호출하려면 웨어하우스를 사용 중이어야 합니다. 현재 사용 중인 웨어하우스가 없을 경우 이 함수는 다음 오류를 보고합니다.
No active warehouse selected in the current session. Select an active warehouse with the 'use warehouse' command.
웨어하우스 크기 는 이 함수의 성능에 아무런 영향도 미치지 않으므로, X-Small 웨어하우스를 사용할 수 있습니다.
함수가 웨어하우스를 사용하지 않으므로 이 함수를 위한 웨어하우스 사용량에 대한 비용이 청구됩니다.
이 함수는 완료하는 데 20초에서 10분 정도 걸릴 수 있습니다. 더 큰 웨어하우스를 사용한다고 해서 실행 속도가 더 빨라지는 것은 아닙니다.
예¶
다음 예는 검색 최적화를 테이블에 추가하는 데 소요되는 예상 비용을 보여줍니다.
SELECT SYSTEM$ESTIMATE_SEARCH_OPTIMIZATION_COSTS('table_without_search_opt') AS estimate_for_table_without_search_optimization;+---------------------------------------------------------------------------+ | ESTIMATE_FOR_TABLE_WITHOUT_SEARCH_OPTIMIZATION | |---------------------------------------------------------------------------| | { | | "tableName" : "TABLE_WITHOUT_SEARCH_OPT", | | "searchOptimizationEnabled" : false, | | "costPositions" : [ { | | "name" : "BuildCosts", | | "costs" : { | | "value" : 11.279, | | "unit" : "Credits" | | }, | | "computationMethod" : "Estimated", | | "comment" : "estimated via sampling" | | }, { | | "name" : "StorageCosts", | | "costs" : { | | "value" : 0.070493, | | "unit" : "TB" | | }, | | "computationMethod" : "Estimated", | | "comment" : "estimated via sampling" | | }, { | | "name" : "MaintenanceCosts", | | "costs" : { | | "value" : 30.296, | | "unit" : "Credits", | | "perTimeUnit" : "MONTH" | | }, | | "computationMethod" : "Estimated", | | "comment" : "Estimated from historic change rate over last ~11 days." | | } ] | | } | +---------------------------------------------------------------------------+
다음 예는 이미 검색 최적화가 활성화된 테이블에 대한 이 함수의 출력을 보여줍니다. 이 경우에는 빌드 비용 정보가 제공되지 않는다는 것을 알 수 있습니다. 또한 Benefit
속성이 포함됩니다(단, 정보는 포함하지 않음).
SELECT SYSTEM$ESTIMATE_SEARCH_OPTIMIZATION_COSTS('table_with_search_opt') AS estimate_for_table_with_search_optimization;+---------------------------------------------------------------------------+ | ESTIMATE_FOR_TABLE_WITH_SEARCH_OPTIMIZATION | |---------------------------------------------------------------------------| | { | | "tableName" : "TABLE_WITH_SEARCH_OPT", | | "searchOptimizationEnabled" : true, | | "costPositions" : [ { | | "name" : "BuildCosts", | | "computationMethod" : "NotAvailable", | | "comment" : "Search optimization is already enabled." | | }, { | | "name" : "StorageCosts", | | "costs" : { | | "value" : 0.052048, | | "unit" : "TB" | | }, | | "computationMethod" : "Measured" | | }, { | | "name" : "Benefit", | | "computationMethod" : "NotAvailable", | | "comment" : "Currently not supported." | | }, { | | "name" : "MaintenanceCosts", | | "costs" : { | | "value" : 30.248, | | "unit" : "Credits", | | "perTimeUnit" : "MONTH" | | }, | | "computationMethod" : "EstimatedUpperBound", | | "comment" : "Estimated from historic change rate over last ~11 days." | | } ] | | } | +---------------------------------------------------------------------------+
다음 예는 EQUALITY 검색 방법을 사용하여 테이블의 세 가지 특정 열에 대한 검색 최적화를 추정하는 이 함수의 출력을 보여줍니다(즉, 추정은 이러한 열에 대한 같음 비교에 대해서만 검색 최적화를 활성화하기 위한 것임). 테이블이나 테이블의 열에는 이미 어떤 유형의 검색 최적화도 활성화되어 있지 않습니다.
SELECT SYSTEM$ESTIMATE_SEARCH_OPTIMIZATION_COSTS('table_without_search_opt', 'EQUALITY(C1, C2, C3)') AS estimate_for_columns_without_search_optimization;+---------------------------------------------------------------------------+ | ESTIMATE_FOR_COLUMNS_WITHOUT_SEARCH_OPTIMIZATION | |---------------------------------------------------------------------------| | { | | "tableName" : "TABLE_WITHOUT_SEARCH_OPT", | | "searchOptimizationEnabled" : false, | | "costPositions" : [ { | | "name" : "BuildCosts", | | "costs" : { | | "value" : 10.527, | | "unit" : "Credits" | | }, | | "computationMethod" : "Estimated", | | "comment" : "estimated via sampling" | | }, { | | "name" : "StorageCosts", | | "costs" : { | | "value" : 0.040323, | | "unit" : "TB" | | }, | | "computationMethod" : "Estimated", | | "comment" : "estimated via sampling" | | }, { | | "name" : "MaintenanceCosts", | | "costs" : { | | "value" : 22.821, | | "unit" : "Credits", | | "perTimeUnit" : "MONTH" | | }, | | "computationMethod" : "Estimated", | | "comment" : "Estimated from historic change rate over last ~7 days." | | } ] | | } | +---------------------------------------------------------------------------+
지정된 열에 대해 검색 최적화가 이미 활성화된 테이블에서 유사한 쿼리가 실행되는 경우, 아직 활성화되지 않은 지정된 열에 검색 최적화를 추가하는 작업을 포함하는 빌드 비용 추정치가 출력에 포함됩니다. 이는 검색 최적화가 이미 활성화된 전체 테이블에서 검색 최적화를 추정하여 수행할 빌드 작업이 없으므로 빌드 비용을 추정하지 않았던 이전의 예제와는 다릅니다.
여기서 저장소 추정에는 검색 최적화가 이미 활성화된 열의 실제 검색 액세스 경로 크기만 포함됩니다.
유지 관리 추정에는 검색 최적화가 이미 활성화되었는지 여부에 관계없이 지정된 열이 전부 포함됩니다.
SELECT SYSTEM$ESTIMATE_SEARCH_OPTIMIZATION_COSTS('table_with_search_opt', 'EQUALITY(C1, C2, C3)') AS estimate_for_columns_with_search_optimization;+---------------------------------------------------------------------------+ | ESTIMATE_FOR_COLUMNS_WITH_SEARCH_OPTIMIZATION | |---------------------------------------------------------------------------| | { | | "tableName" : "TABLE_WITH_SEARCH_OPT", | | "searchOptimizationEnabled" : true, | | "costPositions" : [ { | | "name" : "BuildCosts", | | "costs" : { | | "value" : 8.331, | | "unit" : "Credits" | | }, | | "computationMethod" : "Estimated", | | "comment" : "estimated via sampling" | | }, { | | "name" : "StorageCosts", | | "costs" : { | | "value" : 0.040323, | | "unit" : "TB" | | }, | | "computationMethod" : "Estimated", | | "comment" : "estimated via sampling" | | }, { | | "name" : "Benefit", | | "computationMethod" : "NotAvailable", | | "comment" : "Currently not supported." | | }, { | | "name" : "MaintenanceCosts", | | "costs" : { | | "value" : 22.821, | | "unit" : "Credits", | | "perTimeUnit" : "MONTH" | | }, | | "computationMethod" : "Estimated", | | "comment" : "Estimated from historic change rate over last ~7 days." | | } ] | | } | +---------------------------------------------------------------------------+