DBおよびETLツールの高速化
CoSortツールでETLおよびDBの処理をスピードアップ
データウェアハウス性能の最適化
ETLツールはジョブの設計やデータマッピングに特化したソフトウェアですが、 大規模データの操作や変換には不向きです。かたやDBMSはデータの保管と検索にフォーカスしています。 つまるところ、大規模なソート、ジョイン、集計といったジョブは実行速度が遅くなりがちで、 引き続き実行するロード、分析、クエリ、レポーティングといった処理も遅くなったり、 別な処理パスやプロシージャで実行せざるを得なくなったりします。 BI層(ETL)における大規模データの展開、統合、クレンジングといった処理もその影響を受けます。 最終的に、これらのツールによる機密データの暗号化も不適切であったり、効果がなかったり、 あるいはその両方であったりするという結果になるかもしれません。
CoSortは、ファイルシステム内の大容量ボリュームのデータを統合し、展開してこれらの問題を解決します。 ファイルシステム内で一貫して、強力でありながらシンプルなソートコントロール言語のSortCLを使って、 CoSortはデータ処理を行います。 以下の説明を参照してCoSortのSortCLをどのように利用すればよいのかをご理解ください。
目次
- 巨大なファイルの変換
- ETLツールの処理をスピードアップ
- アンロード、ロード、再構築のパフォーマンスを最適化
- データベースのマイグレーション効率を強化
- PowerCenterの操作を高速&セキュアに
- DataStage(ソートおよび変換)の速度アップ
- ETIのデータ変換の速度アップ
- Oracleの操作を速度アップ
- DB2の性能を改善する
- Sybaseの性能を改善する
- SQL Serverの性能を改善する
巨大なファイルの変換化
フラットファイルとCoSortを使ってスマートなデータ構築を
課題
大規模なデータ操作において、データベース内やETL処理やBIツール上で大量データの統合、展開、 レポート作成に非常に長い処理時間がかかって困ったという経験はないでしょうか? その結果、高額のソフトウェアを要求されたり、 ハードウェアやアプライアンスのグレードアップを求められたりすることになったでしょう。 一方、内部データ処理の中に負荷を集中したオーバーヘッドは、 他のユーザー、ETLコンポーネントのランタイム、データベース・クエリー処理のレスポンス・タイム、 結果表示など、データ処理以降のすべての下流処理に影響します。
また、Micro Focus ISAMや可変長ブロックのようなフォーマットをシーケンシャルレコード、CSV、LDIF、 XMLなどのデスクトップ環境のフォーマットに相互変換するといったような、 メインフレームのファイルフォーマットを直接操作して変換しなければいけない局面もあるでしょう。 あるいは、レポート作成用やwhat-if分析用に、 リフォーマットしてフラットファイルで比較する必要もあるかもしれません。
解決策
フラットファイルはデータ交換に便利で一般的なフォーマットであるというだけでなく、 しばしばデータを操作して変換したりレポートを作成したりする最速の手段にもなります。 フラットファイルを使えば、フラットファイルのデータ加工ツールの中で、 CoSortが最も高速なツールであると、長年にわたり評価されてきたことがご理解いただけると思います。 1992年からCoSortはSortCLと呼ばれるいわゆる4GLを使って、バッチストリームの大容量のファイルを操作し、 一つのジョブスクリプト内およびI/Oパスで複数のデータ変換を実行します。
SortCLはオペレーティングシステム上のスタンドアロン・コマンドまたはプログラム内からの呼び出しで起動して、 ファイル操作環境の処理を加速したり既存のアプリケーションを置き換えたりします。 さらにデータベースやETL、BIツールなどの従来の処理はコーディングや保守が簡単になり、 実行時におけるリソースの利用効率を改善することになります。 なぜなら、ファイルシステムI/O、メモリ、CPUの利用において、データベースやETL、BIツールから、 ギガバイトクラスの複数ファイルの変換処理による重い負荷をSortCLが肩代わりしてくれるからです。
1つのSortCLジョブスクリプトとI/Oパスで次のことができます。
- 1つ以上の大規模なシーケンシャル・データソースの入力
- 複数のデータ変換(フィルタ、ソートなど)の実行
- 変更データの検出およびBI用途で2つ以上のファイルの比較
- リマップ、リサイズ、リフォーマット、ピボット変換
- セグメント化されカスタマイズされたレポートの作成
- データタイプとファイルフォーマットの変換
- フィールドレベルで重要データの保護・保全
- 実際のファイルおよびフォーマットに基づくセーフテストデータの生成
- 上記のような複数の出力の同時処理
実行時のパフォーマンスの豊富さに加えて、SortCLでこれらの処理をすばやくコーディングすることができます。 SortCLは読みやすい4GLを採用しており、なじみ深いデータレイアウトのシンタックス、SQL操作の概念、 集中管理されたメタデータのリポジトリなどが強化されています。 SortCLスクリプトはすべて同じ論理フロー(入力、処理、出力)に従って実行され、 同じ処理をSQL手順、Perlスクリプトで書いたものやC/COBOL/Java/VBなどで書いたプログラムよりも、 通常SortCLスクリプトはかなりステップが短くなります。
ETLツールの処理をスピードアップ
データウェアハウス設計者がCoSortを選択する理由
課題
並列処理と「プッシュダウン最適化」オプションにもかかわらず、 DWH設計者が信頼するETLツールとデータベースエンジンは、 大容量のデータ変換処理を効率よく実行することができません。 あるいは、現行システムに悪影響を与えずにパフォーマンスを向上することができません。 結果として、大規模なソート、結合、集計といったジョブは、 処理が遅くなったり処理の流れや出力結果を分割したりすることになります。
解決策
ETLツールをすでに導入していれば、CoSortで大規模なジョブの高速化が可能です。 もしまだETLを導入していなくて基本的にフラットファイルを利用しているなら、 ETLツールとしてCoSortのSortCLを利用することを検討してみてください。また、 Oracle上の大容量のデータ処理でのCoSort利用を検討しているなら、 CoSortのFast Extractツールとデータベース付属のロード機能を併用することも検討してみてください。
CoSortのソート・変換プラグインを実装したInformatica内またはDatastage内では、 ソート処理(およびダウンストリームの結合・集計・ロード処理)を直接高速化することができます。 またCoSortはKalido、 ETI、Software AG Natural、SAS、IDS TeraStreamとも連携しています。
CoSortのSortCLツールをETLパッケージと併用することもできますし、 SortCL自体を、フラットファイルを扱うETLとして考えることもできます。 さらに、メタデータを利用してSortCLの実行、処理結合、データ変換と、データ処理を並列実行で行う機能による恩恵を受けることもできます。 具体的な処理機能は次の通りです。
- ソート
- 結合
- 集計
- ルックアップ
- Perl互換の正規表現
- データタイプとファイルフォーマットの変換
- データ保護(フィールドレベルの暗号化、識別不能化など)
- 詳細レポート、デルタレポート、サマリーレポート
- テストデータ生成
シェル(バッチスクリプトまたはETLコマンド)、API、Java GUIからSortCLを呼び出すこともできます。 必要に応じてファイル、パイプ、プロシージャの前後にデータを流すこともできます。
アンロード、ロード、再構築のパフォーマンスを最適化
CoSortのツールはデータベース操作をスピードアップします
課題
データ容量が大きくなればなるほどリレーショナル・データベースのアンロード、ロード、再構築の時間は、 長くなります。
解決策
大規模なデータベースの再構築の典型的な処理にはアンロード、ソート、リロードといった処理を含んでいます。 CoSortのFast Extractツールはアンロードを高速化します。 もちろん、CoSort V9パッケージのソートエンジンは、 プライマリー・インデックス・キーをプレソートしてロード処理を高速化することで残りの処理を高速化します。
アンロードの高速化
CoSortのオプション製品Fast Extact(FACT) は、多くのUnixおよびLinuxプラットフォーム上で、 OracleおよびDB2の大きなテーブルを並列処理でアンロードすることができます。 また、FACTはCoSortのSortCLツール用のフラットファイル定義と、SQL*Loader(ダウンストリームの機能を持ち、 変換、レポート、ロードを同時に処理する機能も持つ)のメタデータ定義を生成します。 他のツールやメソッド(SQL文 SELECT * WHERE・・・などによる変換処理の負荷のない処理) によるアンロードもスピードアップします。
ソート(再構築)、変換、リフレッシュ、データ保護、レポート作成の速度向上
安全のためファイルシステム内でコピーされたデータを使って、CoSortのSortCLツールでORDER BY、JOIN、 GROUP BYのようなSQL式を実行することができます。 またSortCLの選択式のロジックやルックアップ変換を使って、分離したサブセットや結果を得たり、 変化を検出したり、テストデータさえも作成することができます。 同時にそのデータに対して、フィールドレベルの関数と書式制御でデータ保護(暗号化)を施したり、プレゼンテーション(レポート)の出力ができます。
ロードとクエリの速度向上
ロードする前にCoSortでフラットファイルをソートしておくと、 データベースのリソースを節約して大量データのロード機能が劇的に改善されます。 これが大容量データベースの再構築における最重要ポイントです。 インデックスがあらかじめソートされたテーブルではクエリの速度も向上しています。 下記のデータベースごとの詳細説明をご参照ください。
結論として、高速のアンロード、ソート、リロードは、 オンラインおよびオフラインでのデータベース操作の処理を加速します。 そしてまたこのことは、データベースのストレージ処理にも影響して、領域の解放につながり、 領域確保・解放・回収処理を軽減します。 CoSortのツールではこれらの速度向上処理と同時に、 データ保護やレポート作成処理も併せて実行することが可能です。
データベースのマイグレーション効率を強化
CoSortとフラットファイルでデータ移動の速度向上
課題
データベースの通常のライフサイクルごとの作業として新しいバージョンへの移行作業があります。 (たとえばOracle 9i から10Gへの移行)あるいは、 別システムへのリプレースにおいても概して移行作業が発生します。(たとえばDB2からSQL Serverへの移行) 多くの移行作業において、ハードウェアプラットフォーム、オペレーティングシステム、スキーマ、 関連アプリケーションなどの変更が内包されているためエクスポート/インポートの処理が増大します。
これら性質上の要件に加えて、量的な問題があるというケースもあります。 移行されるデータが大量にある場合、アンロード、変換、リロードといったジョブで、 パフォーマンスに問題を起こす恐れがあります。
解決策
CoSortツールまたは推奨される技術はアンロードのパフォーマンスを改善できます。 つまりソーステーブルを可搬性のあるフラットファイルにすることがパフォーマンス改善につながります。 フラットファイルにすることによってCoSortは次のような機能を提供します。
変換 | ソート、ジョイン、集計、レポート作成など |
---|---|
型変換 | データおよびファイルの形式 |
データ保護 | フィールドレベルの暗号化、マスク |
データ生成 | 関連性のある書式で安全なテストデータ |
CoSort SortCLは、BIおよびその他の目的のためロードする際に各フィールドのマッピングを行います。 これでスキーマ変更、新しいビュー、別のクエリー処理、プライバシー保護などの処理は並列実行が可能となり、 これらの処理をシングルパスで一括処理することも可能になります。必要に応じて新しいテーブルを生成したり、 最長のインデックス(プライマリーキー)でプレソートされてスピードアップしたファイルを ロードしたりすることができます。
Informatica: PowerCenterの操作を高速&セキュアに
ソートの高速化、プッシュアウト最適化、セキュアなテストデータ生成
課題
PowerCenterの非常に大規模なデータ変換は、コンサルティングやチューニングを依頼した後でさえ、 ときどき思いのほか処理に時間がかかる場合があります。 ボトルネックは大規模なソート、ジョイン、集計、ロード、アンロードの処理中にあります。 他のツールへの「プッシュダウン最適化」はあまり高速化されておらず、 最悪の場合はデータベース上または、より高額で複雑なプラットフォーム上に処理の負荷を移す必要があります。
もうひとつの深刻な問題として、機密データの保護処理をETLプロセスに移動する際に追加処理が必要です。 実際のアプリケーションやターゲットシステムのプロトタイプや移植のために、ロールに基づくアクセスコントロールを採用するか、大規模なテスト用のデータを実際に生成するか、参照用の本物に近いテストデータを生成する必要があります。
解決策
1) ソートの高速化
CoSortでInformatica内部のソートは劇的に高速になります。 CoSortの独自の(プラグアンドプレイ)Sorter TX AEP(for PowerCenter 7) または CT (for v8)を使用します。 このシームレスなCoSortのコンポーネントは、インターフェースの変更はしないで PowerCenterのソートスピードを最大10倍まで向上します。 それに引き続くジョイン、集計、ロードの処理時間にも効果があります。
CoSort v8 vs. Informatica v7 ソート機能ベンチマーク
固定長キー, ASCII ソート 4-CPU IBM p650
Input>> | 26.7MB | 267MB | 2.67GB |
---|---|---|---|
Sorter Tx | 8s | 1m 48s | 20m 35s |
CoSort AEP | 3s | 16s | 2m 1s |
CoSort SortCL | 1s | 7s | 1m 19s |
2) プッシュアウト最適化
データ変換、レポート作成、フィールドレベルのデータ保護の速度を向上するために、 PowerCenterまたはPowerMartと一緒にCoSortのSortCLを利用することを検討してください。 アメリカ証券取引所ではCoSortを「プッシュアウト最適化」のソリューションとして採用し、 処理時間を3倍向上させています。 CoSortを使って大規模なソート、ジョイン、集計、ロード処理を簡単にファイルシステムで実行し、 従来よりも処理時間をスピードアップすることができます。 さらに、CoSortでファイルやデータの型変換を行い、暗号化などによるフィールドのデータ保護を行い、 カスタマイズされたレポートを出力することもできます。 なお、これらすべての処理を同時に実行します。(単一のジョブスクリプトとI/Oパスで実行します。)
3)セキュアなテストデータ生成
Informatica ETLのプロトタイピングにおいてテストデータが必要な場合、 CoSortのテストデータ生成ツールRowGenを検討してみてください。 RowGenで本物らしく、正しく参照されるテストデータを生成して、 ターゲットのテーブル、データマート、ファイル、レポートのテストに使用することで、 データモデルやInformaticaのメタデータの妥当性をチェックできます。 実際、RapidACEやMeta Integration Model Bridget(MIMB)のようなツールにおいて、 CoSort(データ変換)およびRowGen(テストデータ)内にある既存の.xmlデータレイアウトを 簡単に使うことができます。
DataStage(ソートおよび変換)の速度アップ
- 1)高速ソートプラグイン
- 2)外部参照データ変換
課題
大規模なデータボリューム(100万レコード以上)では、コンサルティングを受けたり、 チューニングをしたりした後でもデータ変換が遅くなりがちです。考えられるボトルネックは、 大規模なソート、ジョイン、集計、ロードで、時としてアンロードもその要因となります。 他のレイヤーやツールの並列処理化や最適化では、もし低コストであれば大幅な改善は望めません。 また、他のユーザへ悪影響を及ぼす可能性もあります。
解決策
1) CoSortのDataStage用Sort-Stageプラグイン
DataStage用のCoSortのSort-Stageプラグインで、 DataStageサーバーエディション内のソート処理を直接高速化します。 これでインターフェースを変更することなくソート機能を10倍まで改善できます。 引き続き実行するジョイン、集計、ロードの処理時間にも効果があります。
2) DataStageから呼び出す高速データ変換
ファイルシステム内のIBM WebSphere DataStageのサーバーまたはエンタープライズ・エディションとともに CoSortのスクリプト言語 (SortCL) プログラムを実行することにより、 ソート・ジョイン・集計の高速処理が実行できます。 すべての処理を同一スクリプトおよび一つのI/Oパスで実行します。 大規模なデータ変換処理を並列に実行しながらファイルフォーマット変換やデータタイプ変換を実行し、 またフィールドレベルの暗号化や他のデータ保護処理も実行して、レポート作成、 プレソートされたロード用ファイル出力も行います。
DataStageのaggregation stageをそのまま使用する場合、CoSortはそのパフォーマンスも改善します。 aggregation stageを使用する前にsequential file stageを追加実行し、 ブレークキーでファイルを外部的にプレソートを行うSortCLスクリプトを実行します。 そしてソートされたフィールドをaggregation stageで定義します。
CoSortでは、DataStage用の本物に近いテストデータの作成も容易に行えます。 Meta Integration Technology's Model Bridge (MIMB)ソフトウェアは、 すでに定義済みのフラットファイル・レイアウト(.DSXフォーマット)で、 SortCLとRowGenのデータ定義ファイルを作成します。 これで入出力ファイルのフィールドレイアウトをマニュアルで書き直さなければいけない手間を省いてくれます。 DataStageでCoSortツールを一緒に使うと容易にこれらの作業が行えます。
ETIのデータ変換の速度アップ
CoSortのスクリプトはETIのコードテンプレートに対応しています
課題
ETI-Solutionでは、大規模データのデータ変換においてパフォーマンスのボトルネックに直面することがあります。当面の解決策は、もしあるとすれば、出力結果、処理パス、処理するデータの場所を分割することくらいで、既存のETIメタデータを強化する手段はありません。この解決策はまた、ジョブ設計に立ち返って作業をしなおさなければなりません。
解決策
ETI-Solution内で大規模データ変換の性能を直接向上させる簡単な方法があります。 既存のETIメタデータとデータ変換指示にもとづくETI-Solutionのコードテンプレートを、 CoSortのスクリプト言語 (SortCL)のフィールドレイアウトとデータ操作コマンドに組み込んで使用します。
SortCLのジョブコントロールで他の言語で書かれたスクリプトを参照するようなスタート関数をコールします。 スタート関数は他の関数をコールします。結果は、訂正されたファイル名、ソートキー、 フィールド属性などを含む実行可能なSortCLジョブスクリプトを出力したETIメタデータと連結されます。 連結されたコードサンプルについてはIRIにお問い合わせください。
Oracleの操作を速度アップ
Oracle ETL と再構築の最適化 + テストデータ
課題
次のようなボトルネックが想定されます。
- 大きなテーブルのアンロードまたはロード
- ルーチンワークの処理(再構築)
- 複雑なクエリまたはアウタージョイン
- DWH統合またはステージング
- データベース移行またはレプリケーション
- テストデータ移植
これらの問題を解決するには高度な性能診断や対処法(チューニング)に時間を費やし、 さらに高性能なハードウェアの投入も検討せざるを得ません。
解決策
CoSortでは互換性のあるメタデータによる次の3つのソリューションを提供します。
1)
CoSortのFast Extract (FACT) for Oracleはアンロードの速度を向上します。 FACTはフラットファイルに並列処理でOracleの外側でデータをダンプ出力します。 そのフラットファイルでテーブルのデータをステージング、レプリケート、レポート作成の各処理が行えます。 データウェアハウスの処理と再構築の高速化にとって、これはまた重要なファーストステップです。 フラットファイルで大規模データを高速処理します。
2)
CoSortのバージョン9 のSortCLツールは、 大規模データを高速処理するためOracleの外側でフラットファイルを処理します。
- データ変換(ソート、ジョイン、集計)
- デルタレポート(チェンジ・データ・キャプチャ)
- データ保護(たとえばカラム暗号化)
- インデックス・プレソート(最長/プライマリー テーブル・キー)
プレソートにより、CoSortはSQL*Loader処理の効率と性能を改善し、 その結果として再構築とクエリの性能も向上します。
上記1と2を同時に実行
高速な再構築、レプリケーション、暗号化、ETL、BI処理のために、 メタデータとCoSortのSortCLツールへのパイプを使ってFACTを動作させることができます。 つまりすべての処理を1つのI/Oパスで実行することが可能です。CoSortのフェーズでは次のことが可能です。
- 抽出におけるフィルタリング条件とフォーマット種類の追加
- ダイレクトパスのロードのためのプライマリー・インデックス・キーのプレソート
- 複数テーブル(ファイル)のジョインと集計
- 新しい(チェンジ)データのキャプチャとセグメント化
- データのレプリケートと移行(型変換)
- カスタマイズした詳細レコードとサマリのレポート作成
- 機密データの暗号化、識別不能化、マスキング
Oracle内部のSQLファンクションにも効果があります。 つまり、CoSortでプレソートした大きなテーブルはインデックスの生成やクエリの処理が速くなります。 オフロードしたデータ変換処理や高速化したSQL*Loaderによって節約されたストレージ領域や時間を使って、 複数のクエリ指示でさらに多くのテーブルを作成したり保守をしたりすることができます。
3)
OracleやETLの操作で安全なデータをすばやく導入するには、 CoSortの大規模テストデータ・ジェネレーター RowGenを使います。 RowGenは任意のデータモデルを使って、 ターゲットのデータベースとまったく同じ形式のテストデータを自動的に生成します。
DB2の性能を改善する
UDBのロード、再構築、ETLの最適化 + テストデータ
課題
処理時間に関して想定される次の問題の一つまたは複数に直面することがあります。
- 大きなテーブルのアンロードとロード
- ルーチンワークの処理(再構築)
- 複雑なクエリ
- データベース移行またはレプリケーション
- セキュアな関連性のあるテストデータの生成
処理性能の診断とチューニングにも時間がかかりますし、他のユーザーに影響を及ぼすかもしれません。 SQLのストアドプロシージャのプログラミング・ロジックが非能率的で、 最適化を必要としているため実行に時間がかかっているのかもしれません。 さらに、正しく参照できるテストデータを生成することも厄介な作業となります。
解決策
CoSortでは互換性のあるメタデータによる次の3つのソリューションを提供します。
1)
CoSortのFast Extract (FACT) for DB2はアンロードの速度を向上します。 FACTはフラットファイルに並列処理でDB2の外側でデータをダンプ出力します。 そのフラットファイルでテーブルのデータをステージング、レプリケート、レポート作成の各処理が行えます。 データウェアハウスの処理と再構築の高速化にとって、これはまた重要なファーストステップです。 フラットファイルで大規模データを高速処理します。
2)
CoSortのバージョン9 のSortCLツールは、 大規模データを高速処理するためDB2の外側でフラットファイルを処理します。
- データ変換(ソート、ジョイン、集計)
- デルタレポート(チェンジ・データ・キャプチャ)
- データ保護(たとえばカラム暗号化)
- インデックス・プレソート(最長/プライマリー テーブル・キー)
上記1と2を同時に実行
高速な再構築、レプリケーション、暗号化、ETL、BI処理のために、 メタデータとCoSortのSortCLツールへのパイプを使ってFACTを動作させることができます。 つまりすべての処理を1つのI/Oパスで実行することが可能です。CoSortのフェーズでは次のことが可能です。
- 抽出におけるフィルタリング条件とフォーマット種類の追加
- ダイレクトパスのロードのためのプライマリー・インデックス・キーのプレソート
- 複数テーブル(ファイル)のジョインと集計
- 新しい(チェンジ)データのキャプチャとセグメント化
- データのレプリケートと移行(型変換)
- カスタマイズした詳細レコードとサマリのレポート作成
- 機密データの暗号化、識別不能化、マスキング
CoSortのシームレスな Load Accelerator for DB2は、 UDBとESE(v5-8)へ大量データをロードする処理速度を最大6倍まで向上します。 CoSortのパラレルロードアクセラレータは、 内部のソートライブラリを互換性のあるCoSortルーチンに置き換えます。 DB2 v9ではデータベースのインデックス処理エンジンをバイパスして、大量ロードのスピードをアップするため、 データベース外部のフラットファイルをCoSortでプレソートしておくことができます。
Oracle内部のSQLファンクションにも効果があります。つまり、 CoSortでプレソートした大きなテーブルはインデックスの生成やクエリの処理が速くなります。 オフロードしたデータ変換処理や高速化したSQL*Loaderによって節約されたストレージ領域や時間を使って、 複数のクエリ指示でさらに多くのテーブルを作成したり保守をしたりすることができます。
3)
UDBやETLの操作で安全なデータをすばやく導入するには、 CoSortの大規模テストデータ・ジェネレーター RowGenを使います。 RowGenは任意のデータモデルを使って、 ターゲットのデータベースとまったく同じ形式のテストデータを自動的に生成します。
Sybaseの性能を改善する
Sybaseはデータベースのロードを高速化するため外部でのソートを推奨しています
課題
処理時間に関して想定される次の問題の一つまたは複数に直面することがあります。
- 大きなテーブルのアンロードとロード
- ルーチンワークの処理(再構築)
- 複雑なクエリ
- データベース移行またはレプリケーション
処理性能の診断とチューニングにも時間がかかりますし、他のユーザーに影響を及ぼすかもしれません。 結局のところ、SQLのストアドプロシージャのプログラミング・ロジックが非能率的で、 最適化を必要としているため実行に時間がかかっているのかもしれません。
解決策
SQL SELECT文でテーブルデータをダンプすることでフラットファイルに出力して、 再構築(およびアンロード)の処理を高速化します。 抽出したフラットファイルに対してCoSortを使って、フィルタリング、ソート、ジョイン、 グルーピング(およびレポート出力)などをパラレルに処理します。 SybaseのSQLサーバー・リファレンス・マニュアルでは、 データベースロード中のインデックス作成を高速化するため外部のソート処理を推奨しています。 複数のテーブルがクエリでインデックス順にすばやく作成されることはクエリ速度の向上にもつながります。
Sybaseでロードする前にファイルシステム上でデータをCoSortでソートしておくことにより、 次の効果があります。
- ロード性能は2~10倍高速になります。
- ロード時のソート処理は不要になります。
- データベースとディスク・アクセスのオーバーヘッドが軽減されます。
- ロード処理率(単位時間あたりの処理行数)の向上
推奨する方法としてはクラスタ化したインデックスでフラットファイルをプレソートします。
インデックスを削除した上でクラスタ化したインデックスを作成します。
- インデックスやトリガーなしでテーブルを作成するか、ロードするテーブルからインデックスやトリガーを外します。
- プライマリーインデックスをCoSortでソートします。
- 高速のbcpパスを使ってソートしたテーブルをbcpロードします。(テーブルにはインデックスはありません。)
- SQLコマンドのCREATE INDEXをSORTED_DATAオプションで実行してクラスタ化したインデックスを作成します。
SQL Serverの性能を改善する
CoSortでロード、インデックス化(クエリ)、再構築、その他処理を高速化
課題
処理時間に関して想定される次の問題の一つまたは複数に直面することがあります。
- 大きなテーブルのアンロードとロード
- ルーチンワークの処理(再構築)
- 複雑なクエリ
- マイグレーションまたはレプリケーション
処理性能の診断とチューニングにも時間がかかりますし、他のユーザーに影響を及ぼすかもしれません。 結局のところ、SQLのストアドプロシージャのプログラミング・ロジックが非能率的で、 最適化を必要としているため実行に時間がかかっているのかもしれません。
解決策
ファイルシステムのI/Oを強化するとともにCoSortのデータ変換機能により、 データベース処理で発生するオーバーヘッドを軽減します。 DISTINCT、ORDER BY、GROUP BYなどの負荷を増大するようなオプション指定のないSELECT *文により、 テーブルデータをフラットファイルにダンプ出力することで、アンロード(および再構築)を高速化します。
いったんデータをフラットファイルにしたら、CoSortのSortCLツールを使って抽出レコードに対して、 重複除外、ソート、ジョイン、グループ化(レポート作成などのため)といった処理を同時並列に実行します。 さらに、データベースのレプリケーション、テーブル・シミュレーション、フィールドレベルのデータ保護(機密データを安全にするため)などの処理を実行する場合も SortCLを活用できます。
CoSortでソートすることでロードとインデックスのスピードも向上します。パフォーマンスを良くするためSQL Serverのほとんどすべてのテーブルは、 クラスタ化されたインデックスが実装されています。 まず最初に、クラスタ化したインデックスを作成し、そして(プライマリー・インデックス・キーで)プレソートしたファイルを入力して、インデックス作成ステップの処理時間を短縮することをMicrosoftは推奨しています。インデックスを作成するときSORTED_DATAオプションを使います。
-
製品情報
-
ソリューション
-
事例紹介
-
お見積もり・試用版