Data Virtuality Server はクエリを最適化するための幅広い可能性を持ち、3 種類の Optimization をサポートしています:MAT_TABLEMAT_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

ID of the RecommendedOptimization row

enable

Can take one of the following values:

  • TRUE: materialized data is used
  • FALSE: original data is used

materializeNow

If set to TRUE, the procedure transfers the data to the analytical storage immediately without creating a schedule for the appropriate job

uuid

UUID of the recommended optimization

The 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

stagesToKeep

Number of old stages to keep

daysToKeep

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

dwh_table

Target table in the data warehouse

source_table

Source table

cleanup_method

Can take one of the following values:

  • DROP: target table is dropped and recreated
  • DELETE: content of the target table is deleted before the copy is created

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

sourceTable

Source table

targetTable

Target table

cleanupMethod

Can take one of the following values:

  • DROP: target table is dropped and recreated
  • DELETE: content of the target table is deleted before the copy is created

description

Description of the job

uuid

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_AGGRrecoptIdから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)
The 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 がないことを確認する簡単なガイドを参照してください。