[d14] 【詳解】インメモリーデータベース sap...

41
SAPジャパン株式会社 2013/6/18 【詳解】インメモリーデータベース SAP HANA:実際 の仕組みと動きを理解しよう!

Upload: insight-technology-inc

Post on 29-Nov-2014

1.308 views

Category:

Technology


8 download

DESCRIPTION

 

TRANSCRIPT

Page 1: [D14] 【詳解】インメモリーデータベース SAP HANA:実際の仕組みと動きを理解しよう!by Toshiro Morisaki

SAPジャパン株式会社

2013/6/18

【詳解】インメモリーデータベース SAP HANA:実際の仕組みと動きを理解しよう!

Page 2: [D14] 【詳解】インメモリーデータベース SAP HANA:実際の仕組みと動きを理解しよう!by Toshiro Morisaki

© 2014 SAP AG or an SAP affiliate company. All rights reserved. 2

免責条項

このプレゼンテーションに含まれる情報は機密であり、SAPの専有情報であり、SAPの許可なく開示することはできません。このプレゼンテーションは、御社とのライセンス契約やその他のサービス、SAPとのサブスクリプションに関する合意書とは無関係です。SAPはこの文書や関連するプレゼンテーションに記載された事業を遂行することについて、またそれらに記載されている機能の開発やリリースについて何ら義務を負いません。この文書や関連するプレゼンテーション、SAPの戦略や将来的な開発、製品やプラットフォームの方針や機能についてはすべて、予告なく変更される場合があります。この文書に含まれる情報は、何らかの資料、コードまたは機能の提供を確約したり、約束したりするものではなく、また法的な義務を負うものではありません。この文書は、明示・黙示を問わず、また商品性、特定目的適合性、非侵害に関する暗黙の保証等(これらに限りません)何らの保証も提供するものではありません。この文書は情報提供の目的のもので、契約書には含まれません。SAPは誤字・脱字や誤りなどに責任を負わず、またこの文書の使用により生じた直接損害、間接損害、結果損害等(これらに限りません)、いかなる種類の損害にも責任を負いません。

将来に関する記述にはすべてに様々なリスクや不確定要素があり、実際の結果が期待値と大きく異なる場合もあります。これらの将来的な記述は書かれた時点の情報にすぎませんので、過度に信頼しないようご注意いただくとともに、購入の意思決定の根拠としないようにしてください。

Page 3: [D14] 【詳解】インメモリーデータベース SAP HANA:実際の仕組みと動きを理解しよう!by Toshiro Morisaki

© 2014 SAP AG or an SAP affiliate company. All rights reserved. 3

アプリケーションからDBへアクセス

アプリケーションサーバからのアクセス XSからのアクセス

アプリケーションからSAP HANAへアクセスする形態としては2種類あります。

Page 4: [D14] 【詳解】インメモリーデータベース SAP HANA:実際の仕組みと動きを理解しよう!by Toshiro Morisaki

© 2014 SAP AG or an SAP affiliate company. All rights reserved. 4

アプリケーションからDBへアクセス

SAP NetWeaver SQL trace (ST05)

vanilla JAVA code

• Prepare

• Open

• Fetch

• Close

Page 5: [D14] 【詳解】インメモリーデータベース SAP HANA:実際の仕組みと動きを理解しよう!by Toshiro Morisaki

© 2014 SAP AG or an SAP affiliate company. All rights reserved. 5

HANAとアプリケーション間のセッションの流れ

アプリケーション

HANA クライアントソフトウェア

HANA クライアントソフトウェア

ネットワークコミュニケーション

クエリを準備 クエリをパースするか、キャッシュからプランをフェッチ

SQL プランキャッシュ

プリペアドクエリをハンドル

プランを実行し、 結果セットを戻す

クエリをコール/open cursor

パラメータ値を提供

結果をフェッチ

結果セットクローズ/close cursor

プリペアドステートメントをクローズ

コネクションをクローズ

Execution エンジン

OLAP エンジン

Join エンジン

Calc. エンジン

SQL エンジン

カラムストア ローストア

セッションコンテキスト

SAP HANA DB Server DB クライアント

結果キャッシュ

認証 (ユーザー名 + パスワード/トークン/証明書)

Page 6: [D14] 【詳解】インメモリーデータベース SAP HANA:実際の仕組みと動きを理解しよう!by Toshiro Morisaki

© 2014 SAP AG or an SAP affiliate company. All rights reserved. 6

HANAとアプリケーション間のセッションの流れ

アプリケーション

HANA クライアントソフトウェア

HANA クライアントソフトウェア

ネットワークコミュニケーション

クエリを準備 クエリをパースするか、キャッシュからプランをフェッチ

SQL プランキャッシュ

プリペアドクエリをハンドル

プランを実行し、 結果セットを戻す

クエリをコール/open cursor

パラメータ値を提供

結果をフェッチ

結果セットクローズ/close cursor

プリペアドステートメントをクローズ

コネクションをクローズ

Execution エンジン

OLAP エンジン

Join エンジン

Calc. エンジン

SQL エンジン

カラムストア ローストア

セッションコンテキスト

SAP HANA DB Server DB クライアント

結果キャッシュ

アプリケーションは、 SAP HANA server にセッションを作成します。 セッションは、クライアントとサーバ間の会話です。 セッションは、物理的なネットワークコネクションを通じて行われます。

Page 7: [D14] 【詳解】インメモリーデータベース SAP HANA:実際の仕組みと動きを理解しよう!by Toshiro Morisaki

© 2014 SAP AG or an SAP affiliate company. All rights reserved. 7

セッションコンテキスト変数

各コネクションのセッション変数をモニタリングするVew(M_SESSION_CONTEXT)

KEYカラムにAPPLICATION変数は表示され、容易にシステムの監視を可能にするために使用される

APPLICATION :使用されているアプリケーション名

APPLICATIONUSER: ユーザー名

APPLICATIONSOURCE :データベースコールのソースの場所

APPLICATIONVERSION :DBクライアントのバージョン情報

SYSTEM 変数は、ログオン / 自動的に設定され、セッション中に変更することはできません。例えば、セッション言語はLOCALE (ISO lang code)/LOCALE_SAP (SAP internal language encoding) を介して設定されます。

USER 変数は、 (セッション毎に50個まで)自由に定義され、Viewなどを経由してセッションの外部からアクセスすることができます。 (M_SESSION_CONTEXT View, SAP HANA studio)

SECTIONカラムに表示される変数

Page 8: [D14] 【詳解】インメモリーデータベース SAP HANA:実際の仕組みと動きを理解しよう!by Toshiro Morisaki

© 2014 SAP AG or an SAP affiliate company. All rights reserved. 8

セッションコンテキスト変数 – 監視に使用

SAP HANA StudioのSessionタブから情報を見ることも可能です。

APPLICATION変数は、以下のようなモニタリングと質問に回答するための追加のメタデータを提供します。

・どのABAPモジュールがステートメントを実行しますか? ・どの SAP HANA Studio バージョンが使用されてますか? ・…

Page 9: [D14] 【詳解】インメモリーデータベース SAP HANA:実際の仕組みと動きを理解しよう!by Toshiro Morisaki

© 2014 SAP AG or an SAP affiliate company. All rights reserved. 9

HANAとアプリケーション間のセッションの流れ

アプリケーション

HANA クライアントソフトウェア

HANA クライアントソフトウェア

ネットワークコミュニケーション

クエリを準備 クエリをパースするか、キャッシュからプランをフェッチ

SQL プランキャッシュ

プリペアドクエリをハンドル

プランを実行し、 結果セットを戻す

クエリをコール/open cursor

パラメータ値を提供

結果をフェッチ

結果セットクローズ/close cursor

プリペアドステートメントをクローズ

コネクションをクローズ

Execution エンジン

OLAP エンジン

Join エンジン

Calc. エンジン

SQL エンジン

カラムストア ローストア

セッションコンテキスト

SAP HANA DB Server DB クライアント

結果キャッシュ

アプリケーションは、 SAP HANA server にセッションを作成します。 セッションは、クライアントとサーバ間の会話です。 セッションは、物理的なネットワークコネクションを通じて行われます。

indexserver.ini [session] idle_connection_timeout_application_statisticsserver=60 idle_connection_timeout_application_hdbstudio=-1 idle_connection_timeout=1440 connection_history_lifetime=60

コネクションは、管理者によって、コネクションはCancel/Kill することが可能です。

シングルDBセッションでマルチノードアクセスが可能です。 自動的にタイムアウトメカニズムに基づいてキャンセルする

ことが可能です。

Page 10: [D14] 【詳解】インメモリーデータベース SAP HANA:実際の仕組みと動きを理解しよう!by Toshiro Morisaki

© 2014 SAP AG or an SAP affiliate company. All rights reserved. 10

コネクション情報

SQL DBACockpit

M_CONNECTIONS View

コネクションステータス、クライアント情報、コネクションタイプ(ローカルかリモート)、リソース利用状況などをモニタリングするView

SQL、DBACockpit、HANA Studioからアクセスすることが可能

Page 11: [D14] 【詳解】インメモリーデータベース SAP HANA:実際の仕組みと動きを理解しよう!by Toshiro Morisaki

© 2014 SAP AG or an SAP affiliate company. All rights reserved. 11

コネクション情報 – SAP HANA Studio

Double click

一番利用しやすい方法としては、SAP HANA Studioからになります。

Page 12: [D14] 【詳解】インメモリーデータベース SAP HANA:実際の仕組みと動きを理解しよう!by Toshiro Morisaki

© 2014 SAP AG or an SAP affiliate company. All rights reserved. 12

HANAとアプリケーション間のセッションの流れ

アプリケーション

HANA クライアントソフトウェア

HANA クライアントソフトウェア

ネットワークコミュニケーション

クエリを準備 クエリをパースするか、キャッシュからプランをフェッチ

SQL プランキャッシュ

プリペアドクエリをハンドル

プランを実行し、 結果セットを戻す

クエリをコール/open cursor

パラメータ値を提供

結果をフェッチ

結果セットクローズ/close cursor

プリペアドステートメントをクローズ

コネクションをクローズ

Execution エンジン

OLAP エンジン

Join エンジン

Calc. エンジン

SQL エンジン

カラムストア ローストア

セッションコンテキスト

SAP HANA DB Server DB クライアント

結果キャッシュ

アプリケーションは、SAP HANAにSQLコマンドテキストを送信します。

SQLコマンドテキストは、解析され、検証され、最適化されコンパイルされる必要があります。

毎回、異なるSQLコマンドを使用する場合、パースするために多くの時間とリソースが必要です。

コンパイルされたプランをキャッシュすることが、パフォーマンス向上のためのキーです。

パフォーマンスを向上させるためには、パラメータ化されたSQL文を出来るだけ考えた方が良いです!

Page 13: [D14] 【詳解】インメモリーデータベース SAP HANA:実際の仕組みと動きを理解しよう!by Toshiro Morisaki

© 2014 SAP AG or an SAP affiliate company. All rights reserved. 13

パラメータ化されたステートメント…?!

実行 [F8]

select id, name from employees where id = 1 ; select id, name from employees where id = 2 ; • 2つのSQLは似ているが、異なる SQL文 • 異なるSQL文のため、各々でパーシング

とオプティマイジングが必要 • 別々にメモリ内にプランを格納し保持 • PLAN Cacheを利用する場合、ハード

コーディングされたIDナンバーが一致する時のみ利用することが可能。

1

2

通常のSQL select id, name from employees where id = ? ; • パラメータを利用するため、1ステートメ

ントでコーディング可能 • 1回のパーシングとオプティマイジング • 1つプランだけメモリ内に格納と保持 • 無期限に再利用可能

?

パラメータ化したSQL

Page 14: [D14] 【詳解】インメモリーデータベース SAP HANA:実際の仕組みと動きを理解しよう!by Toshiro Morisaki

© 2014 SAP AG or an SAP affiliate company. All rights reserved. 14

SQLプランキャッシュ

2種類の情報が含まれます。 1. パースされたステートメント 2. ステートメントが呼び出された回数やランタイムの統計情報

以下のような質問に答えることができる:

• “どのくらいの時間が、実際ステートンメントの実行に費やされたのか?"

• “ステートメントは再利用可能か?それとも何度も最適化される必要があるのか?"

ユースケースに応じてデフォルトキャッシュサイズを小さくすることができます。

indexserver.ini

[sql]

plan_cache_size=2147483648

Page 15: [D14] 【詳解】インメモリーデータベース SAP HANA:実際の仕組みと動きを理解しよう!by Toshiro Morisaki

© 2014 SAP AG or an SAP affiliate company. All rights reserved. 15

SQLプランキャッシュ

SQL DBACockpit

M_SQL_PLAN_CACHE View

SQLステートンメント、トータル実行回数、参照されているカウント、プランのメモリサイズ、平均実行時間などをモニタリングするView

SQL、DBACockpit、HANA Studioからアクセスすることが可能

Page 16: [D14] 【詳解】インメモリーデータベース SAP HANA:実際の仕組みと動きを理解しよう!by Toshiro Morisaki

© 2014 SAP AG or an SAP affiliate company. All rights reserved. 16

SQLプランキャッシュ – SAP HANA Studio モニタリング

データの容易なフィルタリングとソーティング

SAP HANA SPS8よりPlan Visualizationへナビゲーションが可能

一番利用しやすい方法としては、SAP HANA Studioからになります。

Page 17: [D14] 【詳解】インメモリーデータベース SAP HANA:実際の仕組みと動きを理解しよう!by Toshiro Morisaki

© 2014 SAP AG or an SAP affiliate company. All rights reserved. 17

ステートメント分析の向上(サマリ編)

Plan Cache: パラメータの設定を保持

SQLステートンメントが、M_SQL_PLAN_CACHEに格納されている場合、利用されたパラメータセットは、 M_SQL_PLAN_CACHE_PARAMETERS に格納されます。

StudioのAdmini editorの中のタブ Performance -> SQL Plan Cache の中で、

“Visualize Plan” や“Prepare in SQL Console”を選択する時に、格納したパラメータは使用されます。

これを利用することで、どのようなパラメータセットが利用されたのか把握することが可能です。

Page 18: [D14] 【詳解】インメモリーデータベース SAP HANA:実際の仕組みと動きを理解しよう!by Toshiro Morisaki

© 2014 SAP AG or an SAP affiliate company. All rights reserved. 18

ステートメント分析の向上(詳細編)

Plan Cache: パラメータの設定を保持 プリペアドステートメントのパラメータセットは、特定のクエリを簡単に再実行することを可能にするためにモニタリング

View M_SQL_PLAN_CACHE_PARAMETERS に格納されます。

– 最初のパラメータセットは、ステートメントのトータルの実行時間が、パラメータplan_cache_parameter_sum_threshold (default 1000ms)よりも大きい時格納されます。

– その後、パラメータ値は、ステートメントのシングル実行時間が、 パラメータplan_cache_parameter_threshold (default 100ms)で最後にキャプチャした実行時間したよりも大きい場合、変更されます。

この機能を有効にするパラメータ:

– plan_cache_parameter_enabled: プリペアド

ステートメントのパラメータ値のキャプチャを

有効/無効

– plan_cache_parameter_for_lob_enabled: BLOB/

CLOB/NCLOB のパラメータ値のキャプチャを

有効/無効

SAP HANA StudioのAdmini editorの中のタブ Performance -> SQL Plan Cache の中で、

“Visualize Plan” や“Prepare in SQL Console”を選択

する時に、格納したパラメータは使用されます。

Page 19: [D14] 【詳解】インメモリーデータベース SAP HANA:実際の仕組みと動きを理解しよう!by Toshiro Morisaki

© 2014 SAP AG or an SAP affiliate company. All rights reserved. 19

その他SQLプランキャッシュ関連情報

M_SQL_PLAN_CACHE_OVERVIEW View

ステートメントがSQLプランキャッシュから追い出されたり、キャッシュされたプランの全体の統計が格納されているモニタリングView

EVICTED_PLAN_COUNT カラムが、高い数値を示している場合、SQLプランキャッシュの容量が十分でなく、あまりにも多くのコンパイルが発生している可能性があるなどチェックすることが可能です。

M_SQL_PLAN_CACHE_RESET View

SQLプランキャッシュの最後のリセット以降を積み上げているView

Page 20: [D14] 【詳解】インメモリーデータベース SAP HANA:実際の仕組みと動きを理解しよう!by Toshiro Morisaki

© 2014 SAP AG or an SAP affiliate company. All rights reserved. 20

HANAとアプリケーション間のセッションの流れ

アプリケーション

HANA クライアントソフトウェア

HANA クライアントソフトウェア

ネットワークコミュニケーション

クエリを準備 クエリをパースするか、キャッシュからプランをフェッチ

SQL プランキャッシュ

プリペアドクエリをハンドル

プランを実行し、 結果セットを戻す

クエリをコール/open cursor

パラメータ値を提供

結果をフェッチ

結果セットクローズ/close cursor

プリペアドステートメントをクローズ

コネクションをクローズ

Execution エンジン

OLAP エンジン

Join エンジン

Calc. エンジン

SQL エンジン

カラムストア ローストア

セッションコンテキスト

SAP HANA DB Server DB クライアント

結果キャッシュ

パース処理の結果、アプリケーションは解析されたステートメントのハンドルを取得します。

このハンドルで、アプリケーションは、SQL プランキャッシュから直接解析済みのステートメントにアクセスし、時間を節約することが可能です。

Page 21: [D14] 【詳解】インメモリーデータベース SAP HANA:実際の仕組みと動きを理解しよう!by Toshiro Morisaki

© 2014 SAP AG or an SAP affiliate company. All rights reserved. 21

HANAとアプリケーション間のセッションの流れ

アプリケーション

HANA クライアントソフトウェア

HANA クライアントソフトウェア

ネットワークコミュニケーション

クエリを準備 クエリをパースするか、キャッシュからプランをフェッチ

SQL プランキャッシュ

プリペアドクエリをハンドル

プランを実行し、 結果セットを戻す

クエリをコール/open cursor

パラメータ値を提供

結果をフェッチ

結果セットクローズ/close cursor

プリペアドステートメントをクローズ

コネクションをクローズ

Execution エンジン

OLAP エンジン

Join エンジン

Calc. エンジン

SQL エンジン

カラムストア ローストア

セッションコンテキスト

SAP HANA DB Server DB クライアント

結果キャッシュ

カーソルをCALL/OPEN/実行 パラメータ値を提供し、プリペアドクエリを実行します。

SAP HANA は、複数の実行エンジンを使用します。 カラムストアテーブルかローストアテーブルに格納されているかで、実

行するエンジンが異なります。 カラムストアテーブルのJoin Join Engine (JE-POPs) OLAP query support OLAP Engine (OE, BW-POPs) 複雑な計算 Calculation engine (CE-POPs) 残りは、SQLエンジンで処理

Page 22: [D14] 【詳解】インメモリーデータベース SAP HANA:実際の仕組みと動きを理解しよう!by Toshiro Morisaki

© 2014 SAP AG or an SAP affiliate company. All rights reserved. 22

SAP HANAモデリングの基本原則

Column

Store

OLAP

Engine

Join

Engine

Calculation Engine

クライアント /

アプリケーション

A B C D

A B C D G Y

D G

A G Y

A G Y Z

下位のレイヤーで可能な限りデータを絞る。(CONSTRAINTS, WHERE 節,Analytical Priveleage..)

データレコードを小さくする (例えば、 GROUP BYの使用や使うカラムを少なくする)

HANA DBとクライアントアプリケーション間のデータ転送を少なくする (例えば. HAVING, TOP, LIMIT, ...)

- 計算処理はアグリケーションより後に実行.

- 複雑な式を避ける (IF, CASE, ... )

キー項目やインデックスの存在する項目でジョインする

アグリケーションの前の計算や、各行レベルでの計算を避ける

ビュー間(エンジン間)のデータ転送を少なくする

Calc View

Analytic

View Attribute

View

Page 23: [D14] 【詳解】インメモリーデータベース SAP HANA:実際の仕組みと動きを理解しよう!by Toshiro Morisaki

© 2014 SAP AG or an SAP affiliate company. All rights reserved. 23

HANAの内部でどのように動いているのか知る方法

Visualize PlanとTime Lineの活用

Visualize Planは、どのような順番で動いているのか、そして何件のデータが引き渡されているのかを把握することが可能です。

Time Lineは、どのように動いているのか、並列に動いているものはどれなのかを把握することが可能です。

Execution Plan

Visualization

Execution Plan

timeline

Page 24: [D14] 【詳解】インメモリーデータベース SAP HANA:実際の仕組みと動きを理解しよう!by Toshiro Morisaki

© 2014 SAP AG or an SAP affiliate company. All rights reserved. 24

HANAの内部でどのように動いているのか知る方法

=

最初のSPS2から提供されたExplain Planは、実行中にどこで時間が費やされているのか、私たちに伝えることが出来ませんでした。

Visual Plan内では、時間の把握は可能ですが複雑になると、どこで問題が発生しているのか把握に時間が掛かります。

Visualize Plan Explain Plan

Page 25: [D14] 【詳解】インメモリーデータベース SAP HANA:実際の仕組みと動きを理解しよう!by Toshiro Morisaki

© 2014 SAP AG or an SAP affiliate company. All rights reserved. 25

HANAの内部でどのように動いているのか知る方法

ステートメント分析の向上

Plan Visualizer用のOperator List Operator List は、現在のプランの全オペレータの詳細な特性をリストします。

関心がある特定のオペレータを絞り込むためには、フィルタの設定に従ってオペレータセットを動的に探索するために使用することができます。

例えば、

– あるCPU Time以上を

消費しているすべての

オペレータをフィルタ

– そして、Input行の数に 沿ってこれらのオペレ

ータを並べる

– さらに、特定のオペレ

ータタイプでフィルタ

(例えば、 "Column Search”)

– その後、関心のあるオペレータをダブルクリックすることで、 Visualized plan内の位置にリンクされ、場所を確認することも可能です。

Page 26: [D14] 【詳解】インメモリーデータベース SAP HANA:実際の仕組みと動きを理解しよう!by Toshiro Morisaki

© 2014 SAP AG or an SAP affiliate company. All rights reserved. 26

HANAの内部でどのように動いているのか知る方法 Expensive Statements Trace

シングルステートメントのランタイム情報を提供

パラメータ化したステートメントのパラメータの値をキャプチャ

簡単に、実行時間の長いステートメントにフォーカスするように構成することが可能

長時間実行されているSQLを抽出する機能です。これは、設定した経過時間の閾値を超えたSQLについてトレースします。

Page 27: [D14] 【詳解】インメモリーデータベース SAP HANA:実際の仕組みと動きを理解しよう!by Toshiro Morisaki

© 2014 SAP AG or an SAP affiliate company. All rights reserved. 27

HANAの内部でどのように動いているのか知る方法 Expensive Statements Trace

ナビゲーション

Page 28: [D14] 【詳解】インメモリーデータベース SAP HANA:実際の仕組みと動きを理解しよう!by Toshiro Morisaki

© 2014 SAP AG or an SAP affiliate company. All rights reserved. 28

HANAの内部でどのように動いているのか知る方法 Expensive Statements Trace とSQL Plan Cache

Plan Visualizer へ直接アクセス Expensive Statements Trace と SQL Plan Cache から、特定ステートメントのvisualized plan を表示することが可能にな

りました。

Page 29: [D14] 【詳解】インメモリーデータベース SAP HANA:実際の仕組みと動きを理解しよう!by Toshiro Morisaki

© 2014 SAP AG or an SAP affiliate company. All rights reserved. 29

HANAの内部でどのように動いているのか知る方法 Expensive Statements Trace と SQL Plan Cache

Expensive Statements TraceとSQL Plan Cache間のリンク

Expensive Statements Trace と SQL Plan Cache view 間のナビゲーションが改善されました。

コンテキストメニューオプション Navigate Toを使用して特定のステートメントを表示することが可能です。

Page 30: [D14] 【詳解】インメモリーデータベース SAP HANA:実際の仕組みと動きを理解しよう!by Toshiro Morisaki

© 2014 SAP AG or an SAP affiliate company. All rights reserved. 30

モデリング環境でのパフォーマンス分析

モデリング環境でのパフォーマンス分析モード

HANA Model Editorの中のパフォーマンス分析のヒントと指標を紹介します。

– マニュアルあるいはデフォルトでスイッチオン

– テーブル分割と行数についてのヒントと指標

パーティションテーブル用のシナリオ指標 (アイコン)

行の閾値を超えた場合のアイコン

パフォーマンス 分析モードのスイッチ

Detail パネルを見る: アイコンによりパーティショニングのタイプを表示(hash, range, …)

Performance analysis: パーティションニングとローカウント情報

Page 31: [D14] 【詳解】インメモリーデータベース SAP HANA:実際の仕組みと動きを理解しよう!by Toshiro Morisaki

© 2014 SAP AG or an SAP affiliate company. All rights reserved. 31

HANAとアプリケーション間のセッションの流れ

アプリケーション

HANA クライアントソフトウェア

HANA クライアントソフトウェア

ネットワークコミュニケーション

クエリを準備 クエリをパースするか、キャッシュからプランをフェッチ

SQL プランキャッシュ

プリペアドクエリをハンドル

プランを実行し、 結果セットを戻す

クエリをコール/open cursor

パラメータ値を提供

結果をフェッチ

結果セットクローズ/close cursor

プリペアドステートメントをクローズ

コネクションをクローズ

Execution エンジン

OLAP エンジン

Join エンジン

Calc. エンジン

SQL エンジン

カラムストア ローストア

セッションコンテキスト

SAP HANA DB Server DB クライアント

結果キャッシュ

一度結果セットが計算されると、クライアントがカーソルをクローズするまではSAP HANAサーバに結果を保持します。

メモリアロケーション! 更新処理されたレコードバージョンは、排他ロックが設定されている場合、保存する必要があります。

クライアントは、すべてのレコードを取得しない方法を検討することも可能です。 例えば、最初の10個の結果行を表示する、 SELECT TOP 10.. /LIMIT 10 を有効に活用!

Page 32: [D14] 【詳解】インメモリーデータベース SAP HANA:実際の仕組みと動きを理解しよう!by Toshiro Morisaki

© 2014 SAP AG or an SAP affiliate company. All rights reserved. 32

HANAとアプリケーション間のセッションの流れ

アプリケーション

HANA クライアントソフトウェア

HANA クライアントソフトウェア

ネットワークコミュニケーション

クエリを準備 クエリをパースするか、キャッシュからプランをフェッチ

SQL プランキャッシュ

プリペアドクエリをハンドル

プランを実行し、 結果セットを戻す

クエリをコール/open cursor

パラメータ値を提供

結果をフェッチ

結果セットクローズ/close cursor

プリペアドステートメントをクローズ

コネクションをクローズ

Execution エンジン

OLAP エンジン

Join エンジン

Calc. エンジン

SQL エンジン

カラムストア ローストア

セッションコンテキスト

SAP HANA DB Server DB クライアント

結果キャッシュ

カーソルをクローズすると、サーバから結果セットを削除します。

ステートメントハンドルをクローズするとSQLプランキャッシュ内のステートンメントの参照カウンタが減ります。(すぐには何も解放しませんが、ステートメントがセッションで参照されない時は、キャッシュから削除可能です。)

コネクションをクローズするとセッションも終了し、暗黙的にすべてのロックをリリースします。

Page 33: [D14] 【詳解】インメモリーデータベース SAP HANA:実際の仕組みと動きを理解しよう!by Toshiro Morisaki

© 2014 SAP AG or an SAP affiliate company. All rights reserved. 33

モニタリングダッシュボード

SAPUI5ベースのモニタリングダッシュボード システムヘルスと構成の主な外観を可視化するWebブラ

ウザーベースダッシュボード

例えば、:

– 現在の高と中の優先度のアラート

– メモリとCPU使用率

– データバックアップの可用性

詳細情報を知りたい場合、ドリルダウン

Page 34: [D14] 【詳解】インメモリーデータベース SAP HANA:実際の仕組みと動きを理解しよう!by Toshiro Morisaki

© 2014 SAP AG or an SAP affiliate company. All rights reserved. 34

モニタリングダッシュボード

その他SAPUI5ベースのモニタリング メモリの使用率とリソース使用率を可視化するWebブラ

ウザーベースモニタリング

Memory Overview

Resource Utilization

Page 35: [D14] 【詳解】インメモリーデータベース SAP HANA:実際の仕組みと動きを理解しよう!by Toshiro Morisaki

© 2014 SAP AG or an SAP affiliate company. All rights reserved. 35

Memory Overview

Page 36: [D14] 【詳解】インメモリーデータベース SAP HANA:実際の仕組みと動きを理解しよう!by Toshiro Morisaki

© 2014 SAP AG or an SAP affiliate company. All rights reserved. 36

SAP HANAメモリ管理

SAP HANA Resident Memory SAP HANA Virtual Memory SAP HANA Used Memory

Page 37: [D14] 【詳解】インメモリーデータベース SAP HANA:実際の仕組みと動きを理解しよう!by Toshiro Morisaki

© 2014 SAP AG or an SAP affiliate company. All rights reserved. 37

Resource Utilization

Page 38: [D14] 【詳解】インメモリーデータベース SAP HANA:実際の仕組みと動きを理解しよう!by Toshiro Morisaki

© 2014 SAP AG or an SAP affiliate company. All rights reserved. 38

最新のSAP HANAホワイトペーパー

最新のSAP HANA SPS08に対応したリニューアル版!

SAP Forumで配布開始です。

SAP Forum

東京7月11日(金)グランドハイアット

詳細・申込 http://www.sap.com/japan/sapft/

大阪7月23日(水)リッツカールトン大阪

詳細・申込 http://www.sap.com/japan/sapfo/

Page 39: [D14] 【詳解】インメモリーデータベース SAP HANA:実際の仕組みと動きを理解しよう!by Toshiro Morisaki

© 2014 SAP AG or an SAP affiliate company. All rights reserved. 39

SAPセッション

タイトル:【詳解】インメモリーデータベース SAP HANA:永続化の仕組みと障害/災害対応を踏まえた運用を理解しよう!

概要:SAP HANAは全てのデータをメモリー上に載せて処理を行います。それ故にデータの永続性に対して疑問を持つ方もいらっしゃいますが、そこは不揮発性のストレージ領域に保存する仕組みが備わっています。このため、バックアップや障害・災害対策を検討する際はこの永続化の仕組みを正しく理解しておく必要があります。このセッションでは、SAP HANAの永続化を担保する基本的なメカニズムと、バックアップ/リストア、システムレプリケーションについて説明し、障害・災害対策を踏まえた運用を考察します。

6月19日(木) B25 :16:00 - 16:50

Page 40: [D14] 【詳解】インメモリーデータベース SAP HANA:実際の仕組みと動きを理解しよう!by Toshiro Morisaki

© 2014 SAP AG or an SAP affiliate company. All rights reserved. 40

小森 博之

すべてのデータをメモリー上で処理するアーキテクチャーを備えたデータベースシステムが今脚光を浴びています。独SAPの「Hana」を始め、米マイクロソフトが「SQL Server 2014」で実装し、米Oracleが次期バージョンで追随します。それ

ぞれ実装技術は異なり、何を選択したらいいのか、またその高速性ゆえ、「リアルタイム処理」も期待され、ますます悩み多きとなりました。そんな皆様のご要望にそれぞれの製品を徹底的に比較し、得意、不得意を明らかにします。またコンピュータシステムとの親和性も忘れてはいけません。コンピューターメーカーの視線も交え、事例を織り交ぜつつご紹介します。

三宅 祐典

インメモリーデータベースの時代は確実にやってきています。HPは現在の業界の動きと2020年までに実現を目指す技術をご紹介。また、今導入できるS/W技術を最適に実装できるコンピューター、サーバーをご紹介します。インメモリーテクノロジーはS/W技術と、H/W技術の双方が高度に融合して実現します。あなたも近未来を体感してみませんか。

Software (Database System) Perspective

Hardware Perspective

Future Technology

SAP HANAに出会える次のセッションご紹介 日本ヒューレット・パッカードがインメモリーを語るセッション

[CORE TECH] Hardware

インメモリーデータベース徹底比較 6月20日 D35

16:00-16:50

[CORE TECH] Hardware

HDDからインメモリーテクノジーへ 6月20日 A34

15:00-15:50

Page 41: [D14] 【詳解】インメモリーデータベース SAP HANA:実際の仕組みと動きを理解しよう!by Toshiro Morisaki

© 2014 SAP AG or an SAP affiliate company. All rights reserved.

Thank you

Contact information:

Toshiro Morisaki

Senior Solution Engineer

E-Mail:[email protected]