AWコマンドの構文は、実行するタスクによって異なります。
注意
AW文実行時におけるプログラム実行トリガー
アナリティック・ワークスペースにTRIGGER_AWというプログラムが存在する場合、そのワークスペースに対してAW文を実行すると、そのプログラムは自動的に実行されます。詳細は、「トリガー・プログラム」およびTRIGGER_AWプログラムを参照してください。
AW ATTACH文が実行されると、Oracle OLAPは、他のプログラムについても同様に調べます。詳細は、「アナリティック・ワークスペースをアタッチするときに実行されるプログラム」を参照してください。
AW文に関連するオプション
「アナリティック・ワークスペースのオプション」に、アナリティック・ワークスペースを作成またはアタッチする前にリセットできるオプションを示します。
EXPRESSワークスペース
OLAPオプションを使用してデータベースをインストールした場合、EXPRESS
ワークスペースは必ず読取り専用モードでセッションにアタッチされます。このワークスペースは、Oracle OLAPによる内部使用を目的としているため、ワークスペース・リスト内の先頭または唯一のワークスペースである場合でも、自動的に現行のワークスペースになることはありません。EXPRESS
ワークスペースを明示的にアタッチすることによって、現行のワークスペースにできますが、この方法はお薦めできません。EXPRESS
ワークスペースはデタッチできません。
AW ALIASLISTコマンドは、指定したアタッチ済ワークスペースに対して、1つ以上のワークスペースの別名を割り当てるか、または削除するコマンドです。ワークスペースを指定しなかった場合は、現行のワークスペースが処理の対象になります。ALIASは1つ以上の別名を割り当てることを示し、UNALIASは1つ以上の別名を削除することを示します。アナリティック・ワークスペースをデタッチすると、デタッチしたワークスペースのすべての別名は自動的に削除されます。
構文
AW ALIASLIST [workspace] {ALIAS|UNALIAS} alias1, alias2, ...
引数
アナリティック・ワークスペースの名前。使用するキーワードに応じて、アナリティック・ワークスペースの名前または別名のいずれかを指定できます。
指定したアタッチ済ワークスペースに対して、1つ以上のワークスペースの別名を割り当てます。ワークスペースが指定されていない場合は、現行のワークスペースに対して別名を割り当てます。ALIASは1つ以上の別名を割り当てることを示し、UNALIASは1つ以上の別名を削除することを示します。
アナリティック・ワークスペースをデタッチすると、デタッチしたワークスペースのすべての別名は自動的に削除されます。そのため、アタッチされていないワークスペースをアタッチするたびに、別名を再度割り当てる必要があります。
指定したアタッチ済ワークスペースに割り当てられた1つ以上のワークスペースの別名を削除します。ワークスペースが指定されていない場合は、現行のワークスペースに割り当てられた別名を削除します。
アナリティック・ワークスペースの別名。別名には次の制約があります。
長さは1文字以上、26文字以下で、データベースのキャラクタ・セットに含まれる文字、数字またはアンダースコアを使用します。
数字は先頭に使用できません。またDMLの予約語は使用できません(予約語は、RESERVEDを使用して確認できます)。
例
例9-48 別名の割当て
次の文によって、scott
というユーザーが作成したdemo
ワークスペースの別名としてsdemo
が割り当てられます。現行のユーザーはscott
ではないため、ワークスペースをフルネームで指定します。
AW ALIASLIST scott.demo ALIAS sdemo
次の文では、scott
という名前のユーザーによって、同じワークスペースの別名としてmydemo
が割り当てられます。
AW ALIASLIST demo ALIAS mydemo
AW ATTACHコマンドは、セッションにアナリティック・ワークスペースをアタッチするコマンドです。Oracle OLAPでは、指定したワークスペースが現行のワークスペースになります。以前にアタッチされたワークスペースはアタッチ済ワークスペースのリストの下方向に移動し、これによって新しい現行のワークスペースのための場所がリストの先頭に作成されます。要求したアナリティック・ワークスペースのキャッシュされたバージョンが存在する場合は、そのキャッシュされたバージョンが、アタッチ済ワークスペースのリストに戻されます。もちろん、これはキャッシュされたバージョンよりも要求したアナリティック・ワークスペースの現行バージョンが新しくない場合に限られます。
複数のワークスペースをアタッチすると、アタッチしたすべてのワークスペースのコードおよびデータはセッション中に使用できます。現行のワークスペースはワークスペース・リストの先頭に置かれ、セッションで利用するためにOracle OLAPによって保持されます。
注意: AW ATTACH文が実行されると、これによって他の複数のプログラムが起動する場合があります。詳細は、「アナリティック・ワークスペースをアタッチするときに実行されるプログラム」を参照してください。 |
構文
AW ATTACH workspace -
[ONATTACH [progname]|NOONATTACH] -
[RO {THAW]|RW|RWX|MULTI] [WAIT|NOWAIT] -
[AUTOGO [progname]|NOAUTOGO] -
[AFTER workspace|BEFORE workspace|LAST|FIRST] -
[PASSWORD password]
引数
アナリティック・ワークスペースの名前。まだアタッチしていないアナリティック・ワークスペースをATTACHキーワードを使用してアタッチする場合は、該当するワークスペース名を指定する必要があります。これは、AW ALIASLISTを使用して割り当てられている別名がないためです。ただし、すでにアタッチされたワークスペースにATTACHキーワードを使用する場合(ワークスペース・リストでの位置を変更するためなど)は、AW ALIASLISTを使用して別名を割り当てた上で、その別名を使用できます。
ONATTACHプログラムは、ワークスペースを次のように起動すると自動的に実行されます。
ONATTACHキーワードを指定するときにキーワードの後にプログラム名を指定しないと、Oracle OLAPでは、ONATTACHというプログラムがワークスペース内で検索され、存在した場合はそのプログラムが実行されます。この構文によって、プログラムが明確になります。ONATTACHを指定しない場合も同じ結果になります。
ONATTACHキーワードを指定するときにキーワードの後にプログラム名を指定すると、Oracle OLAPでは、その名前の付いたプログラムがワークスペース内で検索されます。該当するプログラムが存在する場合は、Oracle OLAPによって、そのプログラムが実行されます。ワークスペースにONATTACH
というプログラムが存在する場合も同じ結果になります。詳細は、「アナリティック・ワークスペースをアタッチするときに実行されるプログラム」を参照してください。
NOONATTACHを指定すると、ワークスペースにONATTACH
というプログラムが存在する場合でも、Oracle OLAPによってそのプログラムは実行されません。
prognameを指定しない場合は、アタッチされたワークスペースにAUTOGOというプログラムが存在すれば、そのプログラムがAUTOGO句によって自動的に実行されます。prognameを指定すると、アタッチしたプログラムに指定したプログラムがAUTOGO句によって自動的に実行されます。詳細は、「アナリティック・ワークスペースをアタッチするときに実行されるプログラム」を参照してください。
(デフォルト)NOAUTOGOを指定することによって、AUTOGOプログラムが存在しないことを明示します。この構文によって、プログラムが明確になります。AUTOGO prognameを指定しない場合も同じ結果になります。
(デフォルト)ワークスペースが読取り専用アクセス権モードでアタッチされることを指定します。ユーザーはワークスペースのデータに独自の変更を加えることによって、what-if分析を実行できますが、これらの変更をコミットすることはできません。
読取り専用でアタッチされているアナリティック・ワークスペースには、複数のセッションから同時にアクセスできます。読取り専用アタッチ・モードは、読取り/書込みアクセス権モードおよびマルチライタ・アクセス権モードと互換性があります。ユーザーは、他のユーザーが読取り/書込みアクセス権モードとマルチライタ・アクセス権モードのいずれかでアナリティック・ワークスペースをアタッチした場合、読取り専用モードでアナリティック・ワークスペースをアタッチできます。さらに、他のユーザーが読取り専用モードでアナリティック・ワークスペースをアタッチしている場合、ユーザーは読取り/書込み排他モードでアナリティック・ワークスペースをアタッチできません。読取り専用アクセスでアナリティック・ワークスペースをアタッチすると、PERMIT_READというプログラムがワークスペース内に存在する場合は、Oracle OLAPによってそのプログラムが実行されます。
NOTHAWキーワードを指定せずにAW FREEZEコマンドを使用して固定されたアナリティック・ワークスペースの現行ビューをOracle OLAPでアタッチするように指定します。
ワークスペースが読取り/書込みアクセス権モードでアタッチされることを指定します。読取り/書込みモードで同時にアナリティック・ワークスペースを開くことができるのは1ユーザーのみです。ユーザーはワークスペースに対する変更をすべてコミットするか、変更しないことをコミットする必要があります。
読取り/書込み非排他モードでアタッチされているアナリティック・ワークスペースには、複数のセッションから同時にアクセスできます。読取り/書込み非排他アタッチ・モードは、読取り専用アクセス権モードとのみ互換性があります。ユーザーは、他のユーザーが読取り専用モードでアナリティック・ワークスペースをアタッチした場合、読取り/書込みモードでアナリティック・ワークスペースをアタッチできます。ただし、他のユーザーがアナリティック・ワークスペースを読取り専用以外のモードでアタッチした場合は、読取り/書込みモードでアタッチできません。さらに、他のユーザーが読取り/書込み非排他モードでアナリティック・ワークスペースをアタッチしている場合、ユーザーは読取り専用以外のモードでアナリティック・ワークスペースをアタッチできません。読取り/書込みアクセスでアナリティック・ワークスペースをアタッチすると、PERMIT_WRITEというプログラムがワークスペース内に存在する場合は、Oracle OLAPによってそのプログラムが実行されます。
ワークスペースが読取り/書込み排他アクセス権モードでアタッチされることを指定します。読取り/書込み排他モードでアナリティック・ワークスペースを開くことができるのは一度に1ユーザーのみです。ユーザーはワークスペースに対する変更をすべてコミットするか、変更しないことをコミットする必要があります。
読取り/書込み排他モードでアタッチされているアナリティック・ワークスペースは、その他のセッションからはアクセスできません。読取り/書込み排他アタッチ・モードは、他のアクセス権モードとの互換性がありません。他のユーザーがいずれかのモードでアナリティック・ワークスペースをアタッチしている場合、ユーザーは読取り/書込み排他モードでアナリティック・ワークスペースをアタッチできません。さらに、他のユーザーが読取り/書込み排他モードでアナリティック・ワークスペースをアタッチしている場合、ユーザーはそれ以外のモードでアナリティック・ワークスペースをアタッチできません。読取り/書込みアクセスでアナリティック・ワークスペースをアタッチすると、PERMIT_WRITEというプログラムがワークスペース内に存在する場合は、Oracle OLAPによってそのプログラムが実行されます。
ワークスペースがマルチライタ・アクセス権モードでアタッチされることを指定します。マルチライタ・モードでアタッチされているアナリティック・ワークスペースには、複数のセッションから同時にアクセスできます。マルチライタ・モードでは、変数、リレーション、値セットおよびディメンションの個々に対してアタッチ・モード(読取り専用または読取り/書込み)を指定することでアナリティック・ワークスペースを制御しているので、ユーザーは同じアナリティック・ワークスペースを同時に変更できます。
マルチライタ・アタッチ・モードは、読取り専用モードおよびマルチライタ・モードとのみ互換性があります。他のユーザーが読取り/書込みモードまたは排他モードのいずれかでアナリティック・ワークスペースをアタッチしている場合、ユーザーはマルチライタ・モードでアナリティック・ワークスペースをアタッチできません。さらに、他のユーザーがマルチライタ・モードでアナリティック・ワークスペースをアタッチしている場合、ユーザーは読取り/書込みモードまたは排他モードでアナリティック・ワークスペースをアタッチできません。
読取り/書込み排他アクセス権モードで使用するアナリティック・ワークスペースへのアクセスを要求した場合、または読取り/書込み非排他アクセス権モードですでに使用しているアナリティック・ワークスペースへの読取り/書込みアクセスを要求した場合、Oracle OLAPがアナリティック・ワークスペースへのアクセスが可能になるまで待機するかどうかを指定します。NOWAIT(デフォルト)を指定すると、Oracle OLAPはワークスペースが使用できないことを示すエラー・メッセージを生成します。WAITを指定すると、Oracle OLAPはワークスペースにアクセスできるようになるまで待機します。アクセスするまでOracle OLAPが待機する秒数は、Oracle OLAPのAWWAITTIMEオプションによって異なります。
(デフォルト)アタッチしているワークスペースをワークスペース・リスト内の現行のワークスペースにします。
対象のワークスペースを、ワークスペース・リストにある現行のワークスペースの後からEXPRESS
ワークスペースの前までの間に置きます。アタッチされている他のワークスペースがEXPRESS
ワークスペースの前に存在する場合、指定したワークスペースはその後にアタッチされます。EXPRESS
ワークスペースの前にワークスペースが存在しない場合、LASTを指定すると指定したワークスペースが現行のワークスペースになります。LASTでは、EXPRESS
ワークスペースの後のワークスペースは無視されます。
新規にアタッチされたワークスペースのワークスペース・リストにおける位置を、すでにアタッチされているアナリティック・ワークスペースを基準にして指定できます。EXPRESS
ワークスペースの後にアナリティック・ワークスペースをアタッチする場合は、LASTではなくAFTERを使用します。BEFOREを指定してワークスペースを先頭に置くと、そのワークスペースが現行のワークスペースになります。
プログラム内に指定されているプログラム名またはオブジェクト名がOracle OLAPによって検索される場合、ワークスペースの検索順序は、ワークスペース・リストの順序によって決まります。
アタッチされるワークスペースへのアクセス権を付与または拒否するために、起動プログラムで確認されるパスワードを指定します。「起動プログラム」を参照してください。
注意
アナリティック・ワークスペースをアタッチするときに実行されるプログラム
アナリティック・ワークスペースをアタッチすると、Oracle OLAPでは、次の順序で各プログラムが検索され、実行されます(存在する場合)。
権限プログラム。Oracle OLAPによって検索され実行されるプログラムは、AW ATTACH文に指定したアタッチ・モードによって異なります。
読取り専用モードでアナリティック・ワークスペースのアタッチを要求すると、Oracle OLAPはPERMIT_READというプログラムを確認します。
マルチライタ・モードまたは読取り/書込みモードでアナリティック・ワークスペースのアタッチを要求すると、Oracle OLAPはPERMIT_WRITEというプログラムを確認します。
ONATTACHプログラム。次のいずれかの状況でAW ATTACH文を使用してアナリティック・ワークスペースをアタッチしたときにOracle OLAPによって検索および実行されるプログラム。
ONATTACHというプログラムを含むアナリティック・ワークスペースをアタッチし、かつAW文にNOONATTACHキーワードを指定しなかった場合、またはAW文にプログラム名を指定しないONATTACH句を記述した場合は、ONATTACHプログラムが実行されます。
プログラム名を指定するONATTACH句をAW文に含めると、Oracle OLAPは指定した名前のプログラムをワークスペース内で検索します。このプログラムが存在する場合は、Oracle OLAPによって実行されます。
AUTOGOプログラム。AUTOGO句を指定したAW ATTACH文を使用してアナリティック・ワークスペースをアタッチしたときにOracle OLAPによって検索および実行されるプログラム。
TRIGGER_AWプログラム。AWコマンドを実行するとOracle OLAPが名前で確認する作成したトリガー・プログラム。
アタッチ済ワークスペースでのATTACHの使用
AW ATTACH workspace文を使用してアタッチ済ワークスペースを再アタッチした場合は、Oracle OLAPはワークスペースの新しいコピーを作業メモリーに移動しません。そのかわりに、Oracle OLAPでは次のアクションが実行されます。
対象のワークスペースが現行のワークスペースになります。
AUTOGOキーワードを指定している場合は、AUTOGOプログラムが実行されます。
ただし、セッション中にデータを変更した場合は、アクティブ・ワークスペースを再アタッチしても変更内容は破棄されません。さらに、ワークスペースの現行の別名は変更されません。
マルチライタ・モードでアタッチされたアナリティック・ワークスペースの管理
マルチライタ・モードのオブジェクトの管理には、次のコマンドを使用します。
ACQUIRE: 変更内容を更新してコミットできるように、指定のオブジェクトを取得および再同期化(オプション)します。
RELEASE: 指定した変数、リレーション、値セットまたはディメンションのアクセス権モードを読取り/書込み(取得)アクセスから読取り専用アクセスに変更します。
RESYNC: 指定された読取り専用オブジェクトに対するプライベートな変更を削除し、表示可能な最新の世代のデータを取得します。
REVERT: 指定したオブジェクトについて、最後に更新、再同期化(RESYNC文を使用)、またはACQUIREのRESYNC句で取得されてから行われたすべての変更、あるいはアナリティック・ワークスペースがアタッチされてから行われたすべての変更を削除します。
次の点に注意してください。
読取り/書込みモードでオブジェクトを取得できるのは一度に1ユーザーのみです。オブジェクトは、最初に読取り専用モードで取得した後、別のユーザーが読取り専用モードで同じオブジェクトを取得していなければ、そのオブジェクトを先に解放することなく読取り/書込みモードで取得できます。ただし、他のユーザーが読取り専用モードでオブジェクトを取得している場合、そのユーザーがオブジェクトを解放しないかぎり、同じオブジェクトを読取り/書込みモードで取得することはできません。指定したオブジェクトが他のユーザーにより取得された場合か、指定したオブジェクトの読取り専用世代がそのオブジェクトの最新の世代ではない場合、取得が失敗します。
同時にコンポジット・ディメンションを共有しているすべての変数、値セットおよびリレーションを再同期化する必要があります。
オブジェクトを再同期化する場合、一部のオブジェクトのみを新しい世代にプロモートすることによって、データの論理的一貫性が失われないように、異なるオブジェクト間の論理的関係に留意する必要があります。
コンポジット・ディメンションを共有するオブジェクトは別々に再同期化できます。ただし、これらの再同期化されていないオブジェクトはすべて、変更されていないか取得済である必要があります。
ディメンションのいずれかがすでに取得および変更された場合は、変数を更新できません。
ディメンションをメンテナンスするには、先に取得する必要があります。
ディメンションは、解放されると、自動的に回復されます。
更新済のオブジェクトを解放しても、そのトランザクションをコミットまたはロールバックするまで、他のユーザーはそのオブジェクトを取得できません。what-if変更をさらに進め、後で取得済のすべての変数を更新する場合には、更新済オブジェクトをコミット前に解放すると便利な場合があります。
ディメンション値を追加してからディメンションを元に戻すと、そのディメンションによってディメンション化された変数の領域割当てが最適ではなくなる場合があるためお薦めしません。
メンテナンス済の取得済ディメンションによって取得済変数がディメンション化されている場合、そのディメンションを更新または解放するまでその変数を更新できません。
ディメンション値は削除できません。
固定されたアナリティック・ワークスペースのアタッチ
アナリティック・ワークスペースをいったん固定すると、THAWキーワードを指定して現行ビューがアタッチされるように要求しないかぎり、アナリティック・ワークスペースをアタッチした場合に、そのワークスペースの固定された世代がアタッチされます。
現行ビューをアタッチする際、中間のコミットで複数手順の作成がある場合、アナリティック・ワークスペースの状態が一貫性を保てない場合があります。たとえば、アナリティック・ワークスペースに2つの変数actual
およびbudget
があるとします。また、actual
変数を設定して、UPDATEおよびCOMMITコマンドを発行したとします。この時点で、actual
にのみデータが存在することになります。
読取りマルチライタ・モードで固定されたアナリティック・ワークスペースをアタッチする際、マルチライタのコマンド(RESYNCおよびACQUIRE)を使用すると、AW FREEZEにNOTHAWキーワードを指定しているかどうかに関係なく、最新バージョンのデータを取得できます。
ワークスペース名と別名の競合
スキーマに存在するアナリティック・ワークスペースは、名前が割り当てた別名と同じである場合にはアタッチできません。同様に、スキーマに存在するアタッチ済ワークスペースの名前と重複する別名を割り当てることはできません。さらに、2つのアタッチ済ワークスペースに同じ別名を割り当てることはできません。
AW DELETE文では、アタッチされていないアナリティック・ワークスペースに、割り当てた別名と同じ名前を指定すると、その名前が別名と解釈され、エラーが通知されます。
例
例9-49 起動プログラム
次のような定義を持つPERMIT_READ
、PERMIT_WRITE
、ONATTACH
、MYATTACH
およびAUTOGO
という5つのプログラムがあるawtest
というアナリティック・ワークスペースを作成したとします。
DEFINE PERMIT_READ PROGRAM BOOLEAN PROGRAM SHOW 'permit_read program executing' AW LIST RETURN YES END DEFINE PERMIT_WRITE PROGRAM BOOLEAN PROGRAM SHOW 'permit_write program executing' AW LIST RETURN YES END DEFINE ONATTACH PROGRAM BOOLEAN PROGRAM SHOW 'onattach program executing' AW LIST RETURN YES END DEFINE MYATTACH PROGRAM BOOLEAN PROGRAM SHOW 'myattach program executing' AW LIST RETURN YES END DEFINE AUTOGO PROGRAM PROGRAM SHOW 'autogo program executing' AW LIST END
awtest
をアタッチするときに実行されるプログラムは、次に示すように、AW ATTACH文に指定したアタッチ・モードおよびキーワードによって異なります。
次の文を使用して読取り/書込みモードでawtest
をアタッチした場合
AW DETACH awtest AW ATTACH awtest RW
最初にPERMIT_WRITE
プログラムが実行され、次にONATTACH
プログラムが実行されます。
次の文を使用して読取り専用モードでawtest
をアタッチした場合
AW DETACH axuserwtest AW ATTACH awtest NOONATTACH RO
PERMIT_READ
プログラムのみが実行されます。
次の文を使用して読取り専用モードでawtest
をアタッチした場合
AW DETACH awtest AW ATTACH awtest RO
最初にPERMIT_READ
プログラムが実行され、次にONATTACH
プログラムが実行されます。
次の文を使用して読取り専用モードでawtest
をアタッチした場合
AW DETACH awtest AW ATTACH awtest ONATTACH myattach RO
最初にPERMIT_READ
プログラムが実行され、次にMYATTACH
プログラムが実行されます。
次の文を使用してマルチライタ・モードでawtest
をアタッチした場合
AW DETACH awtest AW ATTACH awtest MULTI
最初にPERMIT_WRITE
プログラムが実行され、次にONATTACH
プログラムが実行されます。
次の文を使用して読取り専用モードでawtest
をアタッチした場合
AW DETACH awtest AW ATTACH awtest AUTOGO
最初にPERMIT_WRITE
プログラムが実行されます。次に、ONATTACH
プログラムが実行されます。最後に、AUTOGO
プログラムが実行されます。
例9-50 ONATTACHプログラムによるアナリティック・ワークスペースのアタッチ
売上データのワークスペースとして、expenses
とrevenue
の2つがあるとします。analysis
という3番目のワークスペースがあり、ここには、データを分析するためのプログラムが含まれています。analysis
ワークスペースには、他の2つのワークスペースをアタッチするための次のようなONATTACH
プログラムが含まれています。
DEFINE onattach PROGRAM PROGRAM AW ATTACH expenses RW AFTER analysis AW ATTACH revenues RW AFTER analysis END
ONATTACH
プログラムを実行するには、次の文によってanalysis
ワークスペースをアタッチします。
AW ATTACH analysis
AW LIST文を発行すると、3つのアナリティック・ワークスペースすべてがアタッチされたことが、次の出力によって確認できます。
ANALYSIS R/W CHANGED XUSER.ANALYSIS REVENUE R/W UNCHANGED XUSER.REVENUES EXPENSES R/W UNCHANGED XUSER.EXPENSES EXPRESS R/O UNCHANGED SYS.EXPRESS
AW CREATEコマンドは、新規のワークスペースを作成し、セッションにおける現行のワークスペースにするコマンドです。
Oracle OLAPでは、アナリティック・ワークスペースを作成するための手順の一部として、COMMITが自動的に実行されます。以前にアタッチされたワークスペースはアタッチ済ワークスペースのリストの下方向に移動し、これによって新規のワークスペースのための場所がリストの先頭に作成されます。
また、現行のアナリティック・ワークスペースにおいて、別のアナリティック・ワークスペースが作成される場合、TRIGGER_AWという名前のプログラムが存在すれば、そのTRIGGER_AWプログラムが実行されます。
構文
AW CREATE workspace [position] [UNPARTITIONED|PARTITIONS n] -
[SEGMENTSIZE n [K, M, or G]] [TABLESPACE tblspname]
ワークスペース・リストでのワークスペースの位置を指定する場合、positionは次のいずれかの値になります(FIRSTがデフォルトです)。
引数
アナリティック・ワークスペースの名前。ワークスペースの名前には次の制約があります。
長さは1文字以上、26文字以下で、データベースのキャラクタ・セットに含まれる文字、数字またはアンダースコアを使用します。
数字は先頭に使用できません。またDMLの予約語は使用できません(予約語は、RESERVEDを使用して確認できます)。
(デフォルト)アタッチしているワークスペースが現行のワークスペースになります。
対象のワークスペースを、現行のワークスペースの後からEXPRESS
ワークスペースの前までの間に置きます。アタッチされている他のワークスペースがEXPRESS
ワークスペースの前に存在する場合、指定したワークスペースはその後にアタッチされます。EXPRESS
ワークスペースの前にワークスペースが存在しない場合、LASTを指定すると指定したワークスペースが現行のワークスペースになります。LASTでは、EXPRESS
ワークスペースの後のワークスペースは無視されます。
新規にアタッチされたワークスペースの位置を、すでにアタッチされているアナリティック・ワークスペースを基準にして指定します。EXPRESS
ワークスペースの後にアナリティック・ワークスペースをアタッチする場合は、LASTではなくAFTERを使用します。BEFOREを指定してワークスペースを先頭に置くと、そのワークスペースが現行のワークスペースになります。
プログラム内に指定されているプログラム名またはオブジェクト名がOracle OLAPによって検索される場合、ワークスペースの検索順序は、ワークスペース・リストの順序によって決まります。
アナリティック・ワークスペースであるリレーショナル表がパーティション化された表ではないことを指定します。
アナリティック・ワークスペースであるリレーショナル表が、n個のパーティションを持つパーティション化されたハッシュ表であることを指定します。nの値として0(ゼロ)を指定した場合は、UNPARTITIONEDを指定した場合と同じ結果になります。nのデフォルト値は8です。
この引数をCREATEキーワードで使用すると、作成するワークスペースの各セグメントの最大サイズが設定されます。K
、M
、G
のいずれも指定しない場合、nに対して指定する値はバイトとして解釈されます。値nの後にK
、M
、G
のいずれかを指定すると、この値はそれぞれKB、MB、GBとして解釈されます。
アナリティック・ワークスペースが作成されるOracle Database表領域の名前を指定します。
ヒント: オラクル社では、このために用意された表領域にワークスペースを作成する場合、TABLESPACE引数を使用することをお薦めします。使用する表領域については、DBAに問い合せてください。 |
注意
アナリティック・ワークスペースのアクセス権
アナリティック・ワークスペースに対して追加可能なセキュリティには、次のようないくつかのレベルがあります。
SQL GRANT
文を使用するリレーショナル表レベル。
別々のアタッチ・モードと起動プログラムを使用したアナリティック・ワークスペース・レベルおよびワークスペース・オブジェクト・レベル。AW ATTACHコマンドおよび「起動プログラム」を参照してください。
例
AW DELETEコマンドは、デタッチされたアナリティック・ワークスペースをデータベースから削除するためのコマンドです。Oracle OLAPでは、アナリティック・ワークスペースを削除するための手順の一部としてCOMMITが自動的に実行されることに注意してください。DELETEキーワードは、ワークスペースをアタッチしているユーザーがいないときにのみ正常に実行されます。
注意: また、現行のアナリティック・ワークスペースにおいて、別のアナリティック・ワークスペースが削除される場合、TRIGGER_AWという名前のプログラムが存在すれば、そのTRIGGER_AWプログラムが実行されます。 |
構文
AW DELETE workspace
引数
アナリティック・ワークスペースの名前。名前を指定する必要があります。別名は指定できません。
注意
アタッチされていないワークスペースの削除
アタッチされていないワークスペースの名前が割り当てられた別名と同じ場合、このワークスペースを削除しようとすると、Oracle OLAPは、この名前を別名と解釈し、エラーを通知します。
例
AW DETACHコマンドは、ワークスペース・リストからアナリティック・ワークスペースを削除するコマンドです。先頭のワークスペースを削除すると、2番目のワークスペースが現行のワークスペースになります(そのワークスペースがEXPRESS
ワークスペースの場合は除く)。アナリティック・ワークスペースをデタッチすると、UPDATEが発行される前に変更された内容はデータベースで保持され、次のCOMMITによって永続化されます。UPDATEの発行後に変更が行われた場合、その内容は廃棄されます。
注意: アナリティック・ワークスペースにTRIGGER_AWというプログラムが存在する場合、AW DETACH文を実行すると、そのプログラムが自動的に実行されます。 |
構文
AW DETACH [CACHE|NOCACHE] workspace
引数
アタッチ以降、アナリティック・ワークスペースが変更されていない場合、そのアナリティック・ワークスペースをキャッシュするよう指定します。(デフォルト)
アタッチ以降、アナリティック・ワークスペースが変更されていない場合でも、そのアナリティック・ワークスペースをキャッシュしないよう指定します。
アナリティック・ワークスペースの名前。使用するキーワードに応じて、アナリティック・ワークスペースの名前または別名のいずれかを指定できます。
注意
アナリティック・ワークスペースが変更されているかどうかの判断
次の文は、アタッチ以降、アナリティック・ワークスペースが変更されているかどうかを示します。
キャッシュ・サイズ
デフォルトで、キャッシュされたアナリティック・ワークスペースのリストは2つです。つまり、キャッシュ・リストに一度に含まれるアナリティック・ワークスペースはデフォルトで2つのみで、新しいワークスペースをキャッシュ・リストに追加すると、前のワークスペースが削除されます。たとえば、mywk1
、mywk2
の順序で、この2つのアナリティック・ワークスペースをデタッチしたとします。ここで、mywk3
にAW DETACH CACHEコマンドを発行します。すると、キャッシュおよびキャッシュ・リストからmywk1
が削除され、mywk3
がキャッシュされて、キャッシュ・リストのmywk2
の後に追加されます。
注意: メモリー競合が著しい場合、Oracle OLAPではキャッシュを空にしてメモリーを解放することがあります。 |
キャッシュ・サイズは、イベント番号37372を使用して変更できます。ここで、levelは、保持するアナリティック・ワークスペースの数です。キャッシュを完全に無効にするには、levelに1024を指定します。
アナリティック・ワークスペースをデタッチするときに実行されるプログラム
アナリティック・ワークスペースがデタッチされると、次のプログラムが実行されます。
デタッチするアナリティック・ワークスペース内にONDETACHという名前のプログラムが存在する場合は、そのONDETACHプログラムが実行されます。
現行のアナリティック・ワークスペースにおいて、別のアナリティック・ワークスペースがデタッチされる場合、TRIGGER_AWという名前のプログラムが存在すれば、そのTRIGGER_AWプログラムが実行されます。
例
AW FREEZEコマンドは、現行トランザクションがある場合、そのトランザクションをコミットし、現在のアナリティック・ワークスペースが、そのワークスペースのデフォルトのアタッチ・バージョンであることを指定するフラグを設定するコマンドです。このコマンドの実行後、読取り専用モードまたは読取りマルチライタ・モードでこのワークスペースをアタッチする要求を行うと、このフラグ付き世代のアナリティック・ワークスペースがOracle OLAPによってアタッチされます。
注意: このコマンドを実行するには、いずれかの書込みモードでアナリティック・ワークスペースにアタッチされている必要があります。 |
構文
AW FREEZE [NOTHAW]
引数
後でワークスペースをアタッチする際に、AW ATTACHでTHAWキーワードを指定できないように指定します。
注意: アナリティック・ワークスペースをいったん固定すると、AW ATTACHコマンドでTHAWキーワードを指定しないかぎり、読取りモードでアナリティック・ワークスペースをアタッチした場合に、固定された世代のアナリティック・ワークスペースがアタッチされます。 |
注意
アナリティック・ワークスペースの固定
アナリティック・ワークスペースを固定する際は、次の点に注意してください。
一度に固定できるアナリティック・ワークスペースの世代は1つのみです。
現在固定されているアナリティック・ワークスペースを再度固定するには、最初にAW THAWコマンドを使用し、その固定を解除する必要があります。
AW LISTコマンドは、アクティブ・ワークスペースのリストを、その更新ステータスとともに現行の出力ファイルに送信するコマンドです。
構文
AW LIST
注意
AW LISTによって生成される出力
現行のワークスペースが存在しない場合を除き、リスト内の最初のワークスペースが現行のワークスペースです。更新ステータスであるCHANGEDまたはUNCHANGEDの意味は、ワークスペースが読取り/書込みアクセスまたは読取り専用アクセスのどちらかでアタッチされているか、ワークスペースが他のユーザーと共有されているかどうかによって異なります。更新ステータスは、AW LISTによって次のように表示されます。
読取り/書込みモードでの非共有ワークスペース: ワークスペースのアタッチ以降または前回の更新以降に変更を行った場合、更新ステータスはCHANGEDになります。
読取り専用モードでの非共有ワークスペース: ワークスペースは更新できないため、更新ステータスは常にUNCHANGEDになります。
読取り/書込みモードでの共有ワークスペース: ワークスペースのアタッチ以降または前回の更新以降に変更を行った場合、更新ステータスはCHANGEDになります。読取り/書込みモードでの非共有ワークスペースの場合と同じです。
読取り専用モードでの共有ワークスペース: 最後にアクセスした後に他のユーザーが更新した場合、更新ステータスはCHANGEDになります。新規のオブジェクトまたはデータにアクセスするには、他のユーザーが自分の変更をコミットした後にワークスペースをデタッチし、再アタッチする必要があります。ワークスペースをアタッチしたままにしているかぎり、ワークスペース・ビューは変更されません。
現行のワークスペース
現行のワークスペースの名前は、ワークスペース・リストの先頭にあり、AW(NAME)ファンクションによって返された名前です(詳細は、AWファンクションを参照)。NAMEディメンションに存在するのは、現行のワークスペースのオブジェクトのみです。AWDESCRIBEやLISTBYなどのプログラムは、現行のワークスペースに存在するオブジェクトのみを表示します。アナリティック・ワークスペースがアクティブではあるが現行ではない場合に、ワークスペースのデータの変更と更新、ワークスペースのプログラムの編集と実行、およびワークスペースのオブジェクトの変更を実行できます。
例
OLAP Worksheetを使用してOracle OLAPに接続した直後だとします。AW LIST
文を発行すると、EXPRESS
がアタッチされている唯一のアナリティック・ワークスペースであることを示します。
AW LIST EXPRESS R/O UNCHANGED SYS.EXPRESS
ここで、新規のアナリティック・ワークスペースを作成し、別のAW LIST
文を発行します。EXPRESS
アナリティック・ワークスペースと新規に作成したアナリティック・ワークスペースが両方ともアタッチされていることがわかります。
AW CREATE myaw AW LIST MYAW R/W UNCHANGED MYNAME.MYAW EXPRESS R/O UNCHANGED SYS.EXPRESS
AW PURGE CACHEコマンドは、現在キャッシュ内にあるすべてのアナリティック・ワークスペースをデタッチするコマンドです。
構文
AW PURGE CACHE
AW ROLLBACK TO FREEZEは、直近のAW FREEZEコマンド実行により作成されたアナリティック・ワークスペースを現行のワークスペースにするためのコマンドです。
構文
AW ROLLBACK TO FREEZE
AW SEGMENTSIZEコマンドは、複数のセグメントに対してアナリティック・ワークスペースを設定するコマンドです。
構文
AW SEGMENTSIZE n [K, M, or G] [workspace]
引数
アナリティック・ワークスペースの名前。使用するキーワードに応じて、アナリティック・ワークスペースの名前または別名のいずれかを指定できます。
指定したワークスペースに対して各セグメントの最大サイズを設定します。ワークスペースが指定されていない場合は、現行のワークスペースが対象になります。
現行のワークスペースがすでに複数のセグメントを持っている場合、SEGMENTSIZEの設定は最新のセグメントにのみ反映され、それより前のセグメントには反映されません。前のセグメントは、各セグメントの作成時にSEGMENTSIZEの設定で決定された様々なサイズになる場合があります。K
、M
、G
のいずれも指定しない場合、nに対して指定する値はバイトとして解釈されます。値nの後にK
、M
、G
のいずれかを指定すると、この値はそれぞれKB、MB、GBと解釈されます。
AW THAWコマンドは、現在のトランザクションが存在する場合はそのトランザクションをコミットし、前のAW FREEZEコマンドを取り消すコマンドです。
構文
AW THAW
既存のアナリティック・ワークスペースからオブジェクトおよびデータをすべて削除します。アナリティック・ワークスペースで使用されている表領域もすべて割当てが解放されます。AW TRUNCATEを使用してデータを削除する方が、AW DELETEを使用してアナリティック・ワークスペースを削除するよりも効率的であり、データ以外に削除される対象も少なくなります。たとえば、AW TRUNCATEを使用してデータを削除した場合、削除前に付与されていたオブジェクト権限はすべて保持されます。表の削除に関する詳細は、『Oracle Database SQL言語リファレンス』のTRUNCATE
文の項を参照してください。
構文
AW TRUNCATE workspace
引数
アナリティック・ワークスペースの名前。名前を指定する必要があります。別名は指定できません。
例