読者です 読者をやめる 読者になる 読者になる

えいのうにっき

あたまのなかのデトックスを、不定期的に。主に Web 系技術ネタ。

2011/5/25 日誌

日誌

ポチったよ〜

こちらを。


ゆるく考えよう 人生を100倍ラクにする思考法

ゆるく考えよう 人生を100倍ラクにする思考法

本屋に行こう行こうと思いつつ全然行けない(行かない)から、もうAmazonでいいやってことで。おそらくだけど、色んなモノの影響をうけやすいこのワタクシ、この本でもグラリと来そうです。というか、グラリと来たいんだと思う。今。

今日のWeb

巷ではDB2の記事が話題になってますが、

最近のIBMには、良くも悪くも「必死さ」を感じる・・・。そのDB2の記事もそうだけど(RDBMSをこういう売り込みかたしてるのには新鮮・素直に驚いた。まずは技術者単位へのPRを、ということなんだろうか)、自分の知る範囲でも、かなり強気の売り込み文句(しかも相当の戦略的価格で)をちらほらと耳にするし・・・。。なんかヘンな予感というか、違和感を感じている今日この頃。

今日の業務

基本設計

引き続きDB設計。次は開発規模の見積りかな。

採用面接の準備

明日は今季何度目かの採用面接。面接官として、そして一個人として、全身全霊を持ってぶつからせて頂きます!

断片化テーブルのshrink

これはDB2じゃなくてOracleの話。
今面倒見てるシステムの空き領域がけっこ〜ヤバいことになってるので、現在shrinkの優先順位は、「shrinkを掛けることで浮くディスク領域が大きいものから順に」やることにしてます。

まずはこれでテーブルのUSED_BYTESを出す。

select tablespace_name, segment_name, segment_type, sum(bytes) bytes, count(*) cnt
from user_extents
where tablespace_name = '表領域名' and
segment_type = 'TABLE'
group by tablespace_name, segment_name, segment_type
order by segment_name;


続いてこれでブロック使用状況を確認。

 -- 変数宣言
VARIABLE unformatted_blocks NUMBER
VARIABLE unformatted_bytes  NUMBER
VARIABLE fs1_blocks         NUMBER
VARIABLE fs1_bytes          NUMBER
VARIABLE fs2_blocks         NUMBER
VARIABLE fs2_bytes          NUMBER
VARIABLE fs3_blocks         NUMBER
VARIABLE fs3_bytes          NUMBER
VARIABLE fs4_blocks         NUMBER
VARIABLE fs4_bytes          NUMBER
VARIABLE full_blocks        NUMBER
VARIABLE full_bytes         NUMBER
VARIABLE partition_name     VARCHAR2
VARIABLE segment_name       CHAR(7)

 -- 実行
exec DBMS_SPACE.SPACE_USAGE('スキーマ名', 'テーブル名', 'TABLE', -
       :unformatted_blocks, :unformatted_bytes, -
       :fs1_blocks, :fs1_bytes, :fs2_blocks, :fs2_bytes, -
       :fs3_blocks, :fs3_bytes, :fs4_blocks, :fs4_bytes, -
       :full_blocks, :full_bytes, -
       :partition_name -
)

PRINT unformatted_blocks
PRINT unformatted_bytes
PRINT fs1_blocks
PRINT fs1_bytes
PRINT fs2_blocks
PRINT fs2_bytes
PRINT fs3_blocks
PRINT fs3_bytes
PRINT fs4_blocks
PRINT fs4_bytes
PRINT full_blocks
PRINT full_bytes

各ブロックについては↓こんなかんじ。

fs1 : 空きが 0- 25%のブロック
fs2 : 空きが25- 50%のブロック
fs3 : 空きが50- 75%のブロック
fs4 : 空きが75-100%のブロック
full:空きが0%のブロック

これで実際どれくらいデータが埋まっているか大体アタリをつけて、それと割り当て領域との差分が大きいものをshrinkしていく。(もちろんextentsが過度に発生しているものね)shrinkをした直後は割り当て領域がピッチピチなので、増加分を見越しての領域割り当ても、別途行う。

bot

昨日の対策でいいかんじに。しばらく様子見。



今日はいじょ!