Slide 1

Slide 1 text

© 2023 Database Technology Inc. All Rights Reserved. HeatWaveとMDS 性能比較してみた 2023/8/7(月) 株式会社データベーステクノロジ システム技術G 後藤義雄

Slide 2

Slide 2 text

© 2023 Database Technology Inc. All Rights Reserved. 2 自己紹介 後藤 義雄(Yoshio Goto) X(twitter):@gotodti - 株式会社データベーステクノロジ (主にインフラ担当) - OracleDatabase業務従事 - クラウド業務従事 - 休日の過ごし方:ウォーキング

Slide 3

Slide 3 text

© 2023 Database Technology Inc. All Rights Reserved. 3 弊社のご紹介 会社概要 事業内容 屋号 株式会社データベーステクノロジ https://www.db-tec.com/ 所在地 京都市中京区柳八幡町65番地 設立 1995年7月12日 パートナー資格 ORACLE Cloud Sell Partner 許認可 Pマーク(第20002140号) クラウドサービス事業 インフラ基盤構築・Lift&Shift・運用監視アウトソース データベース関連事業 Oracle Master認定技術者によるデータベース設計/構築/運用 MySQLやSQLサーバについても対応可能 ソフトウェア開発事業 生産管理・販売管理・会計管理・営業支援 業種:金融・製薬・小売/レンタル・メーカー・学術/研究機関 ERPパッケージ導入事業 Oracle E-Business Suite© マスコット キャラクター データベーチュ 親子 沿革 1995年 DB構築サービスを専業として大阪市中央区に設立 2001年 DBパフォーマンス測定サービスを開始 2010年7月 本社を京都市中京区へ移転 2015年8月 日本オラクル社とパートナー契約締結 2015年9月 らくがきSQLを IT Pro EXPOへ出展 2019年12月 メール/チャット自動変換サービス chatveryをリリース

Slide 4

Slide 4 text

© 2023 Database Technology Inc. All Rights Reserved. 4 ちなみに…YouTubeチャンネルやってます! チャンネル登録 お願いします! https://www.youtube.com/@databasetechnologyinc.7441/

Slide 5

Slide 5 text

© 2023 Database Technology Inc. All Rights Reserved. 5 HeatWave MDS

Slide 6

Slide 6 text

© 2023 Database Technology Inc. All Rights Reserved. 6

Slide 7

Slide 7 text

© 2023 Database Technology Inc. All Rights Reserved. 7 名称:山崎さんの提案に則っています

Slide 8

Slide 8 text

© 2023 Database Technology Inc. All Rights Reserved. 8 HeatWave MDS

Slide 9

Slide 9 text

© 2023 Database Technology Inc. All Rights Reserved. 9 テスト環境 クライアント MDS MDSノード HeatWaveノード クライアント シェイプ VM.Standard.E3.Flex CPU 2 OCPU メモリ 16 GB ストレージ 1024 GB DBシステム 構成 MDS HeatWave シェイプ VM.Standard.E3.16.256GB HeatWave.VM.Standard.E3 CPU 16 OCPU 16 OCPU メモリ 256 GB 512 GB ストレージ 1024 GB 1024 GB(HeatWave 2ノード) HeatWave

Slide 10

Slide 10 text

© 2023 Database Technology Inc. All Rights Reserved. 10 やったこと  スタースキーマベンチマーク(SSB)のちょっと変形  Like検索 全文検索(青空文庫のデータ利用)  無理やりHeatwave利用

Slide 11

Slide 11 text

© 2023 Database Technology Inc. All Rights Reserved. 11 スタースキーマベンチ 処理の流れ データCSV 作成(dbgen 実行 unit=100) テーブル作成(SSB) データ流し込み 非正規化テーブル作成 評価SQL 実行

Slide 12

Slide 12 text

© 2023 Database Technology Inc. All Rights Reserved. 12 スタースキーマベンチ 処理の流れ データ流し込み 非正規化テーブル作成 評価SQL 実行 データCSV 作成(dbgen 実行 unit=100) テーブル作成(SSB)

Slide 13

Slide 13 text

© 2023 Database Technology Inc. All Rights Reserved. 13 dbgen コンパイル データ生成 ※-s 100 は約6億行(67 GB) $ git clone https://github.com/vadimtk/ssb-dbgen.git $ cd ssb-dbgen $ make $ ./dbgen -s 100 -T c $ ./dbgen -s 100 -T l $ ./dbgen -s 100 -T p $ ./dbgen -s 100 -T s データCSV 作成(dbgen 実行 unit=100)

Slide 14

Slide 14 text

© 2023 Database Technology Inc. All Rights Reserved. 14 スタースキーマベンチ 処理の流れ データCSV 作成(dbgen 実行 unit=100) テーブル作成(SSB) データ流し込み 非正規化テーブル作成 評価SQL 実行

Slide 15

Slide 15 text

© 2023 Database Technology Inc. All Rights Reserved. 15 4テーブル 分作成 customer part supplier lineorder テーブル作成(SSB) lineorder表は 分割作成 一気にloadしようとすると ERROR 1197 発生 max_binlog_cache_size が不足

Slide 16

Slide 16 text

© 2023 Database Technology Inc. All Rights Reserved. 16 意味なく掲載

Slide 17

Slide 17 text

© 2023 Database Technology Inc. All Rights Reserved. 17 スタースキーマベンチ 処理の流れ データCSV 作成(dbgen 実行 unit=100) テーブル作成(SSB) データ流し込み 非正規化テーブル作成 評価SQL 実行

Slide 18

Slide 18 text

© 2023 Database Technology Inc. All Rights Reserved. 18  lineorder分割表へはcsvファイルを分割してそれぞれ insert mysql>LOAD DATA LOCAL INFILE 'customer.tbl' INTO TABLE customer FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'; mysql>LOAD DATA LOCAL INFILE 'part.tbl' INTO TABLE part FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'; mysql>LOAD DATA LOCAL INFILE 'supplier.tbl' INTO TABLE supplier FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'; データ流し込み

Slide 19

Slide 19 text

© 2023 Database Technology Inc. All Rights Reserved. 19 スタースキーマベンチ 処理の流れ データCSV 作成(dbgen 実行 unit=100) テーブル作成(SSB) データ流し込み 非正規化テーブル作成 評価SQL 実行

Slide 20

Slide 20 text

© 2023 Database Technology Inc. All Rights Reserved. 20 非正規化テーブル作成 行数 6億 行 (600,037,902行) データサイズ 237GB(255,246,467,072Bytes)

Slide 21

Slide 21 text

© 2023 Database Technology Inc. All Rights Reserved. 21 データ流し込み、 正規化の時間 MDS HeatWave 各テーブル Load時間 03:46:13 03:51:47 非正規化 (lineorder_flat作成) 06:29:21 06:58:14 PK追加 04:13:33 03:00:59 合計 14:29:07 13:51:00 PK追加で時間差が出ているが メモリ搭載量に影響されたと考えられる

Slide 22

Slide 22 text

© 2023 Database Technology Inc. All Rights Reserved. 22 スタースキーマベンチ 処理の流れ データCSV 作成(dbgen 実行 unit=100) テーブル作成(SSB) データ流し込み 非正規化テーブル作成 評価SQL 実行

Slide 23

Slide 23 text

© 2023 Database Technology Inc. All Rights Reserved. 23 HeatWaveのお約束

Slide 24

Slide 24 text

© 2023 Database Technology Inc. All Rights Reserved. 24 HeatWave環境でのおまじない  lineorder_flat 表に対して HeatWaveを有効化します mysql> ALTER TABLE lineorder_flat SECONDARY_ENGINE=RAPID; • lineorder_flat 表をHeatWaveへロード mysql> ALTER TABLE lineorder_flat SECONDARY_LOAD; ロード時間 00:07:15

Slide 25

Slide 25 text

© 2023 Database Technology Inc. All Rights Reserved. 25 評価SQL 実行 Q1.1 SELECT sum(LO_EXTENDEDPRICE * LO_DISCOUNT) AS revenue FROM lineorder_flat WHERE DATE_FORMAT(LO_ORDERDATE, '%Y') = '1993' AND LO_DISCOUNT BETWEEN 1 AND 3 AND LO_QUANTITY < 25; Q1.2 SELECT sum(LO_EXTENDEDPRICE * LO_DISCOUNT) AS revenue FROM lineorder_flat WHERE DATE_FORMAT(LO_ORDERDATE, '%Y%m') = '199401' AND LO_DISCOUNT BETWEEN 4 AND 6 AND LO_QUANTITY BETWEEN 26 AND 35; Q1.3 SELECT sum(LO_EXTENDEDPRICE * LO_DISCOUNT) AS revenue FROM lineorder_flat WHERE WEEK(LO_ORDERDATE) = 6 AND DATE_FORMAT(LO_ORDERDATE, '%Y') = '1994' AND LO_DISCOUNT BETWEEN 5 AND 7 AND LO_QUANTITY BETWEEN 26 AND 35; Q4.3 SELECT DATE_FORMAT(LO_ORDERDATE, '%Y') AS year, S_CITY, P_BRAND, sum(LO_REVENUE - LO_SUPPLYCOST) AS profit FROM lineorder_flat WHERE S_NATION = 'UNITED STATES' AND (DATE_FORMAT(LO_ORDERDATE, '%Y') = '1997' OR DATE_FORMAT(LO_ORDERDATE, '%Y') = '1998') AND P_CATEGORY = 'MFGR#14' GROUP BY year, S_CITY, P_BRAND ORDER BY year ASC, S_CITY ASC, P_BRAND ASC; Q2.1 SELECT sum(LO_REVENUE), DATE_FORMAT(LO_ORDERDATE, '%Y') AS year, P_BRAND FROM lineorder_flat WHERE P_CATEGORY = 'MFGR#12' AND S_REGION = 'AMERICA' GROUP BY year, P_BRAND ORDER BY year, P_BRAND; 合計 13 SQL

Slide 26

Slide 26 text

© 2023 Database Technology Inc. All Rights Reserved. 26 評価SQL 実行 12:10:43 03:36:04 0 00:00:45 00:00:00 02:00:00 04:00:00 06:00:00 08:00:00 10:00:00 12:00:00 14:00:00 レスポンス時間 合計の比較 MDS 索引無し MDS 索引有り 系列4 HeatWave 約1000分の1 約300分の1

Slide 27

Slide 27 text

© 2023 Database Technology Inc. All Rights Reserved. 27 追加で作成した索引 ALTER TABLE lineorder_flat add KEY index1 (LO_DISCOUNT,LO_QUANTITY,LO_ORDERDATE_YEAR,LO_ORDERDATE_WEEK), add KEY index2 (LO_DISCOUNT,LO_QUANTITY,LO_ORDERDATE_MONTH), add KEY index4 (S_REGION,P_CATEGORY,P_BRAND,LO_ORDERDATE_YEAR), add KEY index5 (S_REGION,P_BRAND, LO_ORDERDATE_YEAR), add KEY index7 (C_REGION,S_REGION,LO_ORDERDATE_YEAR,C_NATION,S_NATION), add KEY index8 (C_NATION,S_NATION,C_CITY,S_CITY,LO_ORDERDATE_YEAR), add KEY index9 (C_CITY,S_CITY,LO_ORDERDATE_YEAR), add KEY index10 (C_CITY,S_CITY,LO_ORDERDATE_MONTH), add KEY index11 (C_REGION,S_REGION,P_MFGR,LO_ORDERDATE_YEAR,C_NATION,S_NATION,P_CATEGORY), add KEY index13 (S_NATION,P_CATEGORY,LO_ORDERDATE_YEAR,S_CITY,P_BRAND) ;

Slide 28

Slide 28 text

© 2023 Database Technology Inc. All Rights Reserved. 28 00:54:16 01:25:11 1.65秒 00:55:05 00:49:14 1.70秒 00:54:36 00:49:05 1.79秒 00:56:52 00:04:53 2.12秒 00:57:39 00:00:49 2.96秒 00:57:03 00:00:06 1.87秒 00:59:03 00:17:00 5.26秒 00:58:44 00:00:55 3.94秒 00:57:22 00:00:02 4.43秒 00:56:18 00:00:00 3.48秒 00:56:29 00:08:19 3.94秒 00:54:07 00:00:19 6.35秒 00:53:10 00:00:11 5.06秒 12:10:43 03:36:04 44.55秒 0% 10% 20% 30% 40% 50% MDS 索引なし MDS 索引あり HeatWave 100% ベンチマーク各種SQLの時間の割合 Q4.3 Q4.2 Q4.1 Q3.4 Q3.3 Q3.2 Q3.1 Q2.3 Q2.2 Q2.1 Q1.3 Q1.2 Q1.1

Slide 29

Slide 29 text

© 2023 Database Technology Inc. All Rights Reserved. 29 00:54:16 01:25:11 1.65秒 00:55:05 00:49:14 1.70秒 00:54:36 00:49:05 1.79秒 00:56:52 00:04:53 2.12秒 00:57:39 00:00:49 2.96秒 00:57:03 00:00:06 1.87秒 00:59:03 00:17:00 5.26秒 00:58:44 00:00:55 3.94秒 00:57:22 00:00:02 4.43秒 00:56:18 00:00:00 3.48秒 00:56:29 00:08:19 3.94秒 00:54:07 00:00:19 6.35秒 00:53:10 00:00:11 5.06秒 12:10:43 03:36:04 44.55秒 0% 10% 20% 30% 40% 50% MDS 索引なし MDS 索引あり HeatWave 100% ベンチマーク各種SQLの時間の割合 Q4.3 Q4.2 Q4.1 Q3.4 Q3.3 Q3.2 Q3.1 Q2.3 Q2.2 Q2.1 Q1.3 Q1.2 Q1.1

Slide 30

Slide 30 text

© 2023 Database Technology Inc. All Rights Reserved. 30 評価SQL 実行 12:10:43 03:36:04 0 00:00:45 00:00:00 02:00:00 04:00:00 06:00:00 08:00:00 10:00:00 12:00:00 14:00:00 レスポンス時間 合計の比較 MDS 索引無し MDS 索引有り 系列4 HeatWave 約1000分の1 約300分の1

Slide 31

Slide 31 text

© 2023 Database Technology Inc. All Rights Reserved. 31 LIKE検索 全文検索  青空文庫のテキストデータを利用 https://github.com/aozorahack/aozorabunko_text テ キ ス ト デ ー タ 取 得 文 字 コ ー ド ・ 改 行 コ ー ド 変 換 CSV 変 換 テ ー ブ ル へ 挿 入 検 索 し て み る クライアント MDSノード HeatWaveノード HeatWave

Slide 32

Slide 32 text

© 2023 Database Technology Inc. All Rights Reserved. 32 青空文庫 データCSV変換

Slide 33

Slide 33 text

© 2023 Database Technology Inc. All Rights Reserved. 33 LIKE検索 全文検索  青空文庫のテキストデータを利用 https://github.com/aozorahack/aozorabunko_text テ キ ス ト デ ー タ 取 得 文 字 コ ー ド ・ 改 行 コ ー ド 変 換 CSV 変 換 テ ー ブ ル へ 挿 入 検 索 し て み る クライアント MDSノード HeatWaveノー ド

Slide 34

Slide 34 text

© 2023 Database Technology Inc. All Rights Reserved. 34

Slide 35

Slide 35 text

© 2023 Database Technology Inc. All Rights Reserved. 35 全文検索 LIKE検索  青空文庫のテキストデータを利用 https://github.com/aozorahack/aozorabunko_text テ キ ス ト デ ー タ 取 得 文 字 コ ー ド ・ 改 行 コ ー ド 変 換 CSV 変 換 テ ー ブ ル へ 挿 入 検 索 し て み る クライアント MDSノード HeatWaveノード HeatWave

Slide 36

Slide 36 text

© 2023 Database Technology Inc. All Rights Reserved. 36 検索  有るキーワードを含むタイトル抽出  有るキーワードのヒット数  有るキーワードの作者毎出現数  有るキーワードのタイトル毎出現数

Slide 37

Slide 37 text

© 2023 Database Technology Inc. All Rights Reserved. 37 4.14 秒 3.93 秒 4.13 秒 4.15 秒 0.14 秒 0.10 秒 0.13 秒 0.41 秒 0.00 秒 1.00 秒 2.00 秒 3.00 秒 4.00 秒 5.00 秒 Q1 Q2 Q3 Q4 SQL応答時間 LIKE検索 (HeatWave有効/無効)の比較 HeatWave無効 HeatWave有効 テーブルサイズ:約1.3GB 行数:約388万行

Slide 38

Slide 38 text

© 2023 Database Technology Inc. All Rights Reserved. 38 0.14 秒 0.10 秒 0.13 秒 0.41 秒 0.02 秒 0.01 秒 0.01 秒 0.01 秒 0.00 秒 0.10 秒 0.20 秒 0.30 秒 0.40 秒 0.50 秒 Q1 Q2 Q3 Q4 SQL応答時間 LIKE検索(HeatWave有効)と全文検索の比較 HeatWave有効 LIKE検索 HeatWave無効 全文検索 テーブルサイズ:約1.3GB 行数:約388万行

Slide 39

Slide 39 text

© 2023 Database Technology Inc. All Rights Reserved. 39 無理やりHeatwave利用  HeatWave での実行が選択されなかったSQLを HeatWaveで実行する!

Slide 40

Slide 40 text

© 2023 Database Technology Inc. All Rights Reserved. 40 無理やりHeatwave利用  ヒント句 /*+ SET_VAR(use_secondary_engine=FORCED) */ を利用する  実行時 HeatWaveが利用されないSQLを利用する ※確認は EXPLAINで RAPIDエンジンが使われて いるかどうかで行う 結果: HeatWaveを利用したほうが 遅かった

Slide 41

Slide 41 text

© 2023 Database Technology Inc. All Rights Reserved. 41

Slide 42

Slide 42 text

© 2023 Database Technology Inc. All Rights Reserved. 42 比較をやってみて  実際に自分の目で条件を把握した上で速さが実感できた  ちょっとした思いつきで条件を変えて試すことが出来た  ここには載せられない結果も試すことが出来た(意味がない検証 が・・・)

Slide 43

Slide 43 text

© 2023 Database Technology Inc. All Rights Reserved. 43 御清聴ありがとうございました