鵜飼って知ってます? 鵜匠と呼ばれる人が鵜を川に放し、その鵜は天然の魚を捕まえて船に戻って来るように仕込まれている、というものです。喉の途中で引っかかっている大き目の魚を鵜匠が取り出して、その魚はその場で調理されて客に供されます。中でも鮎は絶品なのだとか(笑)
そんな鵜飼で、STA(SingleThreadApartment)とMTA(MultiThreadApartment)で動くADO.NETのお話をば。
まず、ADO.NETというのは大雑把に言っちゃうと「なんかの情報の塊から、なんかの情報を取ってくるテクノロジ」。つまりは「川の中の魚から鮎を取ってくる鵜」と考える事ができます。SQLServerに向いたADO、DB2に向いたADO、Oracleに向いたADO、という風に、取りに行く先のデータベースによって種類が違いますがADOとまとめて呼ばれちゃったりするように、少しずつ中身が違っても使う側からすれば考え方は同じです。つまりは、「いろんな鵜がいるけど、用途はみんな同じ。でも、確実に鮎を取るためにはその川にあわせた、その川で魚を取るのが得意な鵜を使う方が良い」のと同じ考え方ですね。
さてここにSTA鵜匠さんとMTA鵜匠さんがいらっしゃいます。それぞれに手持ちの鵜は10羽、鵜飼としてのキャリアも船のスペックも同じです。そこで二人に「この川にいる全部の鮎」を注文し、早速船を出して鮎を取ってもらいましょう。
まずは、STA鵜匠さん。早速川に鵜を放した後、戻ってくる間は別のお仕事をします。やがて魚を取ってきた鵜は船に戻ってきますが、その鵜から鮎を取り出すには鵜匠自らが一羽一羽を……。鵜は魚を取った後、船に上がって魚を出して再び川に戻るまで、水面で順番待ちをしています。
そしてMTA鵜匠さん。鵜を川に放すその時!鵜匠さん鵜の数だけ影分身wwww 分身それぞれが川に鵜を放した後、戻ってくる間は別のお仕事をします。やがて魚を取ってきた鵜が船に戻ってくると分身した鵜匠さんそれぞれに、魚を取り、再び鵜を川に放し……仕事が終わった分身から順番に本体に戻ります。うん、ワンダホー!(笑)
同じ200匹の鮎をもらうにしても、STA鵜匠さんよりMTA鵜匠さんの方が早く仕事が終わります。こうしてみると、MTAってすげー!ですね。でも何でもかんでもMTAでいーじゃん、楽ジャン、早いぢゃん!なんて思うのはちょっと待ってください。それぞれの鵜飼がどんな客の注文に応えるのが得意で、その注文をこなしてもらうのにはどんな鵜のコントロールが良いのかをしっかり理解してからお願いしないと、おいしい鮎を確実に早くには食べられないですよ?
というわけで、前振り終了w
校了しだい、順次アップしちゃうぜベイベ♪