Data Virtuality Server はクエリを最適化するための幅広い可能性を持ち、3 種類の Optimization をサポートしています:MAT_TABLE
MAT_JOIN
の 3 種類の最適化をサポートしています。MAT_AGGR
詳細はOptimization Subsystemをご参照ください。
SYSADMIN.enableOptimization
このプロシージャはOptimization を可能にします:
SYSADMIN.enableOptimization(
IN
id biginteger,
IN
enable boolean
NOT
NULL
,
IN
materializeNow boolean
NOT
NULL
,
IN
uuid string)
以下のパラメータを取ります:
Parameter | Description |
---|---|
| ID of the RecommendedOptimization row |
| Can take one of the following values:
|
| If set to |
| UUID of the recommended optimization |
id
or uuid
must be specified.uuid
parameter in SYSADMIN.enableOptimization
is available since v4.4
SYSADMIN.cleanUpStaleMatTables
このプロシージャは、Analytical Storageから古くなったMaterialized Tableを削除するクリーナーを実行します:
SYSADMIN.cleanUpStaleMatTables(
IN
stagesToKeep
integer
,
IN
daysToKeep
integer
)
以下のパラメータを取ります:
Parameter | Description |
---|---|
| Number of old stages to keep |
| Number of days to keep |
どちらのパラメータも OPTIONS です。省略された場合、システムは最新のステージ以外を保持しません。
SYSADMIN.cleanOrphanMatTableEntities
このプロシージャは、Analytical Storage のマテリアライズドテーブルを物理的にDrop することなく、SYSADMIN.MaterializedTable
テーブルからSYSADMIN.RecommendedOptimizations
に推奨最適化が存在しないすべてのエントリを削除します。
SYSADMIN.cleanOrphanMatTableEntities()
SYSADMIN.copyOver
このプロシージャは、ソーステーブルからターゲットテーブルにデータをコピーします:
SYSADMIN.copyOver(
IN
dwh_table string,
IN
source_table string,
IN
cleanup_method string)
以下のパラメータを取ります:
Parameter | Description |
---|---|
| Target table in the data warehouse |
| Source table |
| Can take one of the following values:
|
SYSADMIN.createCopyOverSourceTableJob
このプロシージャは、ソーステーブルからターゲットテーブルにデータをコピーするスケジューラージョブを作成します。
SYSADMIN.createCopyOverSourceTableJob(
IN
sourceTable string
NOT
NULL
,
IN
targetTable string
NOT
NULL
,
IN
cleanupMethod string
NOT
NULL
,
IN
description string,
IN
uuid string,
OUT
jobid biginteger
NOT
NULL
RESULT)
以下のパラメータを取ります:
Parameter | Description |
---|---|
| Source table |
| Target table |
| Can take one of the following values:
|
| Description of the job |
| Custom UUID of the job to be created |
新しく作成されたジョブのjobId
を返します。
uuid
parameter in SYSADMIN.createCopyOverSourceTableJob
is available since v4.1
SYSADMIN.createOptimization
このプロシージャは、指定されたmatchDescriptor
またはSELECT
クエリを使用して Optimization を作成します:
SYSADMIN.createOptimization(
IN
matchDescriptorOrSelectQuery string
NOT
NULL
,
OUT
optimizationID biginteger
NOT
NULL
RESULT,
OUT
optimizationType string
NOT
NULL
)
Example
SELECT
*
FROM
table
(CALL SYSADMIN.createOptimization(
'test.test_a'
)) a
SYSADMIN.createOptimizationQuery
このプロシージャは、与えられたMAT_AGGR
recoptId
からSELECT
クエリを再作成します:
SYSADMIN.createOptimizationQuery(
IN
optimizationId biginteger
NOT
NULL
,
OUT
query string
NOT
NULL
)
SYSADMIN.deleteOptimization
このプロシージャでは、以下を削除します:
- 最適化そのもの
- すべての関連スケジュール
- Analytical Storageのすべての関連テーブル。
つまり、Optimizationの完全なクリーンアップを行います。
SYSADMIN.deleteOptimization(
IN
id biginteger,
IN
uuid string)
id
or uuid
must be specified.uuid parameter in SYSADMIN.deleteOptimization
is available since v4.4
Examples
1. すべての Optimization の削除
CALL SYSADMIN.deleteOptimization(-1)
2. idで最適化を1つだけ削除します:
CALL SYSADMIN.deleteOptimization(5)
3. uuid による最適化を 1 つだけ削除します:
CALL SYSADMIN.deleteOptimization(
'ddaa2a0c-c9a4-11ee-9776-00155de68115'
)
SYSADMIN.importOptimization
このプロシージャは Optimizations をインポートします(旧システムのように、まったく同じmatTablePrefix
などを再利用します)。重複が生じる可能性がありますのでご注意ください。
SYSADMIN.importOptimization(
IN
matchDescriptor string
NOT
NULL
,
IN
matTablePrefix string
NOT
NULL
,
IN
optType string
NOT
NULL
,
IN
enabled boolean
NOT
NULL
,
IN
frequency
integer
NOT
NULL
,
IN
lastUsed
timestamp
,
IN
lastMaterialized
timestamp
,
IN
dwhState string,
IN
dwhStateComment string,
IN
lastReplState string,
IN
lastReplStateComment string,
IN
sourceState string,
IN
sourceStateComment string,
IN
uuid string,
OUT
optimizationID biginteger
NOT
NULL
RESULT)
uuid
parameter in SYSADMIN.importOptimization
is available since v4.1
Example
CALL SYSADMIN.importOptimization(matchDescriptor =>
'"test_tables.test_a"'
,matTablePrefix =>
'mat_table_0'
,optType =>
'MAT_TABLE'
,enabled =>
false
,frequency => 1,lastUsed =>
'2014-04-04 06:05:00.373'
,lastMaterialized=>
'2014-04-04 06:08:16.096'
,dwhState =>
'OK'
,dwhStateComment=>
''
,lastReplState =>
'OK'
,lastReplStateComment =>
''
,sourceState =>
'OK'
,sourceStateComment =>
''
, uuid =>
'52cd677c-6696-11ee-8c99-0242ac120002'
) ;;
SYSADMIN.importMatTable
このプロシージャは、マテリアライズドテーブルをインポートします。重複が生じる可能性がありますのでご注意ください。
SYSADMIN.importMatTable(
IN
accessState string
NOT
NULL
,
IN
creationTime
timestamp
,
IN
lastModifiedTime
timestamp
,
IN
name
string
NOT
NULL
,
IN
recOptId biginteger
NOT
NULL
,
IN
matTableType string
NOT
NULL
,
IN
recOptUuid string,
OUT
id biginteger
NOT
NULL
RESULT)
recOptUuid
parameter in SYSADMIN.importMatTable
is available since v4.1
Example
CALL SYSADMIN.importMatTable(accessState =>
'READY'
, creationTime =>
'2014-04-04 07:00:44.007'
, lastModifiedTime =>
'2014-04-04 07:10:44.007'
,
name
=>
'mat_table_1_st0'
, recOptId => 2, matTableType =>
'MAT_TABLE'
) ;;
SYSADMIN.importRecOptSymbol
このプロシージャはrecOptSymbols
をインポートします(MAT_AGGR
推奨の Optimizations のみ)。重複を作成する可能性があることに注意してください。
SYSADMIN.importRecOptSymbol(
IN
aggrFunction string,
IN
alias string,
IN
symbol string,
IN
type string,
IN
recOptId biginteger,
IN
recOptUuid string,
OUT
recOptSymbolID biginteger
NOT
NULL
RESULT)
recOptUuid
parameter in SYSADMIN.importRecOptSymbol
is available since v4.1
Example
CALL SYSADMIN.importRecOptSymbol(aggrFunction =>
'COUNT'
, alias =>
'count_adventureworks_custo'
, symbol =>
'COUNT(adventureworks.customeraddress.AddressID)'
, type =>
'AGGR'
, recOptId => 2) ;;
SYSADMIN.setOptimizationFrequency
この設定では、エクスポートされた recOpt の頻度を設定または復元するための特別なパラメータ(頻度)を設定します。指定しない場合、インポートされたすべてのOptimizationはfrequency = 0となります。新しく生成された推奨 Optimization のすべての周波数は0
に設定されます。
SYSADMIN.setOptimizationFrequency(
IN
optimizationId biginteger
NOT
NULL
,
IN
frequency biginteger
NOT
NULL
)
SYSADMIN.setAllowCreateTempTables
非推奨
SYSADMIN.setAllowCreateTempTables
deprecated since v4.1
SYSADMIN.refreshOptimizations
このプロシージャは、すべての Materializations をチェックし、推奨される Optimizations を有効にします。マテリアライズドテーブルが見つからない場合、プロシージャはこれらのOptimization を(ビュー依存関係グラフに従って)適切な順序で再度マテリアライズします:
SYSADMIN.refreshOptimizations()
See Also
Find Enabled Recommended Optimizations Which Have No Scheduleスケジュールでカバーされていない Optimization がないことを確認する簡単なガイドを参照してください。