データベース - IBM DB2 - 統計情報リセット
- 1. 概要
- 2. 統計情報リセット
1. 概要
実は、表題は怪しい。
仕事で、データベースを使ってはいるものの、データベースに関しては、素人の域を脱していないので、用語としてごれが正しいのか、はなはだ不安であります。
やりたいのは、こういうこと。
「SQL」を実行するのに、同じテーブルに連続でアクセスすると、データベース側で、キャッシュか何かを使用しているのか、同じ「SQL」の実行時間が1回目よりも2回目以降の方が短くなりますな。
「SQL」の構文自体の速さを比較したりするのには、これは、はなはだ都合が悪い。
なので、「SQL」発行後に、前回発行した状態をクリアするというか、初期化するというか・・・。
これを「統計情報をリセットする」ということかどうか、実はよくわからんのですが、そういうことをしたいのです。
2. 統計情報リセット
多分、「Oracle」ならば。
「SYSDBA」権限で。
ALTER SYSTEM FLUSH BUFFER_CACHE;
で、いいんじゃないかな(やってみる環境がないので、確証はありません)?
ところが、「IBM DB2」は、ようわからんのですよ。
「巨人 IBM」さんとこのウェブサイトは、さっぱりわからん構成になっているので、はなはだ要領を得ないのだ。
あれこれやってみたあげく、こうじゃないかな?と思われるのが、下記の構文。
管理者権限で、「clpplus」を起動して、データベースに接続したうえで。
RUNSTATS ON TABLE スキーマ名.テーブル名;
REORG TABLE スキーマ名.テーブル名 INDEX スキーマ名.キー名;
実は、最初、「RUNSTATS」だけで、前の情報は消えたなと喜んでいたら、「SQL」がいつまでたっても、かえってこなくなったのですよ。
それで、「REORG」することにしました。
そうすることで、「SQL」は一応かえってきますし、当初の目的とすることははたせたように思います。
|
|