11 Oracle Shardingリファレンス
次のトピックでは、Oracle Shardingシャード・データベース構成の計画、構成、デプロイ、および管理に役立つ参照情報を示します。
- Oracle ShardingでのGDSCTLの使用
Oracle Sharding構成の設定およびデプロイでは、Global Data ServicesのGDSCTLコマンドをいくつか使用します。次のトピックでは、GDSCTLコマンドライン・ツールおよびOracle Sharding関連のGDSCTLコマンドの使用方法について説明します。 - Oracle ShardingのDDL構文の機能拡張
Oracle Shardingには、シャード・データベースに対してのみ実行できる構文を持つSQL DDL文が含まれています。 - シャーディング・アドバイザ・コマンドライン・ツールの使用
シャーディング・アドバイザ・コマンドライン・ツールは、シャード・データベースへの移行前に、非シャード・データベースを分析して、現在の非シャード・データベースのワークロードとスキーマに基づいた適切なシャード・データベース構成の推奨事項を得るために使用します。
Oracle ShardingでのGDSCTLの使用
Oracle Sharding構成の設定およびデプロイでは、Global Data ServicesのGDSCTLコマンドをいくつか使用します。次のトピックでは、GDSCTLコマンドライン・ツールおよびOracle Sharding関連のGDSCTLコマンドの使用方法について説明します。
- GDSCTLの操作
GDSCTLの起動、コマンドの実行、およびコマンドのヘルプ・テキストの表示を行う方法について説明します。 - GDSCTL接続
一部のGDSCTLコマンドではシャード・カタログに接続する必要があり、特定の操作の場合、GDSCTLはシャード・ディレクタに接続する必要があります。 - Oracle Shardingで使用されるGDSCTLコマンド
Oracle Shardingでは、GDSCTLコマンドのサブセットが使用されます。
親トピック: Oracle Shardingリファレンス
GDSCTLの操作
GDSCTLの起動、コマンドの実行、およびコマンドのヘルプ・テキストの表示を行う方法について説明します。
- GDSCTLの起動
GDSCTLを起動するには、オペレーティング・システムのプロンプトで、gdsctl
を入力します。 - GDSCTLコマンドの対話的な実行
GDSCTLコマンドは、オペレーティング・システム・プロンプトでもGDSCTLコマンド・プロンプトでも対話的に実行できます。 - GDSCTLバッチ操作の実行
すべてのGDSCTLコマンドを1つのファイルにまとめ、バッチとして実行できます。 - GDSCTLのヘルプ・テキスト
GDSCTLおよびGDSCTLコマンドのヘルプを表示できます。
親トピック: Oracle ShardingでのGDSCTLの使用
GDSCTLの起動
GDSCTLを起動するには、オペレーティング・システムのプロンプトで、gdsctl
を入力します。
$ gdsctl
GDSCTLが起動し、GDSCTLコマンド・プロンプトが表示されます。
GDSCTL>
親トピック: GDSCTLの操作
GDSCTLコマンドの対話的な実行
GDSCTLコマンドは、オペレーティング・システム・プロンプトでもGDSCTLコマンド・プロンプトでも対話的に実行できます。
システム・プロンプトでGDSCTLコマンドを実行します。
$ gdsctl add gsm -gsm gsm1 -catalog 127.0.0.1:1521:db1
GDSCTLコマンド・プロンプトでGDSCTLコマンドを実行します。
GDSCTL> add gsm -gsm gsm1 -catalog 127.0.0.1:1521:db1
これらの方法のどちらでも同じ結果が得られます。このドキュメントのコマンド構文の例では、GDSCTLコマンド・プロンプトを使用します。
親トピック: GDSCTLの操作
GDSCTLバッチ操作の実行
すべてのGDSCTLコマンドを1つのファイルにまとめ、バッチとして実行できます。
次のコマンドはGDSCTLを起動し、指定されたスクリプト・ファイルに含まれるコマンドを実行します。
$ gdsctl @script_file_name
親トピック: GDSCTLの操作
GDSCTLのヘルプ・テキスト
GDSCTLおよびGDSCTLコマンドのヘルプを表示できます。
GDSCTL HELP
コマンドでは、すべてのGDSCTLコマンドのサマリーが表示されます。
GDSCTL> help
HELP
の後にコマンド名を指定すると、そのコマンドのヘルプ・テキストが表示されます。
GDSCTL> help start gsm
また、GDSCTLコマンドに-h
オプションを使用すると、指定したコマンドのヘルプ・テキストを表示できます。
GDSCTL> start gsm -h
親トピック: GDSCTLの操作
GDSCTL接続
一部のGDSCTLコマンドではシャード・カタログに接続する必要があり、特定の操作の場合、GDSCTLはシャード・ディレクタに接続する必要があります。
- GDSCTLとシャード・カタログの接続
シャード・カタログへの接続が必要なGDSCTLコマンドを実行する場合は、接続が必要な最初のコマンドの前に、GDSCTLのCONNECT
コマンドを実行する必要があります。 - GDSCTLとシャード・ディレクタの接続
特定の操作では、GDSCTLはシャード・ディレクタ(グローバル・サービス・マネージャとも呼ばれます)に接続する必要があります。
親トピック: Oracle ShardingでのGDSCTLの使用
GDSCTLとシャード・カタログの接続
シャード・カタログへの接続が必要なGDSCTLコマンドを実行する場合は、接続が必要な最初のコマンドの前に、GDSCTLのCONNECT
コマンドを実行する必要があります。
CONNECT
コマンドは、GDSCTLセッションで1回実行するのみで済みます。
GDSCTLは、Oracle Net Servicesを使用して、Oracle Sharding構成のシャード・カタログ・データベースまたは他のデータベースに接続します。これらの接続の場合、必要なネットワーク構成を持つクライアントまたはホストからGDSCTLを実行できます。
指定がない場合、GDSCTLは現在の名前の解決方法(TNSNAMESなど)を使用して接続文字列を解決します。
シャード・カタログへの接続が必要なGDSCTL操作は、各コマンドの使用上の注意に示されています。
親トピック: GDSCTL接続
GDSCTLとシャード・ディレクタの接続
特定の操作では、GDSCTLはシャード・ディレクタ(グローバル・サービス・マネージャとも呼ばれます)に接続する必要があります。
指定がない場合、GDSCTLは現在の名前の解決方法(TNSNAMESなど)を使用して接続文字列を解決します。ただし、シャード・ディレクタ名を解決するために、GDSCTLはgsm.ora
ファイルを参照します。
シャード・ディレクタに接続するには、シャード・ディレクタと同じホストでGDSCTLが実行されている必要があります。シャード・ディレクタに接続するときに、GDSCTLはローカル・シャード・ディレクタに関連付けられているgsm.ora
ファイルを探します。
次に、シャード・ディレクタへの接続を必要とするGDSCTL操作を示します。
-
ADD GSM
はシャード・ディレクタを追加します。 -
START GSM
はシャード・ディレクタを起動します。 -
STOP GSM
はシャード・ディレクタを停止します。 -
MODIFY GSM
は、シャード・ディレクタの構成パラメータを変更します。 -
STATUS GSM
は、シャード・ディレクタのステータスを返します。 -
SET INBOUND_CONNECT_LEVEL
では、INBOUND_CONNECT_LEVEL
リスナー・パラメータを設定します。 -
SET TRACE_LEVEL
では、指定されたシャード・ディレクタに関連付けられているリスナーのトレース・レベルを設定します。 -
SET OUTBOUND_CONNECT_LEVEL
では、指定されたシャード・ディレクタに関連付けられているリスナーのアウトバウンド接続のタイムアウト値を設定します。 -
SET LOG_LEVEL
では、特定のシャード・ディレクタに関連付けられているリスナーのログ・レベルを設定します。
親トピック: GDSCTL接続
Oracle Shardingで使用されるGDSCTLコマンド
Oracle Shardingでは、GDSCTLコマンドのサブセットが使用されます。
親トピック: Oracle ShardingでのGDSCTLの使用
Oracle ShardingのDDL構文の機能拡張
Oracle Shardingには、シャード・データベースに対してのみ実行できる構文を持つSQL DDL文が含まれています。
Oracle Shardingをサポートするために問合せおよびDML文を変更する必要はなく、DDL文の変更も非常に限られています。ほとんどの既存のDDL文は、非シャード・データベースと同じ構文およびセマンティクスを使用して、シャード・データベースで同様に機能します。
- CREATE TABLESPACE SET
この文は、1つ以上のシャード表および索引の論理ストレージ・ユニットとして使用できる表領域セットを作成します。表領域セットは、シャード領域のシャード間に分散された複数のOracle表領域で構成されます。 - ALTER TABLESPACE SET
この文は、1つ以上のシャード表および索引の論理ストレージ・ユニットとして使用できる表領域セットを変更します。 - DROP TABLESPACE SETおよびPURGE TABLESPACE SET
これらの文は、1つ以上のシャード表および索引の論理ストレージ・ユニットとして使用できる表領域セットを削除またはパージします。 - CREATE TABLE
CREATE TABLE
文は、シャード表および複製表を作成するために拡張され、表ファミリを指定します。 - ALTER TABLE
ALTER TABLE
文は、シャード表および重複表を変更するために拡張されています。 - ALTER SESSION
ALTER SESSION
文は、シャード・データベースをサポートするように拡張されています。
親トピック: Oracle Shardingリファレンス
CREATE TABLESPACE SET
この文は、1つ以上のシャード表および索引の論理ストレージ・ユニットとして使用できる表領域セットを作成します。表領域セットは、シャード領域のシャード間に分散された複数のOracle表領域で構成されます。
CREATE TABLESPACE SET
文はOracle Sharding専用です。構文はCREATE TABLESPACE
と似ています。
CREATE TABLESPACE SET tablespace_set
[IN SHARDSPACE shardspace]
[USING TEMPLATE (
{ MINIMUM EXTENT size_clause
| BLOCKSIZE integer [ K ]
| logging_clause
| FORCE LOGGING
| ENCRYPTION tablespace_encryption_spec
| DEFAULT [ table_compression ] storage_clause
| { ONLINE | OFFLINE }
| extent_management_clause
| segment_management_clause
| flashback_mode_clause
}...
)];
システム管理のシャーディングでは、シャード・データベースにデフォルトの1つのシャード領域のみがあります。表領域セット内の表領域の数は自動的に決定され、対応するシャード領域内のチャンクの数と同じです。
表領域セット内のすべての表領域はビッグファイルであり、プロパティが同じです。プロパティはUSING TEMPLATE
句に指定します。この句は、通常の表領域のpermanent_tablespace_clause
と同じですが、datafile_tempfile_spec
句にデータファイル名を指定できないことが異なります。表領域セット内の各表領域のデータファイル名は自動的に生成されます。
表領域セットは永続表領域のみで構成され、システム、UNDOまたは一時表領域セットはありません。
例
CREATE TABLESPACE SET TSP_SET_1 IN SHARDSPACE sgr1
USING TEMPLATE
( DATAFILE SIZE 100m
EXTEND MANAGEMENT LOCAL
SEGMENT SPACE MANAGEMENT AUTO
);
親トピック: Oracle ShardingのDDL構文の機能拡張
ALTER TABLESPACE SET
この文は、1つ以上のシャード表および索引の論理ストレージ・ユニットとして使用できる表領域セットを変更します。
表領域セットのSHARDSPACE
プロパティは変更できません。表領域セットの他のすべての属性は、通常の永続表領域と同様に変更できます。表領域セット内の表領域はビッグファイルであるため、ADD DATAFILE
句およびDROP DATAFILE
句はサポートされません。
親トピック: Oracle ShardingのDDL構文の機能拡張
DROP TABLESPACE SETおよびPURGE TABLESPACE SET
これらの文は、1つ以上のシャード表および索引の論理ストレージ・ユニットとして使用できる表領域セットを削除またはパージします。
これらの文の構文およびセマンティクスは、DROP
文およびPURGE TABLESPACE
文と似ています。
親トピック: Oracle ShardingのDDL構文の機能拡張
CREATE TABLE
CREATE TABLE
文は、シャード表および複製表を作成するために拡張され、表ファミリを指定します。
構文
CREATE [ { GLOBAL TEMPORARY | SHARDED | DUPLICATED} ]
TABLE [ schema. ] table
{ relational_table | object_table | XMLType_table }
[ PARENT [ schema. ] table ] ;
CREATE TABLE
文の次の部分は、Oracle Shardingをサポートするためのものです。
-
SHARDED
キーワードおよびDUPLICATED
キーワードは、表のコンテンツがシャード間でパーティション化されるか、すべてのシャードで複製されることをそれぞれ示します。DUPLICATED
キーワードは、重複表を作成するための唯一の構文の変更です。以降で説明する他のすべての変更はシャード表にのみ適用されます。 -
PARENT
句は、シャード表を表ファミリのルート表にリンクします。 -
シャード表を作成するには、
TABLESPACE
のかわりにTABLESPACE SET
を使用します。TABLESPACE
が含まれるすべての句は、TABLESPACE SET
が含まれるように拡張されました。 -
3つの句:
table_partitioning_clauses
内のconsistent_hash_partitions
、consistent_hash_with_subpartitions
およびpartition_set_clause
。table_partitioning_clauses ::= {range_partitions | hash_partitions | list_partitions | composite_range_partitions | composite_hash_partitions | composite_list_partitions | reference_partitioning | system_partitioning | consistent_hash_partitions | consistent_hash_with_subpartitions | partition_set_clause }
例
CREATE SHARDED TABLE customers
( cust_id NUMBER NOT NULL
, name VARCHAR2(50)
, address VARCHAR2(250)
, location_id VARCHAR2(20)
, class VARCHAR2(3)
, signup_date DATE
,
CONSTRAINT cust_pk PRIMARY KEY(cust_id, class)
)
PARTITIONSET BY LIST (class)
PARTITION BY CONSISTENT HASH (cust_id)
PARTITIONS AUTO
(PARTITIONSET gold VALUES (‘gld’) TABLESPACE SET ts2,
PARTITIONSET silver VALUES (‘slv’) TABLESPACE SET ts1)
;
制限事項
現在のリリースでのシャード表に関する制限:
-
シャード表のデフォルトの表領域セットはありません。
-
一時表はシャーディングまたは複製できません。
-
索引構成シャード表はサポートされません。
-
シャード表には、ネストした表の列またはアイデンティティ列を含めることはできません。
-
シャード表に定義される主キー制約には、シャーディング列を含める必要があります。重複表の列を参照するシャード表の列の外部キー制約はサポートされていません。
-
システム・パーティション化および間隔レンジ・パーティション化は、シャード表ではサポートされません。個別のハッシュ・パーティションの指定は、コンシステント・ハッシュによるパーティション化ではサポートされません。
-
PARTITION BY
句またはPARTITIONSET BY
句に使用されるシャード表の列には、仮想列を指定できません。
現在のリリースの重複表では、次のことはサポートされません。
-
システム・パーティション表および参照パーティション表
-
LONG、抽象(MDSYSデータ型はサポートされています)、REFデータ型
-
主キーを除く列の最大数は999個です
-
nologging
、parallel
、inmemory
オプション -
重複表のXMLType列は非ASSM表領域で使用できません
親トピック: Oracle ShardingのDDL構文の機能拡張
ALTER TABLE
ALTER TABLE
文は、シャード表および重複表を変更するために拡張されています。
シャード・データベースに対してALTER TABLE
を使用する場合は、制限事項があります。
次のオプションは、システム管理またはコンポジット・シャード・データベースのシャード表ではサポートされません。
-
名前の変更
-
外部キー制約の追加
-
個々のパーティションおよびサブパーティションに対するすべての操作
-
シャードに対するすべてのパーティション関連の操作(
TRUNCATE
PARTITION、UNUSABLE LOCAL INDEXES
およびREBUILD UNUSABLE LOCAL INDEXESを除く)
次の操作は、重複表ではサポートされていません。
-
データ型: LONG、抽象(
MDSYS
データ型はサポートされています)、REF
-
列のオプション: ベクトル・エンコード、不可視の列、ネストした表
-
オブジェクト・タイプ
-
クラスタ化表
-
外部表
-
ILMポリシー
-
PARENT
句 -
表のフラッシュバック操作
-
システムおよび参照パーティション化
-
NOLOGGING
オプションの有効化 -
表の切捨て
-
重複表のマテリアライズド・ビュー・ログの削除
-
シャード上の重複表のマテリアライズド・ビューの削除
-
シャード上の(重複表の)マテリアライズド・ビューの変更
親トピック: Oracle ShardingのDDL構文の機能拡張
ALTER SESSION
ALTER SESSION
文は、シャード・データベースをサポートするように拡張されています。
セッションレベルのSHARD DDL
パラメータは、シャード・カタログ・データベースに対して発行されたDDLのスコープを設定します。
ALTER SESSION { ENABLE | DISABLE } SHARD DDL;
SHARD DDL
を有効にした場合、セッションで発行されたすべてのDDLはシャード・カタログおよびすべてのシャードで実行されます。SHARD DDL
を無効にした場合、DDLはシャード・カタログ・データベースに対してのみ実行されます。シャード・データベース・ユーザー(すべてのシャードおよびカタログに存在するユーザー)の場合、SHARD DDL
はデフォルトで有効にされます。シャード・データベース・ユーザーを作成するには、CREATE USER
を実行する前に、SHARD DDL
パラメータを有効にする必要があります。
親トピック: Oracle ShardingのDDL構文の機能拡張
シャーディング・アドバイザ・コマンドライン・ツールの使用
シャーディング・アドバイザ・コマンドライン・ツールは、シャード・データベースへの移行前に、非シャード・データベースを分析して、現在の非シャード・データベースのワークロードとスキーマに基づいた適切なシャード・データベース構成の推奨事項を得るために使用します。
次の参照トピックで、シャーディング・アドバイザの構文、使用方法、出力表、出力表に対する問合せ例、およびセキュリティ情報の詳細を参照してください。
- シャーディング・アドバイザの使用方法およびオプション
シャーディング・アドバイザは、既存の非シャード・データベースに接続してシャーディング構成の推奨事項を提供するクライアント用のコマンドライン・ツールです。 - シャーディング・アドバイザの出力表
シャーディング構成および関連情報を確認するには、ソース・データベースと同じスキーマに格納されている次の出力データベース表を問い合せることができます。 - シャーディング・アドバイザの出力を確認するためのSQLの例
シャーディング・アドバイザの出力は、通常のデータベース表に含まれているため、各種のSQL問合せを実行して様々な観点から出力を参照できます。 - シャーディング・アドバイザのセキュリティ
シャーディング・アドバイザは、認証されたOCI接続を使用して非シャード・データベースに接続するクライアント側のユーティリティです。
親トピック: Oracle Shardingリファレンス
シャーディング・アドバイザの使用方法およびオプション
構文
gwsadv
[-n nodeName[:portnum]]
[-s serviceName]
-u username
-p password
[-c]
[-awr_snap_begin timestamp]
[-awr_snap_end timestamp]
–w
[sch=(schema1, schema2, …)]
[-tab importantTabsFile]
オプション
各オプションの前にマイナス記号(-)を付ける必要があります。
オプション | 説明 | 必須(Y/N) |
---|---|---|
-u username |
Oracleユーザー名 |
はい |
-p password |
Oracleパスワード |
はい |
-w |
シャーディング構成の生成およびランキングのために問合せワークロードを使用するように、シャーディング・アドバイザに指示します。 |
はい |
-n nodeName[:portnum] |
ノード名およびポート番号(別のホストのデータベースに接続する場合) |
いいえ |
-s serviceName |
サービス名(別のホストのデータベースに接続する場合) |
いいえ |
-c |
新しいワークロードまたは変更されたワークロードを取得します 新しいワークロードまたは変更されたワークロードに対して初めてシャーディング・アドバイザを実行するときに必要となります。 同じワークロードの後続の実行では必要ありません。 デフォルトでは、ワークロードは または、ワークロードを自動ワークロード・リポジトリ(AWR)スナップショットから取得するには、 |
いいえ |
-awr_snap_begin timestamp |
開始タイムスタンプを「YYYY-MM-DD HH24:MI:SS」という書式で指定して、ワークロードを取得するAWRスナップショットを指定します。 |
いいえ |
-awr_snap_end timestamp |
終了タイムスタンプを「YYYY-MM-DD HH24:MI:SS」という書式で指定して、ワークロードを取得するAWRスナップショットを指定します。 |
いいえ |
sch |
|
いいえ |
-tab importantTabsFile |
表名(schemaname.tablenameという形式で1行に1つ)が含まれているファイルの名前。シャーディング・アドバイザで分析する必要がある表の数を制限します。 |
いいえ |
使用上のノート
シャーディング・アドバイザの実行方法をコマンド例によって説明する手順については、「シャーディング・アドバイザの実行」および「非本番システムでのシャーディング・アドバイザの実行」を参照してください。
親トピック: シャーディング・アドバイザ・コマンドライン・ツールの使用
シャーディング・アドバイザの出力表
シャーディング構成および関連情報を確認するには、ソース・データベースと同じスキーマに格納されている次の出力データベース表を問い合せることができます。
- SHARDINGADVISOR_CONFIGURATIONS表
SHARDINGADVISOR_CONFIGURATIONS表の各行は、ランク付けされたシャード構成内の表を表し、シャードまたは重複のいずれを行うか、およびシャードの場合は、表ファミリ階層内のレベル、その親表、ルート表のシャーディング・キー、外部キー参照制約およびシャードごとの表のサイズに関する情報が含まれています。 - SHARDINGADVISOR_CONFIGDETAILS表
SHARDINGADVISOR_CONFIGDETAILS表の各行は、ランク付けされたシャーディング構成を表し、各タイプの表の数とシャードごとの累積サイズ、各タイプの問合せの数、およびソース・データベースの現在のワークロードに基づく見積りコストが含まれています。 - SHARDINGADVISOR_QUERYTYPES表
SHARDINGADVISOR_QUERYTYPES表の各行はワークロードの問合せを表し、問合せタイプおよびSQL IDをリストします。シャーディング構成に応じて、同じ問合せが異なる問合せタイプになることがあります。
親トピック: シャーディング・アドバイザ・コマンドライン・ツールの使用
SHARDINGADVISOR_CONFIGURATIONS表
SHARDINGADVISOR_CONFIGURATIONSスキーマ
列 | 説明 |
---|---|
RANK |
ランキング・アルゴリズムに基づくシャーディング構成のランク |
TABLENAME |
シャーディング構成の表の名前 |
TABLETYPE |
「S」(シャード)、「D」(重複)または「L」(ローカル) |
TABLELEVEL |
表ファミリ階層内の表のレベル(重複表の場合はNULL) |
PARENT |
表ファミリ階層内の表の親(重複表の場合はNULL) |
SHARDBY |
シャーディング方法。参照によるシャーディングの場合は子表のREFERENCE 、またはPARENT 句によるシャーディングの場合は子表のPARENT です。
|
SHARDINGORREFERENCECOLS |
表ファミリの子表のREFERENCE またはPARENT によってパーティション化されるルート表のシャーディング・キー(重複表の場合はNULL)
|
UNENFORCEABLECONSTRAINTS |
強制できない、参照列以外の外部キー制約 |
SIZEOFTABLE |
シャードごとの表のサイズ |
親トピック: シャーディング・アドバイザの出力表
SHARDINGADVISOR_CONFIGDETAILS表
SHARDINGADVISOR_CONFIGDETAILSスキーマ
列 | 説明 |
---|---|
RANK |
ランキング・アルゴリズムに基づくシャーディング構成のランク |
CHOSENBYUSER |
シャーディング構成がユーザーによって選択されている場合はY、他のシャーディング構成が選択されている場合はNULL |
NUMSHARDEDTABLES |
このシャーディング構成のシャード表の数 |
SIZEOFSHARDEDTABLES |
このシャーディング構成のシャード表の累積サイズ(シャードごと) |
NUMDUPLICATEDTABLES |
このシャーディング構成の重複表の数 |
SIZEOFDUPLICATEDTABLES |
このシャーディング構成の重複表の累積サイズ(シャードごと) |
NUMSINGLESHARDQUERIES |
このシャーディング構成の問合せワークロード内の単一のシャード問合せの数 |
NUMMULTISHARDQUERIES |
このシャーディング構成の問合せワークロード内のマルチシャード問合せの数 |
NUMCROSSSHARDQUERIES |
このシャーディング構成の問合せワークロード内の外部結合を必要とするマルチシャード問合せの数 |
COST |
コスト計算アルゴリズムに基づくシャーディング構成のコスト |
親トピック: シャーディング・アドバイザの出力表
SHARDINGADVISOR_QUERYTYPES表
SHARDINGADVISOR_QUERYTYPESスキーマ
列 | 説明 |
---|---|
RANK |
ランキング・アルゴリズムに基づくシャーディング構成のランク |
SQLID |
問合せのSQL ID |
QUERYTYPE |
このシャーディング構成の問合せのタイプ: SINGLE SHARD QUERY 、MULTI SHARD QUERY またはCROSS SHARD QUERY |
親トピック: シャーディング・アドバイザの出力表
シャーディング・アドバイザの出力を確認するためのSQLの例
シャーディング・アドバイザの出力は、通常のデータベース表に含まれているため、各種のSQL問合せを実行して様々な観点から出力を参照できます。
例 11-1 ランキング順でのシャーディング構成の表示
SELECT rank, tableName as tname, tabletype as type,
tablelevel as tlevel, parent, shardby as shardBy,
shardingorreferencecols as cols, unenforceableconstraints,
sizeoftable
FROM SHARDINGADVISOR_CONFIGURATIONS
ORDER BY rank, tlevel, tname, parent;
例11-2 最上位ランクのシャーディング構成の表ファミリの表示
SELECT rank, tableName as tname, tabletype as type,
tablelevel as tlevel, parent, shardby as shardBy,
shardingorreferencecols as cols, unenforceableconstraints,
sizeoftable
FROM SHARDINGADVISOR_CONFIGURATIONS
WHERE rank = 1 AND tabletype = 'S'
ORDER BY tlevel, tname, parent;
例 11-3 ランキング順での表ファミリの表示
SELECT rank, tableName as tname, tabletype as type,
tablelevel as tlevel, parent, shardby as shardBy,
shardingorreferencecols as cols, unenforceableconstraints,
sizeoftable
FROM SHARDINGADVISOR_CONFIGURATIONS
WHERE tabletype = 'S'
ORDER BY rank, tlevel, tname, parent;
例11-4 最上位ランクのシャーディング構成の重複表の表示
SELECT rank, tableName as tname, tabletype as type,
tablelevel as tlevel, parent, shardby as shardBy,
shardingorreferencecols as cols, unenforceableconstraints,
sizeoftable
FROM SHARDINGADVISOR_CONFIGURATIONS
WHERE rank = 1 AND tabletype = 'D'
ORDER BY tlevel, tname, parent;
例 11-5 table_nameがルート表であるシャーディング構成の数の表示
SELECT COUNT(*)
FROM SHARDINGADVISOR_CONFIGURATIONS
WHERE tablename = 'TABLE_NAME' AND tablelevel = 0;
例 11-6 table_nameがルート表であるシャーディング構成の表ファミリの表示
SELECT rank, tableName as tname, tabletype as type,
tablelevel as tlevel, parent, shardby as shardBy,
shardingorreferencecols as cols
FROM SHARDINGADVISOR_CONFIGURATIONS
WHERE tabletype = 'S'
AND rank IN
(SELECT rank
FROM SHARDINGADVISOR_CONFIGURATIONS
WHERE tablename = 'TABLE_NAME' and tablelevel = 0)
ORDER BY rank, tlevel, tname, parent;
例11-7 ランキング順でのシャーディング構成の詳細の表示
SELECT rank, chosenbyuser,
numshardedtables as stabs, sizeofshardedtables as sizestabs,
numduplicatedtables as dtabs,
sizeofduplicatedtables as sizedtabs,
numsingleshardqueries as numssq,
nummultishardqueries as nummsq,
numcrossshardqueries as numcsq, cost
FROM SHARDINGADVISOR_CONFIGDETAILS
ORDER BY rank;
例 11-8 選択したシャーディング構成の詳細の表示
SELECT rank,
numshardedtables as stabs, sizeofshardedtables as sizestabs,
numduplicatedtables as dtabs,
sizeofduplicatedtables as sizedtabs,
numsingleshardqueries as numssq,
nummultishardqueries as nummsq,
numcrossshardqueries as numcsq, cost
FROM SHARDINGADVISOR_CONFIGDETAILS
WHERE CHOSENBYUSER = ‘Y’
ORDER BY RANK;
親トピック: シャーディング・アドバイザ・コマンドライン・ツールの使用
シャーディング・アドバイザのセキュリティ
シャーディング・アドバイザは、認証されたOCI接続を使用して非シャード・データベースに接続するクライアント側のユーティリティです。
- シャーディング・アドバイザでは、非シャードのソース・データベースに接続するために、適切な資格証明(ユーザー名およびパスワード)が必要となります。シャーディング・アドバイザは、シャーディング・アドバイザが分析するソース・データベースのスキーマを所有するユーザーとは別のユーザーとして実行できます。このユーザーには、非シャード・スキーマの表に対する
SELECT
権限が必要となります。 - このユーザーには、
GV$SQL_PLAN
ビュー、GV$SQL_PLAN_STATISTICS_ALL
ビュー、DBA_HIST_SQL_PLAN
表、DBA_HIST_SQLSTAT
表およびDBA_HIST_SNAPHSOT
表に対するSELECT
権限が必要となります。ユーザーに他の特別な権限は必要ありません。 - シャーディング・アドバイザは、権限昇格およびサービス拒否に対して脆弱ではありません。
- シャーディング・アドバイザでは、パスワード、データベース・サービス名、ユーザー名などの機密データは格納または公開されません。
- シャーディング・アドバイザは、製品の内部動作に関する機密詳細を公開しません。
- シャーディング・アドバイザには、外部に文書化されていないインタフェースまたはAPIは含まれていません。
- シャーディング・アドバイザでは、安全でないプロトコルを有効にする必要はありません。
- シャーディング・アドバイザは、保護されていないモードの操作を使用しません。
- シャーディング・アドバイザでは、データやその他の情報はファイルに格納されません。
- データベースへのすべての接続は、認証されたOCI接続を介して行われます。
- SETUID実行可能ファイルは作成されません。
- PUBLICに対する新規の付与は行われません。
- 新しいデフォルト・スキーマは作成されませんが、シャーディング・アドバイザの実行に使用されるユーザーの配下に、シャーディング・アドバイザの内部表が作成されます。
親トピック: シャーディング・アドバイザ・コマンドライン・ツールの使用