Selamat siang, rekan-rekan. Pada artikel ini, saya ingin menyentuh topik tabel Baris. Bagi banyak administrator basis data, jenis tabel ini telah lama menjadi jenis yang paling alami, sehingga dapat dikatakan, default. Tabel tipe COLUMN terutama ditemukan di gudang data, yaitu database dengan beban dominan tipe OLAP.
Ide utama para engineer SAP ketika mengembangkan database HANA adalah untuk menyatukan dua dunia aplikasi OLTP dan OLAP. Akibatnya, tabel dengan penyimpanan kolom dalam database HANA telah menjadi tabel default, tetapi meskipun keuntungan tabel kolom dalam sejumlah besar skenario, database HANA terus menggunakan tabel string. Fitur penggunaan tabel jenis ini akan dibahas dalam artikel ini.
Tabel baris disimpan di area memori khusus yang disebut memori bersama. Ketika database dimulai, area ini sepenuhnya dimuat ke dalam memori dan tetap ada selama database beroperasi.
Dalam tabel Baris, semua data ditempatkan dalam baris satu demi satu, yang memudahkan untuk mengakses semua baris tabel. Tetapi dengan akses ke semua nilai kolom, ini sedikit lebih sulit, karena nilai-nilai ini tidak dapat ditransfer dari memori utama ke CPU dengan efisiensi yang sama seperti dalam kasus penyimpanan oleh kolom. Kompresi data dengan penyimpanan jenis ini juga kurang efisien.
Pendekatan klasik untuk database relasional, di mana data disimpan dalam format tabel, adalah penyimpanan yang menyerupai struktur logis dari sebuah tabel. Setiap catatan disimpan sebagai potongan gabungan dari nilai setiap kolom dalam tabel. Di bawah ini adalah tabel dengan tipe penyimpanan klasik.
, , . DBA.
, , . . CPU , where .
(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.
Ini menyimpulkan gambaran singkat saya tentang tabel dengan tipe penyimpanan Baris. Terlepas dari kelebihan tabel kolom, tabel string terus digunakan dalam database HANA. Pada dasarnya tabel tersebut digunakan sebagai tabel teknis atau konfigurasi dengan jumlah record yang relatif sedikit, sedangkan peran utama diberikan kepada tabel dengan tipe penyimpanan kolom.