[SAP][HANA]SAP HANA mini checksって何？

# はじめに
SAP HANA Mini checksとは何か、どういうときに使えるのかについてまとめてみました。

## 
SAP NoteやコミュニティBlogを読んでいて、SAP Mini checksというワードを見にすることがある。しかし、読み進めていくと、[SAP Note 1969700](https://me.sap.com/notes/1969700/E)を指すものばかりのようです。それではとSAP Noteを読めば、添付ファイルを参照とあり、それらは展開すると400種類以上にもなります。
つまり、どれを指すのかが今一つわかりにくいという印象になります。

確かに、約10年ほど前の[Blog](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4055422/7a47ee38-0b68-494d-a6f6-7490aa710deb.png)
まだmini checksと呼ばれていなかった頃の解説記事存在します。
その記事は、当時の情報につき、現在対応している利用できる環境すべてが記載されているわけではありません。

現在対応しているとされる環境は、SAP HANA Cockpit, SAP HANA Studio, DBA CockpitのSQL Editor、hdbsqlなどの、SQLインターフェースをそろえた任意のクライアント上で実行できるとあります。この辺りは、SAP Noteの最新版を確認が必要となります。
利用の際に、DBA Cockpitは250行、SAP HANA Studioは1000行というSQL文の制限があるので、必要に応じて変更をしてほしです。また、SAP HANA Cockpitにおいては、クエリの文字数に制限がある（[SAP Note 2621976](https://me.sap.com/notes/2621976/E)）。


SAP HANA Cockpitにおいて、ZIPファイルのままSQL Statementファイルを取り込む際は、下記のようなパスにて実行をします。
<img width=400" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4055422/48bd2bb0-2d3e-45e9-80bc-2488c783df53.png">


## ファイル名から推測してみる
では、いったいmini checksとは、何を指すのででしょう。
2025年4月現在、SAP Note 1969700には、６つのZIPファイルのSQL Statement Collectionが添付されており、それぞれの中に、いわゆるmini checksと呼ばれるのであろうというものが存在します。
何をもって判断したのかといえば、ファイル名に、minichecksとあるからです。

例えば、よく使うであろうSQLStatements.zipの中には、下記のようなファイルが存在します。
- HANA_Configuration_MiniChecks_2.00.059.01+.txt
- HANA_Configuration_MiniChecks_2.00.073+.txt
- HANA_Configuration_MiniChecks_2.00.080+.txt
- HANA_Security_MiniChecks_2.00.030+.txt
- HANA_Threads_Callstacks_MiniChecks_2.00.040+.txt
- HANA_Threads_Callstacks_MiniChecks_2.00.060+.txt
- HANA_TraceFiles_MiniChecks.txt

ファイル名後部の数字は、対応しているHANA DBのバージョンであることから、実際は4種類です。

数字の利用判断は、このように行います。
例えば、
- HANA_Configuration_MiniChecks_2.00.059.01+.txt
HANA DBのバージョンが、2.00.059.01より新しい環境であれば利用することができます。
- HANA_Configuration_MiniChecks_2.00.080+.txt
後者の場合は、2.00.080より新しい必要があり、比較的最新の環境のみに対応していると判断できます。
バージョンごとに対応しているSQL Statementが異なる理由は、SAP HANA DBのそれぞれのバージョンで追加されている機能に対応しているかどうかということになります。

## ファイルの中身から判断してみる
実際の中身は、ファイルを開いてみると簡単な説明文が存在します。
例えばHANA_Configuration_MiniChecks_2.00.059.01+.txtには、
[DESCRIPTION] General SAP HANA checks
とあり、一般的なHANAのチェックであると判断できます。
出力のサンプルも掲載されており、どのような情報が取得できるかも、事前に把握することができます。
~~~
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4055422/bf0771ac-9299-4686-84a5-945fd4a1e208.png)
------------------------------------------------------------------------------------------------------------------------------------------------------
|CHID |DESCRIPTION                                    |HOST     |VALUE                                            |EXPECTED_VALUE |C|DETAILS         |
------------------------------------------------------------------------------------------------------------------------------------------------------
|**** |GENERAL                                        |         |                                                 |               | |                |
|     |                                               |         |                                                 |               | |                |
|   10|Analysis date                                  |         |2014/05/30 12:27:35                              |               | |                |
|   11|Database name                                  |         |HP1                                              |               | |                |
|   12|Revision level                                 |         |1.00.74.00.390550 (NewDB100_REL)                 |               | |                |
|  110|Everything started                             |         |yes                                              |yes            | |                |
|  111|Startup time variation (s)                     |         |1108                                             |<= 600         |X|                |
|  120|License usage (%)                              |         |72                                               |<= 95          | |                |
|  121|License expiration (days)                      |         |never                                            |>= 100         | |SAP Note 1644792|
|  130|Database log mode                              |         |normal                                           |normal         | |                |
|  140|Time since statistics server run (s)           |         |26                                               |<= 3600        | |                |
|     |                                               |         |                                                 |               | |                |
...
|**** |SQL                                            |         |                                                 |               | |                |
|     |                                               |         |                                                 |               | |                |
| 1110|SQL statement allocating > 1 session (last day)|         |6ea8ae87f49702463799a8a2a51d840c (1.10 sessions) |none           |X|                |
| 1115|Longest running current SQL statement (s)      |         |24                                               |<= 600         | |                |
| 1120|Exp. stmt. trace: SQL running > 1 h (last day) |         |0                                                |0              | |                |
| 1130|SQL cache evictions / h                        |saphana20|5829                                             |<= 1000        |X|                |
|     |                                               |         |                                                 |               | |                |
|**** |APPLICATION                                    |         |                                                 |               | |                |
|     |                                               |         |                                                 |               | |                |
| 1210|DDLOG sequence cache size                      |         |1                                                |>= 2           |X|SAP Note 1977214|
|     |                                               |         |                                                 |               | |                |
|**** |SECURITY                                       |         |                                                 |               | |                |
|     |                                               |         |                                                 |               | |                |
| 1310|Secure store (SSFS) status                     |saphana20|available                                        |available      | |                |
|     |                                               |saphana21|available                                        |available      | |                |
| 1320|Number of users with activated auditing        |         |0                                                |0              | |                |
-
~~~

このように、出力結果のサンプルを確認できることから、それぞれのSQL Statementから、どのような出力結果が得られるのかを判断することができ、何を利用するのかの判断材料になります。

ほかにも、ファイル名にMinichecksとはついていないが、時としてOSのrootユーザ同等権限を保持しないと実行取得できないであろう情報を取得できそうなSQL Statementが存在します。
例えば
- HANA_Configuration_Infrastructure_2.00.040+.txt
- HANA_Hosts_Disks_1.00.90+.txt
- HANA_Hosts_FileSystems_2.00.020+.txt
- HANA_Hosts_Network.txt
- HANA_Hosts_Overview.txt
- HANA_Hosts_Time.txt

です。

例えば、HANA_Hosts_Disks_1.00.90+.txt
~~~
------------------------------------------------------------------------------------
|HOST   |FILESYSTEM             |SIZE_GB   |USED_GB   |FREE_GB   |USED_PCT|FREE_PCT|
------------------------------------------------------------------------------------
|saphana|/                      |    500.00|    226.52|    273.47|   45.30|   54.69|
|saphana|/hana/data/C11         |  36861.86|  13169.92|  23691.94|   35.72|   64.27|
|saphana|/hana/shared/C11       |   1023.48|    193.54|    829.93|   18.91|   81.08|
|saphana|/hana/log/C11          |   1023.48|    148.34|    875.13|   14.49|   85.50|
|saphana|/usr/sap               |    127.95|      3.84|    124.10|    3.00|   96.99|
|saphana|/boot/efi              |      0.15|      0.00|      0.14|    2.95|   97.04|
|saphana|/run                   |   8794.53|      2.45|   8792.07|    0.02|   99.97|
|saphana|/dev/shm               |  13193.29|      0.00|  13193.29|    0.00|   99.99|
|saphana|/dev                   |   8794.52|      0.00|   8794.52|    0.00|   99.99|
------------------------------------------------------------------------------------
~~~
上記のように、ディスク構成、ディスクサイズや利用量などの情報が取得できます。いちいちOSにログインしなくても情報が取得できて便利です。

もちろん、このまま何も編集せずに利用できるものもあれば、変更可能箇所のパラメータを変更を行い、任意の情報を取得できるものがあります。


## SQL Statementを編集して任意の情報を取得する
編集可能なものには、文中に`Modification section`の文字列が存在します。
そのセクションに記述してあるものを参考に、例えばタイムスタンプなどの項目を書き換えて、任意の期間や件数の情報を取得することができます。

編集可能なものの例として、CPUとメモリの利用率の推移をみるなどがあります。
HANA_Resources_CPUAndMemory_2.00.060+.txt
を取り上げます。
こちらは、取得するサーバ名、データの取得開始時刻、終了時刻、取得間隔などを編集して実行する形となっていて、取得したデータは、Excelなどに出力することができるので、加工して分析して使用することができます。
SQL Statementを編集して実行といった一連の流れを紹介していた動画が[こちら](https://youtu.be/gGu7V8DS0A4)にありました。
とりあえずやってみる前に、一度見てみるとよいでしょう。
また、[SAP Note 1969700](https://me.sap.com/notes/1969700/E)に含まれるSQL Statementの実際の使用の状況を、動画で公開していたので、[そちら](https://youtu.be/J1JcHVyrXZE)も参考になると思います。


## まとめ
SAP HANA Mini checksとはと、よく聞くけれど何だろう？という素朴な疑問に対し、自分メモ的なものではありますが、まとめてみました。
添付ファイルの中には、もっと日常的に利用することで、SAP HANAがより元気に稼働できるようにと確認するためのSQL Statementが存在すると思われます。また、システム構築時などにOSから確認をしていたディスク構成なども、このSQL Statementから確認することができ、実行できるユーザの権限などの確認も必要になるでしょう。SAPからの情報は、なかなかたどり着くことができないものや、あちらこちらに点在しているものが多いですが、見つけて読解することができれば、なかなか有効な情報も多いです。一方、それらがSAPの公式文書といわれるものではないことも少なからず出てきています。情報源の確認と、最新の情報の確認を行い、できるだけ最新の情報/情報を把握する必要があります。
SAP HANA Mini checksといわれるSQL Statementsらには、参考になるSQL文や解説が盛りだくさんです。バージョン依存のものもあることから、加工したものを一人歩きで利用することは望ましくないですが、それらを参考に、快適なシステムを運用管理していきましょう。