Oracle® Fusion Middleware Oracle Business Intelligence Enterprise Editionメタデータ・リポジトリ作成者ガイド 12c (12.2.1.1.0) E77227-02 |
|
![]() 前へ |
![]() 次へ |
Oracle Exalytics Machine上でOracle Business Intelligenceを実行している場合、Oracle BIサマリー・アドバイザ機能を使用して、問合せのパフォーマンスが向上するのはどの集計であるのか特定し、推奨集計を作成するスクリプトを生成できます。
注意:
Oracle Exalytics Machine上でOracle Business Intelligenceを実行していない場合、Oracle BIサマリー・アドバイザ機能は使用できません。
この項では、次の項目について説明します。
問合せ時間を短縮するために、ロールアップ・データを含む問合せに対して事前に計算された結果を格納する集計表を作成できます。
ただし、集計を作成する前に、使用状況トラッキング統計を分析し、問合せのパフォーマンスが向上するのはどの集計であるのかを特定する必要があります。多くの時間と労力を要する手動による集計の特定のかわりに、特定のリソースの制約を満たしつつ、最大の問合せパフォーマンスを得られる問合せパターンに基づいた集計表の最適なリストをインテリジェントにお薦めするサマリー・アドバイザ機能を使用できます。その後、サマリー・アドバイザによって集計作成スクリプトが生成され、それを実行すると、推奨集計表を作成できます。
サマリー・アドバイザ機能には、次のようないくつかの部分があります。
指定された統計データベースへの統計収集。サマリー・アドバイザ統計を収集するには、使用状況トラッキング機能を有効化する必要があります。
収集された統計と推奨集計を評価するための、管理ツールのサマリー・アドバイザ・ウィザードによるサマリー・アドバイザの実行。
この項では、次の項目について説明します。
サマリー・アドバイザで推奨を生成するには、その前に、サマリー・アドバイザが使用する使用状況統計の代理サンプルを取得する必要があります。
この作業を実行するには、次の方法のいずれかを使用します。
本番システム上で、使用状況トラッキングおよびサマリー・アドバイザ・ロギングを有効化し、数日間にわたってユーザーにBIサーバーに対する問合せを実行してもらいます。サマリー・アドバイザ統計表に、使用状況統計が移入されます。詳細は、使用状況トラッキングの有効化およびサマリー・アドバイザ・ロギングの有効化を参照してください。
注意:
使用状況トラッキングとサマリー・アドバイザ・ロギングを有効化すると、本番システムのパフォーマンスにわずかに影響します。
テスト環境で、Oracle BIサーバーに対して代理ワークロードを実行し、サマリー・アドバイザ統計を収集します。代理ワークロードは、一般的に要求される論理SQL文のリストです。通常、代理ワークロードは本番環境から取得します。
代理ワークロードが用意できたら、テスト環境のOracle BIサーバーで使用状況トラッキングとサマリー・アドバイザ・ロギングを有効化し、nqcmd
ユーティリティを使用してそのOracle BIサーバーに対してワークロードを実行します。nqcmd
の使用方法の詳細は、リポジトリをテストおよび調整するためのnqcmdの使用方法を参照してください。サマリー・アドバイザ統計表に、使用状況統計が移入されます。
サマリー・アドバイザ統計表に代理データが移入された後、サマリー・アドバイザによってデータを分析し、集計の推奨を生成して問合せを高速化できます。
これを行うには、管理ツールのOracle BIサマリー・アドバイザ・ウィザードを実行して集計指定を生成し、nqcmd
を使用してその集計指定を使用して集計を作成します。詳細は、「集計指定スクリプトの生成」および「Oracle BIに対する集計指定の実行」を参照してください。
Oracle BIサマリー・アドバイザは、Oracle TimesTen In-Memory DatabaseまたはOracle BI EEの集計の作成をサポートしています。また、Oracle ExalyticsでOracle Database In-Memoryを使用しているときに集計の作成をサポートします。サポートされるバージョンは、システム要件と動作要件を参照してください。
同じオプションを再度入力することなく、後でOracle BIサマリー・アドバイザ・ウィザードを再実行できるように、サマリー・アドバイザのオプションをファイルに保存することもできます。
集計および特定のメジャーを含むサマリー・アドバイザの使用について学習します。
サマリー・アドバイザ・ウィザードの「その他」ページで、「問合せで使用されているメジャーのみ含める」オプションが設定されていると、サマリー・アドバイザは、分析済の問合せワークロードに存在していて、集計が作成された場合に問合せワークロードを最適化できる特定のメジャーが含まれている集計のみを推奨します。
注意:
メジャー・サブセットの推奨事項に関する情報は、次のとおりです。
サマリー・アドバイザーには、お薦めされる集計の問合せワークロードで使用されないメジャーは含まれません。
集計ファクト表のサイズの見積りは、見積りの際に論理ファクト表のすべてのメジャーを使用するのではなく、推奨メジャー・サブセットに基づいて行われます。
サマリー・アドバイザーには、お薦めされる集計において集計の永続性に無効なメジャーは含まれません。
Oracle BIサマリー・アドバイザ機能を使用する前に、収集した統計を格納するデータベースを設定する必要があります。
ターゲット・データベースでリポジトリ作成ユーティリティ(RCU)を実行し、必要な統計スキーマを作成する必要があります。
RCUを使用したデータベース・スキーマの作成の詳細は、Oracle Business Intelligenceのインストールと構成を参照してください。
Oracle Business Intelligenceとともに使用するためにインストールしたデータベースを統計データベースとして使用します。これは、このデータベースにはすでにRCUで作成したスキーマが存在するためです。サマリー・アドバイザ用にRCUで作成した表の名前は、S_NQ_SUMMARY_ADVISOR
です。
また、そのデータベースを、Oracle BIリポジトリの物理レイヤーにインポートすることも必要です。
サマリー・アドバイザには、使用状況トラッキングに使用するものと同じデータベースを使用する必要があります。使用状況トラッキング用にデータベースとスキーマをすでに設定済である場合は、この項の手順を省略できます。
統計データベースを設定する手順は、次のとおりです。
S_NQ_SUMMARY_ADVISOR
表の列を確認します。
列 | 説明 |
---|---|
GROUPBYCOLUMNIDVECTOR |
処理パスでグループ化列を表す論理列オブジェクトのアップグレードID。 処理パスはOracle BIサーバーの内部用語です。これは、1つのファクト論理表ソースを含む副問合せを表します。 |
LOGICALFACTTABLEID |
論理ファクト表のアップグレードID。 |
LOGICALTABLESOURCEIDVECTOR |
論理表ソースのアップグレードID。 |
LOGICAL_QUERY_ID |
S_NQ_ACCTのID列を参照する外部キー。この列は、この処理パスを生成した論理SQLを特定する際に役立ちます。 |
MEASURECOLUMNIDVECTOR |
処理パスでメジャーを表す論理列オブジェクトのアップグレードID。 |
PROCESSINGTIMEINMILLISEC |
この処理パスで費やされた時間(ミリ秒)。 |
QUERYLEVELIDVECTOR |
処理パスにおける論理レベルのアップグレードID。 |
QUERYSTATUS |
内部使用のみに対応しています。 |
ROW_COUNT |
処理パスで取得された行数。この列のデータは、将来のリリースでOracle BIサマリー・アドバイザが使用するために予約されています。 |
SOURCECELLLEVELIDVECTOR |
論理表ソースにおける論理レベルのアップグレードID。 |
VERSION |
Oracle BIサーバーのバージョン番号。 |
サマリー・アドバイザ統計を収集する前に、使用状況トラッキングを有効化する必要があります。
詳細は、Oracle Business Intelligence Enterprise Editionシステム管理者ガイドの使用状況トラッキングの管理を参照してください。
統計を収集する準備ができたら、サマリー・アドバイザ・ロギングを有効化できます。新しい(アップグレードしたものではない)インストールの場合、サマリー・アドバイザ・パラメータは中央で管理します。
統計を収集する準備ができたら、サマリー・アドバイザ・ロギングを有効化できます。新しい(アップグレードしたものではない)インストールの場合、サマリー・アドバイザ・パラメータは中央で管理します。Fusion Middleware ControlのシステムMBeanブラウザを使用して、サマリー・アドバイザ・パラメータを設定します。
システムMBeanブラウザを使用してサマリー・アドバイザ・ロギングを有効化する手順は、次のとおりです。
Fusion Middleware Controlの「ナビゲータ」ウィンドウで、WebLogicドメイン・フォルダおよびbifoundation_domain
ノードを開きます。
「AdminServer」ノードを右クリックして「システムMBeanブラウザ」を選択します。
「アプリケーション定義のMBean」を開いて、oracle.biee.admin
を開いてから、ドメイン: bifoundation_domainを開きます。
次のようにドメインをロックします。
「BIDomain」を開いて、group=ServiceというBIDomain MBeanを選択します。
「操作」タブを表示します。
「ロック」リンクをクリックします。
BIDomain.BIInstance.ServerConfigurationを開き、BIDomain.BIInstance.ServerConfiguration MBeanを選択します。
UsageTrackingCentrallyManaged属性がtrueに設定されていることを確認します。UsageTrackingCentrallyManagedがfalseに設定されている場合は、次のパラメータは、システムMBeanブラウザではなく、各Oracle BIサーバー・コンピュータ上のNQSConfig.INIファイルを使用して管理します。
SummaryAdvisorTableName
SummaryStatisticsLogging
UsageTrackingConnectionPool
UsageTrackingDirectInsert
UsageTrackingEnabled
UsageTrackingPhysicalTableName
統計を収集するデータベース表の完全修飾名にSummaryAdvisorTableName属性を(Oracle BIリポジトリの物理レイヤーに表示されているとおりに)設定します。次に例を示します。
"My_DB"."DEV_BIPLATFORM"."S_NQ_SUMMARY_ADVISOR"
指定する表名は、使用状況トラッキングに使用するものと同じデータベース・オブジェクトおよび接続プールに属している必要があります。
SummaryStatisticsLoggingを次のいずれかのオプションに設定します。
サマリー・アドバイザ・ロギングを有効にするには、YESと入力します。
外部結合を含む論理問合せに対してのみサマリー・アドバイザ・ロギングを有効にするには、LOG_OUTER_JOINT_QUERIES_ONLYと入力します。完全なSummary Advisorのロギングを有効にすることによる小さいパフォーマンスへの影響が問題となる場合は、このオプションを使用することを検討してください。
変更を適用した後、次のようにしてドメインのロックを解放します。
oracle.biee.admin
、Domain:bifoundation_domain
、BIDomain
の下のgroup=Service
のBIDomain MBeanに戻ります。
「操作」タブを表示します。
コミット操作の1つをクリックします。
Oracle Business Intelligenceの「概要」ページに移動し、「再起動」をクリックします。
アップグレードのお客様の場合は、サマリー・アドバイザ・パラメータはデフォルトでは中央で管理されません。前の手順で説明したようにUsageTrackingCentrallyManagedをtrueに設定し、システムMBeanブラウザを使用してパラメータを更新するか、NQSConfig.INI
を使用してサマリー・アドバイザ・パラメータを管理できます。
これらのパラメータに対して中央管理が無効になっている場合にNQSConfig.INI
でサマリー・アドバイザ・ロギングを有効化するには、次の手順に従います。
ORACLE_INSTANCE/config/OracleBIServerComponent/coreapplication_obisn
編集する前に、ファイルのバックアップ・コピーを作成します。
[USAGE_TRACKING]セクションで、次のパラメータを更新します。
SUMMARY_STATISTICS_LOGGING
を次のいずれかのオプションに設定します。
YES:
サマリー・アドバイザ・ロギングを有効にします。
LOG_OUTER_JOINT_QUERIES_ONLY
: 外部結合を含む論理問合せに対してのみサマリー・アドバイザ・ロギングを有効にします。完全なSummary Advisorのロギングを有効にすることによる小さいパフォーマンスへの影響が問題となる場合は、このオプションを使用することを検討してください。
統計を収集するデータベース表の完全修飾名にSUMMARY_ADVISOR_TABLE_NAME
を(Oracle BIリポジトリの物理レイヤーに表示されているとおりに)設定します。次に例を示します。
SUMMARY_ADVISOR_TABLE_NAME = "My_DB"."DEV_BIPLATFORM"."S_NQ_SUMMARY_ADVISOR";
指定する表名は、使用状況トラッキングに使用するものと同じデータベース・オブジェクトおよび接続プールに属している必要があります。
保存してファイルを閉じます。
Oracle BIサーバーを再起動します。
複数のOracle BIサーバー・インスタンスがある場合は、すべてのOracle BIサーバー・インスタンスについて、各NQSConfig.INI
ファイルでこれらの手順を繰り返します。
サマリー・アドバイザ統計の生成後に、Oracle BIサマリー・アドバイザ・ウィザードを実行すると、集計指定スクリプトを生成できます。このスクリプトは集計を作成する際に実行できます。
サマリー・アドバイザ・ウィザードは、オンライン・モードでのみで実行できます。また、Oracle BIサマリー・アドバイザ・ウィザードはコマンドラインから実行することもできます。詳細は、nqaggradvisorユーティリティを使用してOracle BIサマリー・アドバイザを実行を参照してください。
サマリー・アドバイザ・ウィザードを実行する前に、集計を作成するために使用するターゲット・データベースを物理レイヤーにマップする必要があります。必要なデータベース、接続プールおよび物理スキーマ・オブジェクトを手動で作成する必要があります。
Oracle BIサマリー・アドバイザ・ウィザードを以前に使用したことがあり、フィルタ基準、ターゲットおよびその他のオプションをXMLファイルとして保存してある場合は、「ファイルからパラメータのロード」をクリックし、前に保存したオプションを現在のウィザード・セッションにロードできます。
Oracle BIサマリー・アドバイザ・ウィザードは、Oracle BI EEを実行している場合、またはOracle ExalyticsでOracle Database In-Memoryを使用している場合に使用できます。Oracle Exalytics上のOracle Database In-Memoryをターゲットとして使用して、集計スクリプト(サマリー・アドバイザによって推奨された集計または手動で定義した集計)を実行できます。
サマリー・アドバイザ表(システムMBeanブラウザのSummaryAdvisorTableName
、またはNQSConfig.INI
のSUMMARY_ADVISOR_TABLE_NAMEパラメータで指定)が空の場合、サマリー・アドバイザは続行できません。
サマリー・アドバイザ設定の推奨事項
サマリー・アドバイザの「その他」ページでは、次のようにすることをお薦めします。
「代理キーの使用」を選択して、集計を使用する問合せのパフォーマンスを向上させます。
「優先オプティマイザ見積り」を選択して、サマリー・アドバイザの処理時のパフォーマンスを向上させます。
「優先オプティマイザ見積り」オプションにより、サマリー・アドバイザは、可能なときには実際の行数問合せを発行するかわりに、データベース問合せオプティマイザから発生するカーディナリティの見積りを使用するようになります。「優先オプティマイザ見積り」オプションは、Oracle Database、Microsoft SQL Server、およびIBM DB2で使用できます。
データベース問合せオプティマイザの見積りを使用するサマリー・アドバイザは、関連データベース・オブジェクトの最新の統計情報を取得します。詳細は、Oracle Databaseのドキュメントを参照してください。
「優先オプティマイザ見積り」オプションを選択していないと、サマリー・アドバイザはバックエンドのデータ・ソースに行数問合せを発行して、そのデータ・ソースの特定の問合せの行数(カーディナリティ)を取得しますが、この実行には時間がかかることがあります。最良の見積りを取得する方法のガイドラインについては、適切なデータベースのドキュメントを参照してください。たとえば、Oracle Databaseを使用している場合は、複数列の問合せのカーディナリティ見積りを改善するために、列グループ機能の使用が必要になることがあります。
特定のグレインに対するエントリがサマリー・アドバイザのキャッシュ・ファイルにすでに存在している場合は、実際の行数問合せであるか、またはカーディナリティ見積りの問合せであるかどうかに関係なく、そのグレインのサンプリングを試みる問合せはサマリー・アドバイザでは発行されません。
「優先オプティマイザ見積り」オプションの選択時または選択解除時には、サマリー・アドバイザのキャッシュ・ファイルを削除してください。これを行うには、Oracle BI管理ツールのコンピュータで、次のディレクトリにあるNQAggregate.Stats.Cache.txt
およびNQAggregate.LTS.Stats.Cache.txt
を削除します。
ORACLE_INSTANCE\bifoundation\OracleBIServerComponent\ coreapplication_obisn\aggr
「問合せで使用されているメジャーのみ含める」を選択し、問合せで使用されているメジャーを含めます。詳細は、メジャー・サブセットの推奨事項についてを参照してください。
このオプションを選択しないと、論理ファクト表内のすべてのメジャーが推奨事項内に含まれます。これには、サマリー・アドバイザで分析済のワークロードで使用されないメジャーも含まれます。
(オプション: 推奨)モデル・チェック・マネージャを実行して、Oracle BIサマリー・アドバイザのパフォーマンスと結果に影響を及ぼす可能性のあるモデリングの問題がリポジトリに含まれていないことを確認します。詳細は、モデル・チェック・マネージャを使用したモデリングの問題のチェックを参照してください。
モデル・チェックは、オフピークの期間に実行することをお薦めします。モデル・チェック・マネージャは、いくつかのチェックのためにバックエンド・データ・ソースに対する問合せを実行します。巨大なリポジトリに対してモデル・チェック・マネージャを実行すると、時間がかかることがあります。パフォーマンスを向上させるには、「統計によるフィルタ処理」を使用するか、選択したオブジェクトに対してのみモデル・チェック・マネージャを実行するようにしてください。
SQLファイルを使用した集計表の作成の詳細は、Oracle BIに対する集計指定の実行を参照してください。
サマリー・アドバイザ・ウィザードの「停止基準」ページでは、推奨のセットに対する実行の制約を指定できます。
次の点を考慮してください。
サマリー・アドバイザが結果を返すまでの最大時間を指定できます。
新しい集計を追加する際に、そのワークロードで影響を受けるすべての問合せのパフォーマンスに対する最小向上パーセンテージを指定できます。
サマリー・アドバイザは、反復最適化アルゴリズムを使用します。サマリー・アドバイザでは、反復の回ごとに、異なるセットの集計が評価されます。この画面で最小向上パーセンテージを指定すると、サマリー・アドバイザによって、2つの連続する回の推定される向上が比較され、その向上が、指定した最小パーセンテージに満たない場合は停止されます。
各回の推定される向上を示す計算式は次のとおりです。
Estimated Gain = [(total query time at the beginning of the round) - (total query time at the end of the round)] / (Initial total query time prior to the first round)
次に例を示します。
初期合計問合せ時間= 1000秒
1回目の終わり:
合計問合せ時間= 500秒
向上= (1000 - 500)/1000 = 50%
2回目の終わり:
合計問合せ時間= 250秒
向上= (500 - 250)/1000 = 25%
Oracle BI管理ツールを使用するかわりに、コマンドラインからOracle BIサーバー・ユーティリティnqaggradvisor
を使用して、サマリー・アドバイザを実行できます。
サマリー・アドバイザ統計を生成した後、nqaggradvisor
を使用して集計指定スクリプトを生成し、それを実行して集計を作成できます。nqaggradvisor
ユーティリティは、Oracle Business IntelligenceをOracle Exalytics Machine上で実行している場合にのみ使用できます。
nqaggradvisor
ユーティリティの場所は、次のとおりです。
BI_DOMAIN/bi/bitools/bin
構文
nqaggradvisor
ユーティリティは次のパラメータを取ります。
nQAggrAdvisor -d dataSource | -u userName | -o outputFile | -c tupleInQuotes [-p password] [-F factFilter] [-z maxSizeAggr] [-g gainThreshold] [-l minQueryTime] [-t timeoutMinutes] [-s startDate] [-e endDate] [-C on/off] [-M on/off] [-K on/off]
説明:
dataSource
は、サマリー・アドバイザを接続して実行するOracle BIサーバーのODBCデータ・ソース名です。
userName
は、データ・ソースにログインするユーザー名です。指定されたユーザーは、管理ツールをオンライン・モードでオープンし、Oracle BIサマリー・アドバイザを使用するために必要な権限を持つ必要があります。
outputFile
は、集計指定スクリプトの出力の完全修飾パスおよびファイル名です。
tupleInQuotes
は、集計の永続性ターゲットです。完全修飾接続プール、完全修飾スキーマ名およびMB単位の容量を指定する必要があります。
password
は、userName
に対応するパスワードです。これを指定しないと、nQAggrAdvisor
を実行する際に、ユーザーがパスワードを求められます。
factFilter
は、ファクト・フィルタ・ファイル名です。ファクト・フィルタ・ファイルには、サマリー・アドバイザの推奨事項を生成する論理表の完全修飾名が含まれます。個々の論理ファクト表の完全修飾名を、別々の行に追加します。ファクト・フィルタを指定しないと、リポジトリ内のすべての論理ファクト表が分析に含まれます。
maxSizeAggr
は、集計のMB単位の最大サイズです。
gainThreshold
は、反復最適化アルゴリズムに新しい集計を追加する場合に、サマリー・アドバイザに必要なワークロード内で影響を受けるすべての問合せのパフォーマンス・ゲインが改善された割合の最少パーセンテージです。この値が満たされない場合、サマリ・アドバイザが停止します。デフォルト値は1
です。
minQueryTime
は、サマリー・アドバイザの実行に含まれる前に、各論理表ソースで必要な秒単位の最少の問合せ時間しきい値です。デフォルト値は0
です。
timeoutMinutes
は、結果を返すまでのサマリー・アドバイザの分単位の最長実行時間です。0
を指定すると、無制限になります。デフォルト値は0
です。
startDate
は、サマリー・アドバイザの実行に含める統計の開始日です。
endDate
は、サマリー・アドバイザの実行に含める統計の終了日です。
-C
は、オプティマイザの予測を使用するかどうかを指定します。on
またはoff
を指定します。デフォルトはoff
です。
-M
は、推奨事項にどのメジャーを含めるかを指定します。on
を指定して、ワークロードで使用中のメジャーを含めます。off
を選択すると、論理ファクト表内のすべてのメジャーがふくまれます。これには、サマリー・アドバイザで分析済のワークロードで使用されないメジャーも含まれます。デフォルトはoff
です。
-K
は、代用キーを使用するかどうか指定します。on
またはoff
を指定します。デフォルトはon
です。
例
次の例では、tupleInQuotes
パラメータを正常に指定する方法を示します。
nQAggrAdvisor -d "AnalyticsWeb" -u "Administrator" -p "ADMIN" -o "C:\temp\aggr_advisor.out.txt" -c "DW_Aggr"."Connection Pool","DW_Aggr".."AGGR",1000
次の例では、gainThreshold
、startDate
およびendDate
パラメータを正常に指定する方法を示します。
nQAggrAdvisor -d "AnalyticsWeb" -u "Administrator" -p "ADMIN" -o "C:\temp\aggr_advisor.out.txt" -F "C:\temp\fact_filter.txt" -g 10 -c "TimesTen_instance1"."Connection Pool","dbo",2000 -s "2011-05-02 08:00:00" -e "2011-05-07 18:30:00" -C on -M on -K off