...

IBM Presentations: Blue Pearl Deluxe template

by user

on
Category: Documents
12

views

Report

Comments

Transcript

IBM Presentations: Blue Pearl Deluxe template
DB2 for i 概説
参考
 1988年OS/400 V1R2発表時からの一機能
– オープン系のDB2より先に発表されたRDBMS
– S/38 内臓RDB(1979年8月出荷開始)からの上位互換性
– SLSアーキテクチャー中に実装(ミドルウェアではなくH/W、
マイクロコード層に実装)
 SQL対応
– 当初からSQL対応
– V5R2で新しいSQL実行エンジン:SQE を初実装。以降SQE
に対してSQL機能を拡張
– V5R4以降で大きく機能拡張され、以降PTF, OS Ver.upに
よって機能拡張を継続
– V5R4で業界標準SQL2003 コア機能 100%対応
– ODBC、JDBC、.NETサポート
主なDBの出荷開始時期
S/38 RDB
1979年
IBM SQL/DS
1981年
DB2(メインフレーム用) 1983年
DB2 for AIX
1993年
DB2 for Windows
1995年
Oracle V2
1979年
MS SQL Server
1989年
Postgres
1989年
MySQL
1995年
 DB2 UDB(LUW)との関係性
–
–
–
–
1
RDBとしての機能は同じだが実装が異なる
管理方法も異なる
ユーティリティー、ツールも個別のものが多い
DB2ファミリー間で共通の機能を実装していく方向性
Power Systems
© 2015 IBM Corporation
IBM DB2ファミリー
 DB2には大きく3つの製品ラインがあります。
・過去の開発経緯から細
かい機能レベルでは差異
が存在。
アプリケーションからはDB2ファミリーに対し基本的に同様な操作が可能
・現在は各製品ラインの
機能を整理・統合しすべ
てのDB2製品で同じ機能
が使用可能となるよう開
発を進めています。
・例えばXMLデータベー
ス対応、RCRA等はDB2
LUWが最も早く対応し
ましたがDB2 for i でも
順次実装、機能拡張され
ています。
・カラムレベルセキュリ
ティの実装はDB2 for i
が最初、次いで他のDB2
製品でした。
2
DB2 for LUW
DB2 for z/OS
DB2 for i
L – Linux
(DB2/400)
U – UNIX
W - Windows
z/OS 用 DB2
IBM i 用 DB2
Linux, UNIX,
Windows用 DB2
© 2015 IBM Corporation
DB2 for IBM i の特徴
 DB2 for i はOSより下位のマイクロコード層で実装されています。
・DB2 for i 以外のデータベースは基本的に
はすべてOS上のアプリケーションとして稼
動します。
アプリケーション
DBミドルウェア
OS上のアプリケーションとして稼働するDB Oracle, SQL Server, DB2 LUW他
S/Wはさまざまなデメリットを享受できま
DBMS
す。
データ実体
- 表領域などDBがM/W層実装による複雑
運用管理機能
な管理を排除
- OS層での単一なパフォーマンス監視
IBM i (OS/400)
- バックアップ・回復設計を簡素化(バッ
クアップが復元できない等の障害は皆無)
運用管理機能
- OS/DB一体の堅牢なセキュリティ実装
上記のほかにもDB2 for i はアプリケーショ
ン層に対する互換性を最大限維持する設計
思想で開発されている、1OS上で4,000ス
キーマ以上をサポートする拡張性などの特
徴があります。
3
アプリケーション
Linux, UNIX, WindowsなどのOS
ハードウェア
DB2 for IBM i
DBMS
データ実体
ハードウェア
© 2015 IBM Corporation
データベース用語の対比
SQL、一般DB用語
OS/400用語
スキーマ
ライブラリー
ライブラリーは IFSでは /QSYS.LIB ディレクトリー
の下に作成されるディレクトリーとして識別される
テーブル
物理ファイル
データが入っているファイル
行
レコード
一連のフィールドを含む表の水平部分
列
フィールド
同じデータ属性を持った表の垂直部分
ビュー
論理ファイル
1つまたは複数の物理ファイルのフィールドまたはレ
コードのサブセット(データ自体は内部に持たない)
インデックス
論理ファイル
キー付けされた論理ファイル
パッケージ
SQLパッケージ
SQLステートメントの制御構造が入っているオブジェ
クト
カタログ
なし
テーブル、パッケージ、ビュー、インデックス、制約
の情報を含むテーブルとビュー
(コレクション)
4
補足
© 2015 IBM Corporation
DB2 for i の操作環境
 5250、System i ナビゲーター、IBM Navigator for iの3種類のインターフェースを提供しています。
–
5250インターフェースで対話式にSQL文を入力する際には、有償ライセンス 57xx-ST1(*)が必要
5250
PCOMM、IBM i
Access for
Windows等エミュ
レーターから実行
System i ナビゲーター
IBM i Access for
Windowsで提供されるコ
ンポーネントをWindows
PCにインストール
IBM Navigator for i
(*) 57xx-ST1: IBM DB2 Query Manager and SQL Development Kit for i
5
IBM i で HTTPサーバー
(ADMINサーバー)を開
始し、ブラウザーで2001
ポートにアクセス
© 2015 IBM Corporation
一般的なオープン系データベースとの比較
オープン系データベース
UNIT1
DB2 for i
UNIT2
データファイル
データファイル
USERDATA1.dbf
USERDATA2.dbf
テーブル EMPLOYEE
テーブル CUSTOMER
データファイル
データファイル
USERDATA4.dbf
UNIT1
表領域1
テーブル EMPLOYEE
テーブル CUSTOMER
UNIT2
テーブル EMPLOYEE
テーブル CUSTOMER
USERDATA3.dbf
表領域2
UNIT3
テーブル EMPLOYEE
EMPLOYEE
テーブル CUSTOMER
テーブル CUSTOMER
テーブル CUSTOMER
データファイル
USERDATA5.dbf
6
オープン系データベースでは
UNIT3
・物理ディスク,LUNを考慮した管理
・表領域をまたぐ移動はオブジェク
トの再作成
・テーブル毎にエクステントなどの
アロケーション管理が必要
・表領域毎に使用率の管理が必要
テーブル EMPLOYEE
テーブル CUSTOMER
DB2 for i では
・仮想化されたSLSのため物
理ディスク,LUNは意識しな
い
・表領域、テーブルエクステ
ントの概念は不要
・テーブル等のアロケーショ
ンはOSが全ディスクの使用
率を見て均等に自動割当&拡
張
© 2015 IBM Corporation
IBM iにおけるストレージ管理
WRKSYSSTS コマンド
通常のストレージ管理は
この画面だけ
*必要に応じて
WRKDSKSTSコマンド
収集サービスデータ取得
等を行います。
*外部ストレージを利用している場合
は外部ストレージ側でも管理が必
要です。
システムASP
CPU使用率(%)
画面中央(プール)
DB機能%
プールとはメインメモリのこ
と。メモリの使用状況を表示。
この値を調べることでシステ
ム全体としてのメモリの過不
足を測定可能
トータルCPU使用率と,
DB機能だけのCPU使用
率%を表示
7
システムASP使用率(%)
このシステムに接続されたトータ
ルディスク容量と使用率%
IBM i でのディスク容量管理とは
この値の監視だけ
© 2015 IBM Corporation
データベース・オブジェクトの作成方法
 2種類のインターフェースで作成可能です。
生成するオブジェクト
上段(AS/400用語)
下段(SQL用語)
DDSインターフェース
SQLインターフェース
ライブラリー
スキーマ(コレクション)
CRTLIB
CREATE SCHEMA
または
CREATE COLLECTION
物理ファイル
テーブル
CRTPF
CREATE TABLE
論理ファイル
インデックス、ビュー
CRTLF
CREATE INDEX
CREATE VIEW
8
© 2015 IBM Corporation
DDSインターフェース、SQLインターフェースの比較
(IBM i 7.2の例)
DDSインターフェース
CRTLIB
CREATE SCHEMA
CRTPF
CREATE TABLE
PF(テーブル)だけが作成される。
PFにジャーナルは自動開始されない。
9
SQLインターフェース
テーブル(PF)以外にジャーナル関連やSQL
関連のシステムテーブルが作成される。
テーブル(PF)に対しジャーナル取得が自動
設定SQL利用を前提に最適化されている事が
わかります
© 2015 IBM Corporation
補足事項
 DB2 for i ではテーブル(PF)に対するジャーナル取得は必須ではありません。このため
特にSQLを使用しないシステムではジャーナルを取得していないシステムが大多数でし
た。
 昨今ではSQLの普及に伴ってジャーナルを取得しているシステムが大半になっています
。
 かつては追加のジャーナル取得による負荷増によりパフォーマンス劣化、必要ディスク
領域増が課題となりましたが、昨今のH/Wは高性能化されているためシステム導入時に
適切なアセスが完了していれば、ほとんどのケースで大きな問題は発生しません。
 ジャーナル取得によりパフォーマンス面で懸念がある場合はOSオプション42 ジャーナ
ル・キャッシングの適用をご検討ください。
– 注意:ジャーナル・キャッシングは、システムが大きなグループでジャーナル項目をメモリーに
書き込みできるようにする、別途有料のフィーチャーです。メモリー内にいくつかのジャーナル
項目がある場合は、システムはジャーナル項目をメモリーからディスクに書き込みます。アプリ
ケーションが数多くの変更を実行する場合は、この書き込みにより、同期ディスク書き込みの回
数が減り、パフォーマンスが向上する可能性があります。ただし、ジャーナル・キャッシングを
使用する場合、ジャーナル処理されたオブジェクトに対する最新の更新の一部が異常 IPL または
独立 ASP のオンへの変更によって失われることがあります。
10
© 2015 IBM Corporation
SQL実行エンジン
CQE と SQE
 DB2/400 V5R2以降ではSQLを解釈し実行する
SQLエンジンは2種類搭載している
 CQE – V5R1以前から存在した古いSQL最適化プ
ログラム
 SQE – V5R2で新しく実装されたSQL最適化プロ
グラム
– 実行されるSQL文に応じて(たとえば副照会で
特定の構文を使用している場合はCQEで実行さ
れる、等)SQEとCQEどちらでSQLが実行され
るかがシステム的に一意に決まります。
 OSのバージョンが新しい程(同一バージョンでも
PTFレベルが新しい程)SQEで実行されるSQL文が
多くなります。
 基本的にはCQEよりSQEの方がSQLの処理速度が
速くなります。
– ただし、特定条件下では例外的にCQEの方が速
いという現象が発生しえます。
 SQLインターフェースから作成したデータベース
オブジェクトはDDSインターフェースで作成した
オブジェクトに比較してSQEが利用可能なDB統計
情報を多く提供可能になるメリットがあります
(厳密にはOSバージョン等で差異があります)。
 結果、SQEがSQL文実行時に行うアクセスプラン
の作成等をより正確に最適化できSQL処理のパ
フォーマンスが高速化する可能性が高くなります。
このため特にIBM i 7.1まではSQLインターフェー
スでテーブル等のDBオブジェクトを作成する方が
パフォーマンス上有利な場合があります。
11
© 2015 IBM Corporation
SQLパフォーマンスを向上させる基本的な考え方・アプ
ローチ
 基本的にSQEで処理させる方がパフォーマンスはよい
 SQEが必要とする統計情報を出来る限り、システムに提供する事が望ましい
– この観点ではインデックスは多い方がいい ⇔ インデックス更新時の負荷増とのトレードオフを考慮
1. より新しいOSバージョンを使用する
2. より新しいPTF(累積PTFパッケージ、DBグループPTF)を適用する
3. SQLパフォーマンスが遅い場合は、SQLパフォーマンスモニター(DBモニター)を取得してビジュアル・
エクスプレイン(Visual Explain)で分析し、対応策を施す
(ビジュアルエクスプレインでの対応策やチェックポイントの例)
 CQEが使われていないか、を確認する。
 テーブルスキャンなど処理負時間の長い処理がないかを確認し、可能ならインデックスを作成し長い処
理を回避する
 索引アドバイザーでシステムが提示する推奨インデックスを作成する
 アプリケーションのSQL構文を見直し、SQEが使用されるようにする、インデックスが使用されるよう
にする、SQL構文そのものを見直す。
 SQL構文全体の見直し
 タイムスタンプ計算をSQLでなくJAVA等のPGMで行う
 PREPAREDステートメントを使用する(頻繁に実行されるSQLを事前コンパイル化し、実行時負荷・処
理を短縮する)
12
© 2015 IBM Corporation
作成されたインデックスがSQL実行時に使用されているか?の確認
DB2 for IBM iでインデックスがSQL実行時に使用されているか?
方法1. System i ナビゲーターから確認する
– SQLパフォーマンス・モニターで該当のテーブル(物理ファイル)をモニター対象とする。SQLを実行後
にiSeriesナビゲーターから調べたい索引を右クリックし、ステートメントを表示 を選択しSQL文が表示
されていればその索引は使用されています。
方法2. DB2 for i のカタログ表をSQLで参照してインデックスの使用状況を確認する
–
–
–
–
–
–
13
インデックスの使用状況が格納されているシステム・ビュー(システム作成のLF)は
オブジェクト名 : QSYS2/SYSIXSTAT
SQLでのビュー名 : SYSINDEXSTAT
上記の表をSQL, QUERY等でアクセスして以下のカラム(フィールド)の値等を参照する
LAST_QUERY_USE,
→ このインデックスをデータアクセス用に使用した最終日付
LAST_STATISTICS_USE, → このインデックスを統計情報として利用した最終日付
© 2015 IBM Corporation
カタログ表から索引(インデックス)が使用されているか?の確認例
< インデックス最終使用日付を取得するSQLサンプル >
SELECT INDEX_NAME,
SYSTEM_TABLE_SCHEMA,
SYSTEM_TABLE_NAME, LAST_QUERY_USE, LAST_STATISTICS_USE,
QUERY_USE_COUNT, QUERY_STATISTICS_COUNT, LAST_USED_TIMESTAMP,
DAYS_USED_COUNT, INDEX_SIZE
FROM QSYS2.SYSINDEXSTAT
WHERE
SYSTEM_TABLE_SCHEMA = ‘UTFTEST‘
→物理ファイル名
AND SYSTEM_TABLE_NAME = ‘TOKMASP’ ;
→ライブラリー名
この索引が使用された最新の日時
上記いずれかの日付が有意に新しければこのインデックス
は使用されている(必要)と考えることができます。
14
どちらの日付も古い場合、このインデックスは使用されて
おらず、削除する方がパフォーマンス上有利と考える事が
出来ます。
© 2015 IBM Corporation
(参考)System i ナビゲーターによるDB統計情報表示
V5R3~
 スキーマ(ライブラリー)毎にテー
ブル(物理ファイル)のレコード数
15
 スキーマ(ライブラリー)毎にテー
ブル(物理ファイル)のカラム数
(フィールド数)などの制限値
© 2015 IBM Corporation
(参考)System i ナビゲーター 統計情報の表示
V5R3~
 最適なSQLアクセスを実行するために必要なデー
タベースの統計情報をOSが自動で収集、更新
カラムの情報を表示
カラム毎の詳細情報を表示
図はカラム毎の値の分布を表示
16
© 2015 IBM Corporation
まとめ
 DB2 for i は、1988年OS/400 V1R2発表時からの一機能としてIBM i に組み込まれ
ています
– 当初からSQL対応し、ODBC、JDBC、.NETサポートのドライバーも用意されています
 一般的なオープン系データベースとの比較して、ストレージ管理等の運用が容易です
 DB2 for iでは2種類のインターフェース(DDSインターフェース、SQLインターフェ
ース)でデータベース・オブジェクトの作成が可能です
– SQLインターフェースで作成すると、ジャーナル取得が自動設定SQL利用を前提に最適化さ
れている事がわかります
– SQLパフォーマンスを向上させるため、インデックスの使用状況やDB統計情報を確認してみ
ましょう
DB2 for iはマイクロコード層で実装されているため、ストレージ管理やセキュリティ、
パフォーマンス等、運用面でのメリットがあります!
ただし、他データベースと同様にSQLを利用する場合には、
インデックスの使用等、SQLパフォーマンスを向上させるアプローチが必要です!
17
© 2015 IBM Corporation
Fly UP