ジョブには目的別にさまざまな種類があります。このページでは、各タイプの概要を説明します。
Optimization Jobs
システムが最適化勧告を生成すると、システムは、SYSADMIN.RecommendedOptimizations
テーブルにエントリを保存します。1つまたは複数のジョブを推奨されるOptimization に関連付けることができます。これらのストアドプロシージャは、 Optimization Managementに記載されている適切なストアドプロシージャのいずれかを使用して作成できます。このセクションでは、Optimization Jobs の詳細について説明します。
SQL Jobs
SQL ジョブでは、任意のSQL スクリプトをスケジュールされたジョブとして実行することができます。SQL ジョブはこのストアドプロシージャを使用して作成できます:
SYSADMIN.createSQLJob(IN script string NOT NULL, IN description string, IN parallelRunsAllowed integer, IN retryCounter integer, IN retryDelay integer, IN runTimeout integer, IN jobName string, IN uuid string, OUT jobid biginteger NOT NULL RESULT)
このプロシージャは以下のパラメータを取ります:
Parameter | Description |
---|---|
| SQL script (only for the SQL job type); see below for more details |
| Job description (only for the SQL job type) |
| Number of parallel runs the job can have; If the number is reached, further starts of the particular job will be ignored. Default: |
| Number of retry attempts before the job is set to |
| Delay in seconds between the retry attempts |
| Individual job timeout in minutes. If no |
| Job's unique identifier |
| Custom UUID for the created job |
jobid
を返します。このパラメータは必要に応じてジョブのパラメータを変更するために使用できます。
uuid
parameter in SYSADMIN.createSQLJob
is available since v4.1
script Parameter
script
パラメータについて、いくつか注意点があります:
- NULLではないかもしれません;
- スケジュールされたジョブは、スクリプト自体に
BEGIN-END
ブロックが含まれていない場合でも、ステートメントの区切り文字としてセミコロン (';') を使用するスクリプトでのみ動作します! CData Virtuality Server は、実行時にすべてのSQL ジョブスクリプトをBEGIN
、END
; script
を変更するには、指定されたjobId
を使用して、次のストアドプロシージャを使用します。script
以外の値を変更するには、changeJobParameters()
を使用します。SYSADMIN.changeSQLJob(IN jobid biginteger NOT NULL, IN script string NOT NULL, IN description string, IN parallelRunsAllowed integer, IN retryCounter integer, IN retryDelay integer)
Creating SQL Jobs via the CData Virtuality Studio
CData Virtuality Studio でSQL ジョブを作成するには、SQL エディタのSQL 入力フィールドの上にある スクリプトのスケジュールボタンをクリックします。クエリの一部のみを選択した場合、選択された部分が使用されます:
Statistics Jobs
これらのジョブは、Optimization Subsystem が最適なQuery Plan を作成できるように、テーブルやビューに関する統計情報を収集します。統計ジョブはこのストアドプロシージャを使用して作成できます:
SYSADMIN.createGatherStatisticsJob(IN
"datasource"
string, IN gatherTableCardinalities
boolean
NOT NULL, IN gatherColumnCardinalities
boolean
NOT NULL, IN gatherNetworkStats
boolean
NOT NULL, IN excludeTables string, IN parallelRunsAllowed integer, IN retryCounter integer, IN retryDelay integer, IN runTimeout integer, IN jobName string, IN uuid string, OUT jobID biginteger NOT NULL RESULT)
Restarting Jobs When the Server is Up
中断されたジョブは、サーバー自体の起動時に自動的に再開されます。
デフォルトの動作は、サーバーの起動時にすべてのジョブを一度に再起動することですが、この動作を変更するためにシステムに渡すことができるプロパティがあります。
-DjobDelay
プロパティには以下の値を指定できます:
Value | Description |
---|---|
| Jobs will not be initialized at all |
| All jobs will be initialized at once; default |
| Minutes of initialization delay between the jobs; values greater than 0 |
-DjobDelay
プロパティは、初期化時に環境変数 JAVA_OPTS
を通じてシステムに渡すことができます。このプロパティを環境変数に追加する適切なファイルは、Windowsでは{dvserver}binstandalone.conf.props.batに、Linuxでは{dvserver}/bin/standalone.conf.propsにあります。
以下の例では、ジョブは互いに2分間隔で開始されます:
1. Windows:
set
"JAVA_OPTS=%JAVA_OPTS% -DjobDelay=2"
2. Linux:
JAVA_OPTS=
"$JAVA_OPTS -DjobDelay=2"