Database OracleDB インフラ

OracleDBの統計情報とは?なぜ取得?取得しないことの影響は?

2018年8月7日

こんにちは!シミダイ(@shimidai2100)です。

OracleDatabaseの「統計情報」とは何か?なぜ取得するのか?運用方法とは?について紹介します。

OracleDatabaseを運用して上で最も重要な要素の1つです。

この記事でOracleDatabase初心者でも分かりやすく統計情報について紹介していますので、

「統計情報」の概要をしっかりと学んでいきましょう。


統計情報とは何か?なぜ統計情報を取得するのか?

表や索引のサイズ・データの種類・分布・特性を表す情報です。

その他DB全体・OS上の情報も統計情報としてOracleDatabaseへ保存します。

統計情報はOracleDatabaseのオプティマイザーが作成する「実行計画」を作成するためのINPUT情報として使用されます。

統計情報と実行計画作成の流れ

統計情報が存在しないと最適な実行計画が作成されないためSQLが性能劣化する可能性が高くなります。

ただし「統計情報を取得していない」または「統計情報が古いイコール「性能劣化」というわけではないので注意しましょう。

統計情報の種類

統計情報には多くの種類があります。

以下網羅的に統計情報と取得対象・タイミングをまとめました。

[table id=59 column_widths="20%|40%|40%"/]

統計情報の取得はデータベースに大きい負荷を与える処理になります。

取得する頻度やタイミングも重要になりますの注意しましょう。

統計情報の取得方法

統計情報には大きく分けて3つの取得方法があります。

それぞれに特性があり、メリット・デメリットも存在しますので正しく使いこなす必要があります。

[table id=60 /]

統計情報の運用方法と扱う時の注意事項

統計情報の運用方法を大きく分けて2つあります。

[table id=61 column_widths="20%|40%|40%"/]

統計情報を取っていれば性能は安定する」というのは大きな間違いです。

また「統計情報を固定化すればSQLの性能劣化は発生しない」というのも間違いになります。

正しい知識をもって正しい統計情報運用することでデータベースをヘルシーに保つことができます。

 

関連記事

-Database, OracleDB, インフラ

Copyright© shimidai2100 , 2020 All Rights Reserved.