ラッチをCPUより多くする――Oracleパフォーマンス最適化のヒント:Column
Oracleデータベースのパフォーマンス最適化では、「ラッチはCPUの数より増やしても意味がない」とよく言われる。だが、実はそこにはうそが隠れている。どういうことか説明しよう。
「ラッチはCPUの数より増やしても意味がない」とはよく言われることだ。なぜか。CPUの数より多くのラッチを同時に使用することはできないからだ。まったく理にかなっているようだが、実はうそが隠れている。どういうことか説明しよう。
あなたが、札付きの凶暴な囚人が集められた警備の厳重な刑務所の所長だとしよう。部下の看守は20人で、それぞれ20人の囚人を担当している。大規模暴動を防ぐため、これら21人のグループは相互に隔離されている。また、万が一銃撃戦が起こる危険を減らすため、銃は5丁だけ装備され、20人の看守がこれらを共用しなければならない。刑務所長はこのほかに看守長を任命し、5丁の銃を看守に割り振る役割を任せている。看守はどんな状況でも持ち場を離れてはならず、ほかの看守を助けに行くことも許されない。囚人と格闘するのはもってのほかであるため、看守は銃なしでは、暴れる囚人に決して対応してはならず、1度に1人の囚人しか相手にしてはならない。
刑務所長はこうした管理体制に非常に満足していた。各囚人は確実に監視され、暴動の可能性は抑えられており、必要な銃の数は最少限にとどめられていたからだ。しかし、場合によっては、1人の看守が20人の囚人を扱うのが困難になる状況が起こるかもしれなかった。看守が5丁の銃の1丁を手にすることができたとしても、非常に危うい立場にあることに変わりはなかった。
刑務所長はそれを思うと夜もなかなか眠れなかった。彼は心の底では、いずれは看守の1人が20人の囚人に襲われることになるのではないかと心配していた。自分が作った管理体制のせいで看守が命を落とすかもしれないと毎晩悩んだ。そして彼は外部の力を借りようと決断し、高給取りのコンサルタントを起用して助言を求めた。コンサルタントは一言こう言った。「もっと看守を雇ってください」
Copyright © ITmedia, Inc. All Rights Reserved.