SQLの効率化 [2009年07月02日(木)]

テーブルAがあり、プライマリーキーではない、任意の文字列フィールドに対して、
キーワード検索の機能を改善をすることになりました。
全角/半角、大文字/小文字の統一なしで登録されています。
例)MS MS ms エムエス エムエス など
で、検索する側が、MSといれて MSがヒットしないといって苦情が出ています。
しかも、件数が多いと、検索に数分かかります。

しょうがないので検索用のテーブルA'を作成し、
A'には、PKeyと、すべて大文字/全角化(カタカナは、ひらがなに)したカラム KeyWordカラムだけ登録し、Indexの代わりにして効率化をはかりました。

select A.* from A,
(select A'.PKey from A' where KeyWord like %大文字/全角化した検索キーワード%)temp
where A.Pkey =temp.Pkey
として、副問合せのSQLを作りました。
実行計画の確認をすると、Hash 結合にはなっていますが、コストが異常に高い
で、よく見てみると テーブルAが Full Table アクセスになっている。

PKeyが効いていません。
で、インデックスを使えとHint指定しても変わらず、
副問合せの中を 試しに=にして評価すると、Pkeyでスキャンされます。

どうも、Oracle10iでは、副問合せの中でLikeを使うと、インデックスが無視されるようです。

このままでは、パフォーマンスが上がらないので、頭を切り替え、
副問合せをwhere句から、select句に変更して、LikeをメインのSQL内に変更しました。
select A'.Pkey ,(select A.* from A where A.Pkry=A'.Pkey)
from A' where KeyWord like %大文字/全角化した検索キーワード%

とすると、今度はPkeyでIndexスキャンされるので、
コストが、2000から500まで落ちました。
で、実際に画面を動かしてみると、Hit件数は1万のとき、画面が表示されるまで、3分以上かかります、
パフォーマンスが全然改善していません。
既存の画面を調べてみると、htmlフォーマットで、検索結果をダウンロード幼のファイルとして出力していました。
嫌な予感がしたので、ファイル出力をころしてみると、
秒のオーダーまでパフォーマンスが改善しました。

ファイルIOにボトルネックがあるのは間違いないようです。
しかし、セイゼイ600K 1万行程度のhtmlファイルの出力にしては時間がかかりすぎています。
既存画面の、ファイル出力は自作のProcedureでした(画面はPL/SQL)
嫌な予感がしたので、Procedureを確認すると、
1行出力するごとに、ファイルをOpen/Closeしています。
アホかー
1万回のファイルOpen/Closeって、どんな負荷テストやねん。

ファイルOpen/Closeを1回だけにしたら、応答時間は秒のオーダーになりました。
ちゃんちゃん


JR東日本株主総会 [2009年06月23日(火)]

JR東日本の株主総会に遊びに行ってきました。

JR東日本は、株主の意見を聴く気もなくシャンシャン総会で済ませたいってのが
よくわかる総会でした。
どう考えても、社員株主か関係者としか思えない人達の、ヤジや

基本的に、株主に意見を言う機会がないので、
議案への質問や、株主提案の補足説明でしかいう機会がないので、
そこで意見を述べる

質問/説明でないので社長が発言をさえぎる
関係者が辞めろとヤジる

発言者が切れる

話が進まなくなる。

社長が強制終了
関係者が拍手喝采

ってパターンを感じました。
まあ、株主側も多くも労働組合系の一口株主では?
って思えるし、
同様の内容の繰り返しで、うざかったのも事実

ちなみに株主提案とかしてた人達の主張は
1.信濃川ダムの違法取水問題 (これは、怒って当然)
2.八王子のトイレの下水 (これは、JRそんなに悪くないだろ)
3.国鉄労働組合の問題 (しつこい、1000人で200億よこせってふざけんな)

が、メインでそれに伴い、
コンプライアンス委員会の設置
今の取締役辞めろ
社外取締役入れろ(労働組合系や学者)
ってな印象でした。

まあ、株主側も痛かったけど、
JR東日本のやり方で気に入らないのが、
議決方法
議決権は、1口 1権利なのに、
拍手と叫び声の大きさで、決を採るやりかた。
事前投票やインターネット投票分を無視してるとしか思えない。
なぜ、大口株主と、1口株主を区別しない(私は、野次馬の一口株主)

明らかに、株主の意見を議決レベルで聴くつもりもなければ、
受け付ける気もないとしか、思えませんでした。
アメリカ式の株主(短期)の利益だけ追っかけるやり方も酷いけど、
JR東日本のやり方も酷いってのが感想です。

あと、思ったのが、株主提案
取締役解任とか、国鉄労働組合が押す社外取締役の就任とかは、
反対するのは理解できる。
だけど、取締役会上位5名の給料公開とか、
信濃川ダム問題での取締役の給料カット(今年以降、億単位で電気料の出費が出る)は、健闘する振りぐらいみせたら?
さらに、コンプライアンス委員会の設置ぐらい受け入れて ガス抜きすればいいのに

結論ですが、結構楽しい見世物でした。
2回目は行かないと思う。

スタートレック新作 [2009年06月21日(日)]

昔からの友人に誘われて、スタートレックの新作をみてきました。
何故か、川崎まで呼び出されて川崎で見ることに。
(あっちは、神奈川、戸塚氏在住)

京王相模原線で、多摩川を渡り稲田堤で南武線に乗り換え、
学生のころ以来だったんですが、のんびりしたガラガラの印象があったのですが
意外と、混んでいて記憶とずいぶん差が
(学生のころは、バイトで朝一と終電を夏休みにつかったから条件が違うだけって説も)

まあ、それはおいておいて 感想を
別の映画で広告を見たとき、アクションぽくて、
こんなのスタートレックじゃないって思っていたけど、
見てみると、充分、スタートレックらしかった。

オリジナルとの繋がりや、アレンジを含めて 結構好きです。
で、ニモイが出てきてくれたのはうれしかった。
始めは、バルタン星人VoYoVもとい、バルカン人の長老あたりで、
ゲスト出演ぐらいを期待していましたが、期待以上でした。

基本的に、オリジナルの踏襲しているので、上手いやり方だと思いました。
単なるリメークでの新世界ではなく、パラレルワールドとタイムパラドックス
で、
きっちり オリジナルの続編としての位置もあるのが良かった。

個人的に、充分 あたりの映画でした。

最後に、一言
転送装置、最強

いきなりの雨 [2009年06月16日(火)]

会社帰り、外に出ると雨が降り出していました。
まだ、そんなに酷くなかったので、急いで帰ることに、

電車を降りてみると、かなり酷く降ってきています。
土砂降りになりそうな気配が濃厚、
急いで帰ると、案の定 雷共に土砂降りに、

いや、間に合ってよかった。

しかし、革靴は雨に対する耐性が全然ない
縫い目から水を吸い上げるので、少し地面がぬれているだけで
靴の中までぬれてきます、
もしかすると、ゴム底の安い靴なら少しは防水性があるのかな?

ギレンの野望 [2009年06月14日(日)]

通勤電車のなかで、少しずつ進めています。
で、少し疑問なのが、
1ターンの収入は 4000〜9000ぐらいです。
で、MS1ユニットで、1000〜3000ぐらいです。
CPは、何故か10ユニット以上を一気に生産しています。
CPは収入額が違うのでしょうか?
ですが、情報で見る限り、こちらより収入は少ないはずなのに?
なぜ?

夏なのにスーツ [2009年06月14日(日)]

今の客先、クールビズ禁止です。
夏が来ますが、スーツをきてネクタイと上着が必須です。

でも、実際のオフィス内では熱いので、上着脱いでます。
意味ねー

まあ、客の業種の関係で、夏でもスーツ着るって主義らしいですが、
システム関係者って顧客と会う訳でないんだから、
クールビズぐらい許して欲しい。

個人的には、クールビズを採用しない会社には、
追徴課税で、外形標準で 15%とかすればいいと思います

飲むべきか、回避するか [2009年06月07日(日)]

ペプシが、また妖しいドリンクを出します。

ペプしそ
もとい、ペプシしそです。

地雷の気配が濃厚すぎるって言うか、
紫蘇とか大葉はあんまり得意じゃないんだよなー
(バジル、ミント、パクチーとかは大丈夫、紫蘇と大葉だけがちょっと苦手
でも、梅干の紫蘇は大好き)

チャレンジすべきか、避けるべきか

グレンラガン螺旋編 [2009年06月07日(日)]

グレンラガンの螺旋編見てきました。

気が付いてみると、吉祥寺での上映は終了しており、都内は池袋のみ。
しまった、吉祥寺が終わってる。
しょうがないので、池袋で見ることに。

で、行ってみると、吉祥寺よりも環境がかなりいい。
まあ、吉祥寺にこだわりがあるわけでなく、ただ2年ほど通ってたってだけで
選んでたんですけどね、

いや、良いですね、こういった おばかな熱いアニメ。
大好きです、この手の作品。
最後の決戦、暴走とも言えるような、あのノリ 大好きです。

この作品のプロモーションで気になるって言うか、
納得できないのが、スタンプシート、
紅蓮編では、紅蓮編 1回と、螺旋編2回見ると プレゼントあり
螺旋編では、螺旋編 2回と、3回でプレゼントあり。

皆さん、同じ映画って何度も見に行きますか?
私は、行きません。
しかし、結構2回目、3回目のスタンプを押してもらってる人が、
うーむ、理解できん。

ギレンの野望PSP版 [2009年06月04日(木)]

ギレンの野望、PSP版を今進めています。

第1部は終わったのですが、こちらのMSは大半がザクのまま
第2部始まると、相手にはZのMS群に、
これってつらくない

しかも、ソロモン、グラナダは失っているし、
シャアはいなくなってるし

Doc作成ツール [2009年06月03日(水)]

PL/SQLで作成された、プログラムからリファレンスを作る事になりました。
はじめは、ソースに対してGrepを掛けて、コメントを抜き出し手作業で
何とかしようと思ったのですが、量が多すぎる。

しかも、コメントの書式が不統一すぎる。
Grepで抜き出したといえ、手間がかかりすぎるので、
解析プログラムを作る事にしました。
開発ツールが、PL/SQLとJavaなので、Javaで開発することにしました。

Javaだと、Junitでロジックの単体テストもできるので、
PL/SQLよりJavaのほうが効率がいいです。
設計書も書かずに、思いつきでテストしつつコーディング
ある程度進んだら、JUnitで確認し、さらにリファクタリング。

とりあえず、Rootディレクトリ以下を再帰的に解析し、
htmlを吐く、JavaDocもどきのモジュールは、一応完成しました。

しかし、コメントの書式が任意だと、解析が大変です。
| 次へ
trackback Blog by isao.net