SAPHANA。行ストレージタイプのテーブル

こんにちは、同僚。この記事では、行テーブルのトピックに触れたいと思います。多くのデータベース管理者にとって、このタイプのテーブルは長い間最も自然なタイプであり、いわばデフォルトです。COLUMNタイプのテーブルは、主にデータウェアハウス、つまり、OLAPタイプの負荷が支配的なデータベースで見つかりました。





HANAデータベースを開発する際のSAPエンジニアの主なアイデアは、OLTPアプリケーションとOLAPアプリケーションの2つの世界を統合することでした。その結果、HANAデータベースに列型ストレージを備えたテーブルがデフォルトのテーブルになりましたが、多くのシナリオで列型テーブルの利点があるにもかかわらず、HANAデータベースは引き続き文字列テーブルを使用します。このタイプのテーブルを使用する機能については、この記事で説明します。





行テーブルは、共有メモリと呼ばれるメモリの特別な領域に格納されます。データベースが起動すると、この領域は完全にメモリにロードされ、データベースが動作している限りそこに残ります。





行テーブルでは、すべてのデータが次々に行に配置されるため、テーブルのすべての行に簡単にアクセスできます。しかし、すべての列の値にアクセスすると、これらの値を列で保存する場合と同じ効率でメインメモリからCPUに転送できないため、少し難しくなります。このタイプのストレージを使用したデータの圧縮も効率が低下します。





データが表形式で格納されるリレーショナルデータベースの古典的なアプローチは、テーブルの論理構造に似たストレージです。各レコードは、テーブルの各列の値の連結されたチャンクとして保存されます。以下は、従来のストレージタイプの表です。





クラシックストレージを備えたテーブルの例
クラシックストレージを備えたテーブルの例

, , . DBA.





行-テーブルビューをメモリに保存
Row-store

, , . . CPU ,  where  .





行と列のストアタイプを使用してテーブルの行をスキャンする例
Row Column store

(main memory) CPU, , , . , , , ( ) .





HANA, Row-store :













  • , .









  • ,





  • , .





row-store , : b-tree cpb+-tree ( b-tree) – . , , . SAP HANA cpb+-tree string, binary string, decimal. , b-tree . row-store , ( ).





(Multiversion Concurrency Control)

Multiversion Concurrency Control (MVCC) , . , . MVCC . , .





-.





row store , , commit. , undo. M_UNDO_CLEANUP_FILES -.





Garbage Collector. commit, ( ). , ( commit rollback). , ( commit), , (main memory), . , 8 . .





( M_SERVICE_THREADS), Thread Type “MVCCGarbageCollector”. , , , , THREAD_TYPE=’SqlExecutor’ THREAD_METHOD=’CommitTrans’.





Row-store

Row-store . , HANA 1.0, . , .





Row store 64 . . row-store , . , .





. row store . , . SAP Row Store , 10Gb 30%. HANA ONLINE OFFLINE.





ONLINE HANA 1.0 SPS8. Row store. SAP HANA 2.0 SPS3 , , , , . SAP HANA 2.0 SPS4 , , . SAP online , . , , OFFLINE .





HANA 2.0 SPS4, SAP OFFLINE , . OFFLINE , . 247 row-store . , , OFFLINE , .





! OFFLINE HANA.





SAP HANA 2.0 SPS4 ONLINE . row store. 60% row-store, . , . 2789255 - Automatic Online Row Store Reorganization.





これで、行ストレージタイプのテーブルの概要は終わりです。列テーブルの利点にもかかわらず、文字列テーブルは引き続きHANAデータベースで使用されます。基本的に、このようなテーブルは、レコード数が比較的少ない技術テーブルまたは構成テーブルとして使用されますが、主な役割は、列型ストレージタイプのテーブルに与えられます。








All Articles