Oracle データ圧縮② [DBMS]
前回からだいぶ間が空きました。
データ圧縮でそれなりに圧縮される様ですので、検索性能にどの程度オーバーヘッドが加わるのか見てみたいと思います。
とはいえ、テーブルの内容によってきっと変わるだろうから目安という事でお願いします。
Oracle 11g では基本圧縮(BASIC) と OLTP表圧縮(FOR OLTP) の2種類の圧縮方法があるので、圧縮なしの状態を含めてそれぞれの状態で検索します。
対象となるテーブルは以下の様に作られています。
CREATE TABLE "SAPSR3"."D010TAB"
( "MASTER" VARCHAR2(120) DEFAULT ' ' NOT NULL ENABLE,
"TABNAME" VARCHAR2(90) DEFAULT ' ' NOT NULL ENABLE
)
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 COMPRESS FOR OLTP LOGGING
STORAGE(INITIAL 16384 NEXT 2621440 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "PSAPSR3701" ;
データは343,820件あります。
走らせるSQLは全て同じで何の捻りもなく以下です。
SET HEAD OFF
SET PAGESIZE 0
select * from SAPSR3.D010TAB;
exit
画面出力で時間がかかるといけないのでNULに出力して時間を測定します。
まずは圧縮前の状態です。
約1分39秒でした。
基本圧縮です。
約1分39秒でした。
OLTP表圧縮です。
約1分39秒でした。
結果として、このテーブルの場合は検索時間にほぼ差は出ませんでした。
[単一検索]
圧縮なし 約1分39秒
BASIC 約1分39秒
OLTP 約1分39秒
これではよく解からないのでもう少し負荷をかけて、検索を2並列にして計測してみます。
圧縮前の状態です。
約1分24秒でした。
基本圧縮です。
約1分23秒でした。
OLTP表圧縮です。
約1分24秒でした。
結果として、このテーブルの場合は検索時間にほぼ差は出ませんでした。
[2並列検索]
圧縮なし 約1分24秒
BASIC 約1分23秒
OLTP 約1分24秒
負荷のかけ方が甘いのか、今回の検索では差が出ませんでした。
明確に重くなる訳ではなさそうです。
データ圧縮でそれなりに圧縮される様ですので、検索性能にどの程度オーバーヘッドが加わるのか見てみたいと思います。
とはいえ、テーブルの内容によってきっと変わるだろうから目安という事でお願いします。
Oracle 11g では基本圧縮(BASIC) と OLTP表圧縮(FOR OLTP) の2種類の圧縮方法があるので、圧縮なしの状態を含めてそれぞれの状態で検索します。
対象となるテーブルは以下の様に作られています。
CREATE TABLE "SAPSR3"."D010TAB"
( "MASTER" VARCHAR2(120) DEFAULT ' ' NOT NULL ENABLE,
"TABNAME" VARCHAR2(90) DEFAULT ' ' NOT NULL ENABLE
)
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 COMPRESS FOR OLTP LOGGING
STORAGE(INITIAL 16384 NEXT 2621440 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "PSAPSR3701" ;
データは343,820件あります。
走らせるSQLは全て同じで何の捻りもなく以下です。
SET HEAD OFF
SET PAGESIZE 0
select * from SAPSR3.D010TAB;
exit
画面出力で時間がかかるといけないのでNULに出力して時間を測定します。
まずは圧縮前の状態です。
約1分39秒でした。
基本圧縮です。
約1分39秒でした。
OLTP表圧縮です。
約1分39秒でした。
結果として、このテーブルの場合は検索時間にほぼ差は出ませんでした。
[単一検索]
圧縮なし 約1分39秒
BASIC 約1分39秒
OLTP 約1分39秒
これではよく解からないのでもう少し負荷をかけて、検索を2並列にして計測してみます。
圧縮前の状態です。
約1分24秒でした。
基本圧縮です。
約1分23秒でした。
OLTP表圧縮です。
約1分24秒でした。
結果として、このテーブルの場合は検索時間にほぼ差は出ませんでした。
[2並列検索]
圧縮なし 約1分24秒
BASIC 約1分23秒
OLTP 約1分24秒
負荷のかけ方が甘いのか、今回の検索では差が出ませんでした。
明確に重くなる訳ではなさそうです。
コメント 0