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 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.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を返します。
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')) aSYSADMIN.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)id or uuid must be specified.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)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)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)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 がないことを確認する簡単なガイドを参照してください。