2012年2月28日火曜日
Oracle PL/SQL 読み込みデータのバルク処理 サンプル(修正前と修正後)
(下の例では、バルク処理単位として2000)
(※バルク処理を実装していない場合の例)
cursor cur is select 【カーソルで処理したい条件など】 ;
tab 【テーブル名】%rowtype
begin
open cur;
loop
fetch cur into tab;
exit when cur%notfound;
【tabを使った処理を行う】
end loop;
end;
/
(※バルク処理を実装した場合の例 赤字が追加箇所)
cursor cur is select 【カーソルで処理したい条件など】 ;
tab 【テーブル名】%rowtype
type tabArrType is table of 【テーブル名】%rowtype
tabArr tabArrType;
begin
open cur;
loop
fetch cur bulk collect into tabArr limit 2000;
exit when cur%notfound and tabArr.count=0;
for i in tabArr.first..tabArr.last loop
tab := tabArr(i);
【tabを使った処理を行う】
end loop;
end loop;
end;
/
今回のバルク処理による
メリット(ねらい)は処理の高速化。
デメリットは、バルク処理件数単位での処理となるため、細かな例外制御が難しくなることや、場合によってはメモリ・CPUなどのリソースを圧迫することなどです。
ちなみに、今回私が上記処理を実装した結果、処理の高速化はほとんどありませんでした。
普通にカーソルで1件ずつ処理を行うのが十分に高速でできたため、、というのが原因の予想です。
Oracle で処理を高速化するのは、いろいろな要素があって難しいものです。。
コマンドプロンプトから引数つきでバッチを起動し、Oracleに値を渡すには
バッチファイルが引数を読み込むときは、 %0, %1 ... %n で、
SQLファイルが引数を読み込むときは、 &0, &1 ... &n であるのがわかれば楽勝。
【コマンドプロンプトで実行】
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C:\ test.bat aaa bbb
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
↓
【test.bat (バッチファイルの例)】
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
echo %0 ( test.bat が表示される )
echo %1 ( aaa が表示される )
echo %2 ( bbb が表示される )
sqlplus 表領域/ユーザ@パスワード @xyz.sql %0 %1 %2
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
↓
【xyz.sql (Oracle 処理の例)】
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.....
ret := func( &0, &1, &2 ); /* 引数として、('test.bat', 'aaa' ,'bbb') が渡る */
.....
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2012年2月24日金曜日
「この青空に約束を」 楽しいです
なので、久しぶりに通勤電車の中でゲームをすることにしました。
そういうわけで「この青空に約束を」をはじめてみました。
いわゆるギャルゲー。久しぶりでした。
http://www.play.tgl.jp/aozora/
はじめてみて思ったのは、朗読ものを聞いているような錯覚。
なぜかというと、プレーヤーが介入できる箇所が少ないのです。
途中で行き先を選べる箇所が何度か出てくるのだけれど、それだけ。
気になるキャラクターのいる場所をひいきして選択すれば、そのキャラクターのエンディングが簡単に見られます。まだ、うみ、みやこしかクリアしていませんが、多分他も簡単だと思います。
それでも、徐々に引き込まれるものがあります。
フルボイスによる魅力的な声がいいのかもしれません。
昔のギャルゲーは、目当ての女の子を口説くために、あれこれ苦労しないとグッド・エンディングに辿り着けないものが多かった気がするけれど、こういうのもいいな・・と思いました。
まだ飽きませんね。
他のキャラクターのエンディングも見てみたいと思っています。
少し古いゲームですが、オススメですよ~。
2012年2月23日木曜日
明日はもっといい人でいよう
周りの人たちへの感謝が足りなかった。
あまり感じがよくなかった気がする。
最近、ちょっと疲れたかもしれない。
今日はなるべく早く寝て、明日はもっといい人でいよう。
迷惑をかけてしまった皆様、ごめんなさい。
2012年2月22日水曜日
ペットボトルのキャップよりも
ペットボトルのキャップで、社会貢献できることは有名だと思います。
私も意識して、ペットボトルのキャップは分別するように意識していました。
でも、あるとき、この換金率を知ることになり、驚きました。
ネットの情報でも裏を取りました。
ここ→ http://ecocap007.com/
抜粋
「ペットボトルのキャップをみんなで集めよう 400個で10円のワクチン代ができますポリオワクチンは1人分20円 20円で1人の子どもの命が救えます」
ペットボトルキャップ800個で20円。
それでやっと一人救えるだけ。
もっと換金率がいいものかと思っていました。
キャップ1個、1円くらいは最低あると思っていました。
ペットボトルのキャップの分別ももちろん悪くない。
環境問題もあるしね。
でも、それよりも、買い物のおつり10円、いや5円、1円でも募金したほうが、手っ取り早く困っている人を助けられるのだと思った。
今日から、 明日も、 ずっと続けよう。
偽善といわれても、
行動の伴わない現実逃避よりも、1000万倍いいと思うから。
2012年2月20日月曜日
やっと健康診断に慣れた
また一年に一回の健康診断がありました。
最近の健康診断は随分変わったように感じます。
まず、病院に行っている、というより、お店に出掛けているような印象に変わりました。
病院同士の競争が激しいのでしょうか。
病院で、いらっしゃいませと言われる日も遠くないかもしれません。
あと、個人的には、バリウムが美味しくなったらいいなぁと思いました。
2012年2月16日木曜日
Ys7終わった~
真面目で正統派RPG ですね。私はこういうの好きなので楽しかった。
最後はレベル上げがちょっとだけ飽きましたけど(^o^ゞ
思えば、Ysに初めて出会ったのは、確かPC-8801シリーズのパソコン版でした。当時としては、あまりの美しさと斬新さに感動したものでした。
そして長い年月を経て、再び出会ったYsは、ゲームが溢れる今でも、Ys独特の雰囲気や世界を保っていてくれて、何だか嬉しかったです。
Ys8が発売されたら、またやろうかな。
2012年2月15日水曜日
ストーカーさんの期待と思い込み
10年以上前のストーカーさんから連絡が来た。検索エンジンで普通に見つけたらしい。
以前はどんなだったかというと、付き合っていたわけでもないのに、突然家にやってきたり、頻繁に電話してきたり、思い通りにならないと泣いたり叫んだり殴ってきたり。そんな人でした。
確かに最近は、自分の個人情報について厳密な管理ってしていなかったから見つけられたのは仕方ない。
でもメールの内容は、ストーカーっぽい過去の行動を反省する内容だったので、メールを何度かやり取りしていたら、やっぱりまた怒りだしてしまった。私は特に悪気はないのでよくわからない。
きっとストーカーさんの期待と違う反応を私がしたのでしょうね。
やっぱり合わないのでしょう。
そのストーカーさん、結婚もしていて、子供もいるから、ますますわからない。
もう、反応しません。
もう、反応しません。
自分勝手な思い込みや勝手な期待は本当に気を付けなければいけないなと思った。
もうすぐ健康診断
スポーツジムに行ったとき、体重を測った。
毎年体重が増えてきた気がしたけれど、最近は少しずつ減っている気がする。
そういうものかな…と年齢を重ねながら、まあいいか…と思った。
もっとも、体重よりも気にすべき数字なんていくらでもあるのだから。
2012年2月14日火曜日
小さな幸せ
そういえば、このところお仕事終了時間が早くなった。
なのに、小さなことで腹を立てることが多くなった気もする。
現状の幸せを考えず、甘えていたかしれません。
反省するとともに、感謝しようと思った。
アフィリエイトって面白い
今までアフィリエイトなんて、余程魅力のあるコンテンツもともと持っていなければ絶対もうからないと思っていたけれど、やればやっただけの収益があるのだなと思った。
まだ始めたばかり。
1日に10円あるかないかくらい。
でも、面白い!