オラクルから「日本オラクル本社にて、神宮花火大会鑑賞のご案内」の連絡を頂きました。

ラクルから「日本オラクル本社にて、神宮花火大会鑑賞のご案内」の連絡を頂きました。

OOWでアンカンファレンスに参加させて頂いた際に、ブロガーとしてアカウントを登録していた為、連絡を頂いたのでしょう。

最近余り人と会っていないので、参加させて頂く事にしました!





[PR]Spreeの情報を集めています。

ECを持ちたい方、仕事でECを使いたい方向けのコミュニティサイトです。
このサイトでは世界で最も使用されているECの1つであるSpreeについての情報を提供しています。
http://spreecommerce.jp/

Oracle OpenWorld Tokyo 2009 3日目に参加しました。

一昨日Oracle OpenWorld Tokyo 2009 3日目に参加しました。

Oracle OpenWorld Tokyo 2009 3日目午前

9:30〜10:15の基調講演にはオラクル・コープレーション 社長のチャールズ・フィリップスさんも前日と同様オラクルの製品や最近のIT業界について説明されていました。

その後10:15〜11:00の基調講演は日立製作所執行役常務の佐久間さんが『お客様との協創でめざす知的創造社会』という講演をされていましたが、前日寝不足というのもあって途中で寝てしまいました(笑)
駄目ですね〜高いところの話はどうも。耳に入らない。


その後ラウンジへ行きアンカンファレンスを聞きに行きました。

OTN掲示板シスオペである竹中さんが『ROMるだけではもったいない』というタイトルでOTN掲示板について講演されていました。

OTN掲示
OTN Japan - 404 Error


2008年度のOTN掲示板アワード受賞の表彰式も行われました。


ラクルデータベースを使用した案件で、困った際はOTN掲示板を利用したいと思いました。


その後のアンカファレンスはマイクロソフト株式会社 デベロッパー&プラットフォーム統括本部アーキテクトエバンジェリスト砂金さんによる講演でした。
(肩書きが凄い…。)

砂金さんのブログ
Azureの鼓動:オルタナティブ・ブログ


今話題のクラウド・コンピューティングの話をされていました。
マイクロソフトなのでWindows Azureですね。
私は生粋のLAMPerなので、サーバーにWindowsかあと考えてしまいましたが、とても話は面白かったです。
講演終了後は名刺交換とPokenをして頂きました!
有難うございます!
蛇足ですが、日本オラクル株式会社 OTN事務局長の伊東さんと砂金さんは同期でoracleに入社されたとか。
更に、お二人はOracle OpenWorld Tokyo 2009 1日目講演のもとくんβの後輩にあたるという話を聞いてこの業界は狭いなとつくづく感じました。


その後飛び入りで前日講演された福岡さんによる講演が始まりました。


前日の講演よりパワーアップしたプレゼンテーションでした。
福岡さんはとても気さくな方で、私のような新人に対しても肩をポンポンと叩いて下さいまして、こんにちわと挨拶をして下さるという素敵な方です。

Oracle OpenWorld Tokyo 2009 3日目午後

お腹がすいたのでブロガールームでお昼ご飯を食べました。
ひつまぶし!

お昼ご飯を頂いた後もラウンジに行ってアンカンファレンスを聞きに行きました。

その後のアンカファレンスはOTN事務局によるOracleグッズ抽選会がありました!


本場USのTシャツを頂きました!でかい!
抽選会後、今年のOracle OpenWorld Tokyoはどうでしたか?という質問コーナーが始まりました。


結構辛口の意見も多々ありました…。
個人的には、アンカンファレンスをもっともっと前面に押し出して欲しかったなあと(私が講演させて頂いたこともあり^^;)

その後のアンカファレンスは株式会社富士通北陸システムズの池田さんの『1TBのデータベースは2時間以内で移行できるのか!?』という講演でした。


なんだか凄い話でついていけませんでした…。



その後前日飛び入りで講演されていた小田さんが再度飛び入りで講演をされていました。

前日もSSDの話をされていましたが、今回もSSDの話題がでました。
SSDとDBとの動作は結構皆さん関心がある話題なんですね。
後は、XMLDBについて…型が自由なので性能は悪くなりがちという説明がありました。


その後のアンカファレンスは日本ヒューレット・パッカード株式会社の諸橋さんの『Oracle Databaseをもっと別の見方をしてみよう』という講演でした。

諸橋さん(id:wmo6hash)のブログ
wmo6hash::blog

unixのコマンド等でoracleが使用しているライブラリ(.soファイル等)等の話や、oracleシステムコールする時の監視等の話をされていました。
oracleの深い部分のお話ですね。とても難しいです。。。

講演後、名刺交換をして頂いたのですが、その際に私の講演見たよと仰ってくれてとても嬉しかったです!

Oracle OpenWorld Tokyo 2009を終えて

3日間とも様々な方とお知り合いになれた事がとても嬉しかったです。衝撃的でした!
日本のoracle社がこのようなアンカンファレンスという試みは初めてという事でしたが、個人的には様々なセッションを聞くよりアンカンファレンスで講演を聞いている方が楽だし、楽しいし、気さくに様々な方とお知り合いになれるのでとても面白い企画だと思います。
私のようなLAMPユーザーがこのようなoracleの試みに参加すると、とても面白いのではないのかななんて思います。
(というのも、サンの買収等があった為、oracleとは良い付き合いをさせて頂いた方がLAMPユーザーは良いかもね的なブラックな発想の私(笑))

勿論ある種のハッカー魂がある方だと、OSSじゃないと受付けませんという方も中にはいらっしゃると思います。
しかし、様々な方とお知り合いになれる事は決して損ではないのでは無いでしょうか?
どんな肩書きの方も私のような新人に優しく接して頂きました。とても嬉しかったです!

最後に

何度も何度も記事に書いているのですが、私のような新人にアンカンファレンスという機会を頂きまして有難う御座いました!
是非今度も参加させて頂けたら幸いです!
伊東さん宜しくお願いします^^



[PR]Spreeの情報を集めています。

ECを持ちたい方、仕事でECを使いたい方向けのコミュニティサイトです。
このサイトでは世界で最も使用されているECの1つであるSpreeについての情報を提供しています。
http://spreecommerce.jp/

Oracle OpenWorld Tokyo 2009 2日目に参加しました。

一昨日Oracle OpenWorld Tokyo 2009 2日目に参加しました。

Oracle OpenWorld Tokyo 2009 2日目午前

9:30〜10:15の基調講演にはオラクル・コープレーション シニア・バイス・プレジデントのハサン・リズヴィさんが、オラクルの製品や最近のIT業界について説明されていました。
ラクルの製品等は、私のようなフリーエンジニアには程遠い話だなと思っていましたが、IT業界の大きな流れの話はとても参考になりました。


その後10:15〜11:00の基調講演は富士通代表取締役社長の野副さんが『富士通の変革』という講演をされていました。
今までは、システム案件を請け負った後お客さんにそのままシステムを渡して終わりという方法で仕事をしていたが、このような仕事の方法ではお客さんが事業が成功しているのか失敗しているのかわからないデメリットがありました。
しかしこれからの富士通は、お客さんがシステムをきちんと使いこなしているかまでをカバーしていくという話をされていました。
この部分が変革なのでしょうね。

その後はラウンジへ行きアンカンファレンスを聞いていました。

11:00からのアンカンファレンスは日本オラクル株式会社 OTN事務局長の伊東さんとテクノロジーエバンジェリストのさとうなおきさんによる講演でした。

OTN Japan TechBlog
Oracle Blogs | Oracle Technology Network Japan Blog

さとうなおきさんのブログ
S/N Ratio (by SATO Naoki)


ラクルの社内事例の企業内ソーシャルメディア導入で仕事の仕方が変化したという講演でした。
草の根式に社内ブログが始まったようです。

私はブログの記事を書くモチベーションとは何なのか気になりましたので質問したところ、
コミュニケーションをしたいという欲求や、自分の考えを示す場としても活用できるという答えが返ってきました。
さらに、メールではなくブログだとコメントがつくから良いとの事です。


小さなプロジェクトや会社でも、メールでのやりとりではなくブログでやりとりが出来たら良いかもしれませんね。

Oracle OpenWorld Tokyo 2009 2日目午後

その後予定には無かったのですが、絵で見てわかるOracleの仕組みの著者の小田さんのゲリラ講演が始まりました。

小田さんのブログ
データベースコンサルタントのノウハウちょい見せ


頂いたプリントのPart3の説明をして頂きました。

私はSSDでのOracleの性能が気になったので、聞いてみると早くなるには早くなるとの事。
詳細の情報は今後色々出てくると仰ってました。

記念撮影!


※この記事ですね。[http://odakeiji.blog33.fc2.com/blog-entry-90.html



その後のアンカファレンスはわんくま同盟代表中さんによる講演でした。


中さんのブログ
http://blogs.wankuma.com/naka/

わんくま同盟
わんくま同盟

中さんはわんくま同盟を始め、その他コミュニティに気軽に参加しましょうという話をされていました。
わんくま同盟ではustreamでネット中継をしているようです!
他の参加者のパッションを受け取る事ができますとのこと。

私はなぜ”わんくま”という名前なのかと質問しました。
理由は単純で、wankuma.comのドメインをもっていたという事と、自然発生的にわんくま同盟となっていたそうです(笑)



その後ブロガールームへ行きお昼ごはんを食べました。



その後展示会場をぷらぷら。





その後は再度ラウンジへ行き株式会社富士通ソーシアルサイエンスラボラトリの福岡さんによる講演を聞いていました。


福岡さんのブログ
DFJJ

OracleASP.NETの実際にアプリ構築に使った機能のみに絞って、Oracleを使ったWebアプリをASP.NETで作成する方法を講演されていました。

テーブルの中にパスワードはダメダメとの事^^;
ユーザーのパスワード毎にOracleの認証システムを使うべき。
PROXY認証でプーリングする事ができる。むむむ…。深い。

全体的に凄く丁寧に説明されていたのが印象的でした。

※リンク有難うございます!
camelmasaさんのUnconferenceが終了: DFJJ



その後のアンカファレンスは山岸賢治さんによる講演でした。


山岸さんのプロフィール
http://codezine.jp/author/394

分析関数とmodel句というタイトルで講演されていました。
話が深すぎて理解出来ませんでした。。。
web上に公開されています。
http://oraclesqlpuzzle.hp.infoseek.co.jp/oow2009-olap-model.html



その後再度小田さんのゲリラ講演が始まりました。


排他制御の要である「ロック」と「ラッチ」の話をされていました。
排他制御とか意識した事がない。。。



その後Oracleの新卒社員の方に取材して頂きました!

インタビューして頂いた新卒の方と私は同じ年齢!驚きました。。。


そんなインタビューして頂いている間、ラウンジでは株式会社システムサポートの畑井さんがORACLE MASTER Platinumの価値とは?というタイトルの講演をされていました。

(インタビュー中でしたので、画像がない><)


その後、BPMオフ会事務局による『いまさら聞けないBPM』という講演をされていました。








BPMオフ会事務局
ビールパーティみんなでしましょ - ビールパーティみんなでしましょ

Beer(ビール) Party(パーティ) Minna(みんな) でしましょ、の略だそうです(笑)

Oracle OpenWorld Tokyo 2009 2日目を終えて

1日目と同じで様々な方とお知り合いになれた事がとても嬉しい一日でした。



[PR]Spreeの情報を集めています。

ECを持ちたい方、仕事でECを使いたい方向けのコミュニティサイトです。
このサイトでは世界で最も使用されているECの1つであるSpreeについての情報を提供しています。
http://spreecommerce.jp/

Oracle OpenWorld Tokyo 2009 1日目に参加しました。&アンカンファレンスで講演をしました!

昨日Oracle OpenWorld Tokyo 2009 1日目に参加しました。
そしてアンカンファレンスで講演をしました!

Oracle OpenWorld Tokyo 2009 1日目午前

Oracle OpenWorld Tokyo 2009 1日目午前中は、私のアンカンファレンスでの講演がありましたので、自分の準備で精一杯でした。


※後日slideshareYouTubeにてプレゼンテーションの様子をアップロードしたいと思います。

福岡さんが私のアンカンファレンスの記事の感想を書いてくれました!
感激!
camelmasaさんのUnconferenceが終了: DFJJ

Oracle OpenWorld Tokyo 2009 1日目午後

午後〜夕方は知人と会ってまして、それからもとくんβさんのアンカンファレンスを聞きました。

もとくんβさんのアンカンファレンスで学んだことは

  • Oracle Database XEとRubyの相性が良い
  • 自分を売り込む色々な方法がある事

を学びました。
また、CDでBICSというエクセルのマクロで簡単にマニュアルが作成出来るツールを頂きました。

アンカンファレンス後、挨拶に行ったところ「名刺はフリーエンジニアにとってとても大事なもの」と教えて頂きました。
私は金銭面から手作りで名刺を作成しているのですが、どうしても家のプリンターでは綺麗に印刷できないんですね。
どうにか綺麗に印刷する方法を考えるか、早く名刺をオリジナルで作成できるほどの経済力を身につけるかですかね(笑)


18:30からはMr円で有名な早稲田大学教授榊原さんの「世界同時不況下での経営」という特別講演を聞きました。
榊原英資 - Wikipedia

世界同時不況は構造的な問題なので、まだまだ状況は悪くなる可能性があるそうです。


Oracle OpenWorld Tokyo 2009 1日目を終えて

様々なエンジニアの方とお知り合いになれた事がとても嬉しい一日でした。

一番驚きなのが、私がアンカンファレンスという機会を頂いてエンジニアの皆さんにプレゼンテーションしたことです。
私がエンジニアに向けて技術の話をする事なんて、昨年の私は想像も出来ませんでした。
一皮剥けた感じがします。
この様な機会を与えてくれたオラクル社に感謝したいと思います!
有難うございました!



[PR]Spreeの情報を集めています。

ECを持ちたい方、仕事でECを使いたい方向けのコミュニティサイトです。
このサイトでは世界で最も使用されているECの1つであるSpreeについての情報を提供しています。
http://spreecommerce.jp/

Oracle主催の「サバイバビリティ」に関するブロガーミーティングのイベントに参加しました。

昨日Oracle主催の「サバイバビリティ」に関するブロガーミーティングのイベントに参加しました。

開催場所は青山にある青山オラクルセンター13階でありました。


ブロガーミーティングの開始

19:00から始まり、20分間程今回のイベントの主旨の説明があり、先輩エンジニア方4名と若手エンジニア4名の熱いライトニングトークが始まりました。

先輩エンジニア方4名と若手エンジニア4名の熱いライトニングトーク

福岡さん
http://dfjj.cocolog-nifty.com/blog/

もとくんβさん

山口さん
http://blogs.oracle.com/otnjp/

id:camelmasa
http://d.hatena.ne.jp/camelmasa/

id:mickmackさん
http://d.hatena.ne.jp/mickmack/

id:marqsさん
http://d.hatena.ne.jp/marqs/

id:maoeさん
http://d.hatena.ne.jp/maoe/


私が一番年下でしたので、参加された皆さんが先輩でして、知らなかった事や私には無かった考え方等を学ぶ事が出来ました。

ちなみに下記が私のプレゼンテーションです。

そして、台本です。(長いので、興味ない方は飛ばして下さい^^)

皆さん始めまして!齊藤正浩と申します。宜しく御願いします。

では短い時間ではありますが、『この混沌としたIT業界をどの様にサバイブ』していくか、私が考える6つのサバイブをお話したいと思います。

まず簡単に私の自己紹介をさせて頂きます。



(スライド)



先程も申し上げましたが、名前は齊藤正浩と申します。HNはcamelmasaという名前とこの画像でブログ等で活動しています。
年齢は23になります。
現在ライド株式会社に所属しておりますが、来月4月からフリーエンジニアとして活動しながら、
知人の会社立ち上げを協力させて貰おうと考えています。

つまり私は4月から給料が発生しないという環境で、まさに今回の議題でもある『サバイバリティ』が必要になってくるのです。
そんな私がどの様にサバイブしようと考えているかお話したいと思います。

1つ目のサバイブは



(スライド)



IT業界の最新情報を毎日チェックするという基本的な事ですが、サバイブする為にはかなり重要だと思います。
というのも皆さんもご存知の通り、IT業界は巨大で、異常な速度で業界全体が進んでいると考えているからです。



(スライド)



はてな取締役梅田望夫さんの著書『ウェブ時代5つの定理』に書かれていたのですが、『パラノイア(病的なまでの心配性)だけが生き残る。』
という言葉がありました。
続けて、『変化に対して臆病すぎるほど敏感でなければならない。組織全体の神経を研ぎ澄ませて「変化の予兆」を感得できるものだけが生き残る』と書かれています。
これは組織という枠に捕われず、IT業界の事に対してもいえるのではないかと思います。



(スライド)



私は心配性な性格なので、FirefoxのMorning Coffeeというアドオンを使用して、ほぼ毎日IT系のニュースサイトをチェックする様にしています。



(スライド)



又、これは私の家の居間ですが、



(スライド)



本棚がこのようになっています。



(スライド)



さらに、LANケーブルが床下に伸びていますが、



(スライド)



開けますと、



(スライド)



床下にサーバーがありまして、



(スライド)


その横にさらに本棚あるという状況です。
ニュースサイトを見るだけではなく、書籍も購入して情報を収集するようにしています。




2つ目のサバイブは



(スライド)



エンジニア イコール マルチプレイヤーと書かれていますが、
あるプログラム言語だけをある程度出来れば良いという考えでは、エンジニアとして今後生き残れないと考えています。
プログラミング周りの事は勿論の事、営業やプロデューサー、デザイン、ライター等の能力を学ぶ事で自分の価値を更に高める事が出来ると考えているからです。
もしくは、自分が出来なくても、各専門家との繋がりを作っておく必要があると思います。



(スライド)



これは全く逆の事を言ってますが、マルチプレイヤーになれない、なりたくない生粋のギークな方であれば、
一つのプログラム言語を語らせたら右に出る者がいないというところまでマスターするのも、他のエンジニアと差別化が出来るのでこれも一つのサバイブだと思います。

私の場合は生粋のギークになることが出来ないので、前者のように様々な事を勉強してカバーしようと考えています。



3つ目のサバイブは



(スライド)



英語を勉強する、カテゴリ的には先程のマルチプレイヤーの中に入りますが、英語を勉強するという事は別物だと捉えています。
私は日本経済新聞を読んでいるのですが、先日このような記事がありました。



(スライド)



中国人IT技術者を紹介。
富士通ビジネスシステムが、今月から中国人IT技術者を紹介するサービスを始めました。



(スライド)



グローバル化に罪はない。
彼は日本で働くインド人です。彼のように豊かさをつかみ取る新中間層が爆発的に増えていると書かれています。

皆さんもご存知の通りグローバル化の波がすぐそこまで来ています。
大げさな話ですが、日本語で仕事が出来るのは後2・3年後までかもしれません。
その為にも英語を勉強しています。
チャンスがあるなら、今年にもワーキングホリデーで一年間カナダに行きたいとも考えています。



4つ目のサバイブは



(スライド)



イベントに参加するです。
イベントといえば、このようなブロガーミーティングや勉強会等様々ありますが、
参加する事でIT業界の色々な方と知り合うことが出きますし、自分とは違う分野の知識を得られるメリットもあります。



(スライド)



皆さんの中でも活用されている方もいらっしゃると思いますが、
このIT勉強会カレンダーを見て、参加したいイベントを探し参加しています。



5つ目のサバイブは



(スライド)



アプリケーションをリリースする事です。
私は今年数個のウェブアプリケーションをリリースする予定です。



(スライド)



これは私がImaga_Colorfulというphpのパッケージを作成し公開しています。
この簡単なソースでこの画像を生成することが出来るパッケージを作成しました。
このようにアプリケーション等を公開することによって、自己アピールやスキルアップが出きると考えています。



(スライド)



また、EC-CUBE等のオープンソースソフトウェアに貢献することでも自己アピール等をすることが出きると考えています。



そして、一番重要な最後のサバイブは



(スライド)



はてなブログでブログを書く!…と書かれていますが、決してはてなさんの回し者ではありません(笑)
私は、はてなブログを書き始めて10ヶ月程経ちますが、エンジニアにとっての様々なメリットを受ける事が出来ましたし、
これからもメリットを継続して受ける事ができるサバイブだと思います。



(スライド)



これは私のブログの画像です。

はてなブログはエンジニアのユーザーが多い為、ソースコードを公開することで自分に自信がつきました。
また、10ヶ月の間に3社のIT企業からお誘いの連絡を受けるなど、本当に色々なことがありました。



(スライド)



このスライドは、来月開催されるOracle Open Worldのアンカンファレンスについてのページです。



(スライド)



私が、Oracle Database XEという無償のデータベースについてブログで記事を書いた事がきっかけでアンカンファレンスへのお誘いを頂きました。
4月22日水曜日 12:20から30分 MySQLからOracle Database XEというお話をさせて貰います。
私に興味を持たれた方は、是非ご参加下さい。

話が変わりますが、
ウノウラボのCTO尾藤さんが社員を採用する際に参考にするものとして、
過去の実績やオープンソースソフトウェアの開発や、勉強会への参加、執筆等の経歴を重視されています。
プライベートの時間を使って技術的な活動をしている人はモチベーションが高く、エンジニアとして優れている人が多いと考えられているからです。

私はそのように考える経営者や人事担当者の方が、今後も増えてくると考えているので、ブログは最強の履歴書・自己アピール材料になると考えています。



以上の6つのサバイブが、私の考えるサバイバリティになります。



(スライド)



ご静聴有難うございました!

プレゼンテーションの後は、先輩エンジニア方と若手エンジニアとのディスカッションタイムがありました。

ディスカッションタイム


ファシリテーションの方







ディスカッションの様子

ディスカッション後



ディスカッション後の談話の様子


http://d.hatena.ne.jp/kawasaki/20090325/1237942674
一昨日ブログがプチ炎上していたid:kawasakiさん
少し疲れている様子でした(笑)

川崎さんと、今度はてなに遊びに行かせて貰うと約束したので、是非来週か再来週にお邪魔させて貰おうと思います。

まとめ

様々なキーワードが飛び交うディスカッションはとても刺激的でした。
定期的にこのようなブロガーミーティングやりたいですね!

お知らせ

プレゼンテーションでも宣伝していたのですけど、来月の22日から3日間Oracle Open Worldというイベントが東京国際フォーラムであります。
その3日間の内の22日の12時20分から無料のアンカンファレンスをやりますので、興味を持たれた方は是非ご参加下さい!

Oracle Open World
http://www.oracle.co.jp/openworld/2009/index.html

Oracle Open World Unconference
http://wiki.oracle.com/page/Unconference+in+OTN+Lounge(Oracle+OpenWorld+Tokyo+2009)

追記

ブロガーミーティング中の画像が沢山ありました!
http://f.hatena.ne.jp/oracletechnologynetwork/090326_blogger_session/



[PR]Spreeの情報を集めています。

ECを持ちたい方、仕事でECを使いたい方向けのコミュニティサイトです。
このサイトでは世界で最も使用されているECの1つであるSpreeについての情報を提供しています。
http://spreecommerce.jp/

phpを使用してOracle Database XEとMySQLへのコネクションプーリングの方法・性能を比較しました。Oracle Database XE編

MySQLのコネクションプーリングは約2倍の性能結果が出ました。(同時100接続で100万回リクエストのApache Benchを実行した場合)

Oracle Database XEでのコネクションプーリングはどうでしょうか?検証してみたいと思います。


まずはOracle Database XEのコネクションプーリングしない方法で検証です。

コネクションプーリングしないプログラムで100万回リクエストのApache Benchを実行

下記のスクリプトを実行
oracle_connect.php

<?php
  $link = oci_connect('system', '[パスワード]', 'xe');
  $result = oci_parse($link, "SELECT 1;");
  oci_close($link);
?>

Apache Benchの実行

ab -n 1000000 -c 100 http://localhost/oracle_connect.php 

Apache Benchの実行結果

[root@www html]# ab -n 1000000 -c 100 http://localhost/oracle_connect.php
This is ApacheBench, Version 2.0.40-dev <$Revision: 1.146 $> apache-2.0
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright 2006 The Apache Software Foundation, http://www.apache.org/

Benchmarking localhost (be patient)
Completed 100000 requests
Completed 200000 requests
Completed 300000 requests
Completed 400000 requests
Completed 500000 requests
Completed 600000 requests
Completed 700000 requests
Completed 800000 requests
Completed 900000 requests
Finished 1000000 requests


Server Software: Apache/2.2.3
Server Hostname: localhost
Server Port: 80

Document Path: /oracle_connect.php
Document Length: 0 bytes

Concurrency Level: 100
Time taken for tests: 1259.278234 seconds
Complete requests: 1000000
Failed requests: 0
Write errors: 0
Total transferred: 190000000 bytes
HTML transferred: 0 bytes
Requests per second: 794.11 [#/sec] (mean)
Time per request: 125.928 [ms] (mean)
Time per request: 1.259 [ms] (mean, across all concurrent requests)
Transfer rate: 147.34 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 2 18.5 0 691
Processing: 0 122 249.2 61 9350
Waiting: 0 115 238.9 61 9349
Total: 0 125 251.4 61 9350

Percentage of the requests served within a certain time (ms)
50% 61
66% 63
75% 77
80% 100
90% 208
95% 383
98% 907
99% 1378
100% 9350 (longest request)

Time taken for tests: 1259.278234 secondsなので、約21分かかりました。
かなり遅い結果ですねー…。

逆にコネクションプーリングした際とどれ位差があるのか気になります。


コネクションプーリングの検証をする前に気になった記事がありましたのでこちらも検証しました。

oci_pconnectの第4引数を指定するとパフォーマンス向上 - Do You PHP はてブロ


コネクションプーリングしないプログラムで100万回リクエストのApache Benchを実行(接続時キャラクタセットを指定)

下記のスクリプトを実行
oracle_connect2.php

<?php
  $link = oci_connect('system', '[パスワード]', 'xe', 'JA16SJIS');
  $result = oci_parse($link, "SELECT 1;");
  oci_close($link);
?>

Apache Benchの実行

ab -n 1000000 -c 100 http://localhost/oracle_connect2.php 

Apache Benchの実行結果

[root@www html]# ab -n 1000000 -c 100 http://localhost/oracle_connect2.php
This is ApacheBench, Version 2.0.40-dev <$Revision: 1.146 $> apache-2.0
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright 2006 The Apache Software Foundation, http://www.apache.org/

Benchmarking localhost (be patient)
Completed 100000 requests
Completed 200000 requests
Completed 300000 requests
Completed 400000 requests
Completed 500000 requests
Completed 600000 requests
Completed 700000 requests
Completed 800000 requests
Completed 900000 requests
Finished 1000000 requests


Server Software: Apache/2.2.3
Server Hostname: localhost
Server Port: 80

Document Path: /oracle_connect2.php
Document Length: 0 bytes

Concurrency Level: 100
Time taken for tests: 1176.803295 seconds
Complete requests: 1000000
Failed requests: 0
Write errors: 0
Total transferred: 190000000 bytes
HTML transferred: 0 bytes
Requests per second: 849.76 [#/sec] (mean)
Time per request: 117.680 [ms] (mean)
Time per request: 1.177 [ms] (mean, across all concurrent requests)
Transfer rate: 157.67 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 3 21.7 0 609
Processing: 0 113 227.8 54 7051
Waiting: 0 104 213.3 54 7050
Total: 0 117 231.5 54 7051

Percentage of the requests served within a certain time (ms)
50% 54
66% 57
75% 75
80% 92
90% 209
95% 376
98% 765
99% 1358
100% 7051 (longest request)

Time taken for tests: 1176.803295 secondsなので、約20分かかりました。
さほど変わらず遅いですが、id:shimookaさんの記事の通り少し早くなりましたね。


次にOracle Database XEのコネクションプーリングの検証をしたいと思います!

コネクションプーリングするプログラムで100万回リクエストのApache Benchを実行

下記のスクリプトを実行
oracle_pconnect.php

<?php
  $link = oci_pconnect('system', '[パスワード]', 'xe');
  $result = oci_parse($link, "SELECT 1;");
  oci_close($link);
?>

Apache Benchの実行

ab -n 1000000 -c 100 http://localhost/oracle_pconnect.php 

Apache Benchの実行結果

[root@www html]# ab -n 1000000 -c 100 http://localhost/oracle_pconnect.php
This is ApacheBench, Version 2.0.40-dev <$Revision: 1.146 $> apache-2.0
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright 2006 The Apache Software Foundation, http://www.apache.org/

Benchmarking localhost (be patient)
Completed 100000 requests
Completed 200000 requests
Completed 300000 requests
Completed 400000 requests
Completed 500000 requests
Completed 600000 requests
Completed 700000 requests
Completed 800000 requests
Completed 900000 requests
Finished 1000000 requests


Server Software: Apache/2.2.3
Server Hostname: localhost
Server Port: 80

Document Path: /oracle_pconnect.php
Document Length: 0 bytes

Concurrency Level: 100
Time taken for tests: 505.614765 seconds
Complete requests: 1000000
Failed requests: 0
Write errors: 0
Total transferred: 190001710 bytes
HTML transferred: 0 bytes
Requests per second: 1977.79 [#/sec] (mean)
Time per request: 50.561 [ms] (mean)
Time per request: 0.506 [ms] (mean, across all concurrent requests)
Transfer rate: 366.98 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 5 10.3 1 319
Processing: 0 44 127.2 24 8470
Waiting: 0 33 117.1 12 8460
Total: 0 49 128.9 28 8476

Percentage of the requests served within a certain time (ms)
50% 28
66% 58
75% 61
80% 63
90% 83
95% 103
98% 189
99% 455
100% 8476 (longest request)

Time taken for tests: 505.614765 secondsなので、約8分かかりました。
約2倍強処理速度が向上しました。

コネクションプーリングするプログラムで100万回リクエストのApache Benchを実行(接続時キャラクタセットを指定)

下記のスクリプトを実行
oracle_pconnect2.php

<?php
  $link = oci_pconnect('system', '[パスワード]', 'xe', 'JA16SJIS');
  $result = oci_parse($link, "SELECT 1;");
  oci_close($link);
?>

Apache Benchの実行

ab -n 1000000 -c 100 http://localhost/oracle_pconnect2.php 

Apache Benchの実行結果

[root@www html]# ab -n 1000000 -c 100 http://localhost/oracle_pconnect2.php
This is ApacheBench, Version 2.0.40-dev <$Revision: 1.146 $> apache-2.0
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright 2006 The Apache Software Foundation, http://www.apache.org/

Benchmarking localhost (be patient)
Completed 100000 requests
Completed 200000 requests
Completed 300000 requests
Completed 400000 requests
Completed 500000 requests
Completed 600000 requests
Completed 700000 requests
Completed 800000 requests
Completed 900000 requests
Finished 1000000 requests


Server Software: Apache/2.2.3
Server Hostname: localhost
Server Port: 80

Document Path: /oracle_pconnect2.php
Document Length: 0 bytes

Concurrency Level: 100
Time taken for tests: 380.586453 seconds
Complete requests: 1000000
Failed requests: 0
Write errors: 0
Total transferred: 190000190 bytes
HTML transferred: 0 bytes
Requests per second: 2627.52 [#/sec] (mean)
Time per request: 38.059 [ms] (mean)
Time per request: 0.381 [ms] (mean, across all concurrent requests)
Transfer rate: 487.53 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 3 8.6 0 297
Processing: 0 33 122.2 5 6322
Waiting: 0 25 114.2 3 6321
Total: 0 37 123.7 6 6325

Percentage of the requests served within a certain time (ms)
50% 6
66% 47
75% 52
80% 54
90% 65
95% 87
98% 138
99% 379
100% 6325 (longest request)

Time taken for tests: 380.586453 secondsなので、約6分かかりました。
こちらも約2倍強処理速度が向上しました。
コネクションプーリングをしないMySQL並に速度が向上した結果が出ました。

まとめ

処理速度はやはりMySQLに分がありますね。さすがです。
しかし、無償のOracle Database XEをコネクションプーリングをする事で、同時接続時の処理速度の向上が図れる事がわかりました。
これを知る事・体験する事が出来て良い検証だったなーと思いました。


[PR]Spreeの情報を集めています。

ECを持ちたい方、仕事でECを使いたい方向けのコミュニティサイトです。
このサイトでは世界で最も使用されているECの1つであるSpreeについての情報を提供しています。
http://spreecommerce.jp/

phpを使用してOracle Database XEとMySQLへのコネクションプーリングの方法・性能を比較しました。MySQL編 その3

前回の検証では、コネクションプーリングの利点を理解する事が出来たのですが、Apache Benchでの検証をするとどうなるかというコメントで終了していました。
今回Apache Benchでの検証をしたいと思います。


phpを使用してOracle Database XEとMySQLへのコネクションプーリングの方法・性能を比較しました。MySQL編 - @camelmasaの開発日記


phpを使用してOracle Database XEとMySQLへのコネクションプーリングの方法・性能を比較しました。MySQL編 その2 - @camelmasaの開発日記

mysql_connect関数でSELECTクエリ100万回の速度実験(for文内でMySQLに毎回接続しない場合)

mysql_connect.php

<?php
  $start = array_sum(explode(" ",microtime()));

  $link = mysql_connect('localhost', 'root', '[パスワード]');
  mysql_select_db('mysql_connect', $link);
  for($i=0;$i<1000000;$i++){
    $result = mysql_query("SELECT 1;");
  }
  mysql_close($link);

  $end = array_sum(explode(" ",microtime()));
  echo "\n".$end - $start;
?>

このスクリプトを下記に修正。
mysql_connect2.php

<?php
  $link = mysql_connect('localhost', 'root', '[パスワード]');
  mysql_select_db('mysql_connect', $link);
  $result = mysql_query("SELECT 1;");
  mysql_close($link);
?>

上記のコネクションプーリングしないプログラムで100万回リクエストのApache Benchを実行

Apache Benchの実行

ab -n 1000000 -c 100 http://localhost/mysql_connect2.php

Apache Benchの実行結果

[root@www time2]# ab -n 1000000 -c 100 http://localhost/mysql_connect2.php
This is ApacheBench, Version 2.0.40-dev <$Revision: 1.146 $> apache-2.0
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright 2006 The Apache Software Foundation, http://www.apache.org/

Benchmarking localhost (be patient)
Completed 100000 requests
Completed 200000 requests
Completed 300000 requests
Completed 400000 requests
Completed 500000 requests
Completed 600000 requests
Completed 700000 requests
Completed 800000 requests
Completed 900000 requests
Finished 1000000 requests


Server Software: Apache/2.2.3
Server Hostname: localhost
Server Port: 80

Document Path: /mysql_connect2.php
Document Length: 1 bytes

Concurrency Level: 100
Time taken for tests: 364.58800 seconds
Complete requests: 1000000
Failed requests: 0
Write errors: 0
Total transferred: 191000000 bytes
HTML transferred: 1000000 bytes
Requests per second: 2746.81 [#/sec] (mean)
Time per request: 36.406 [ms] (mean)
Time per request: 0.364 [ms] (mean, across all concurrent requests)
Transfer rate: 512.34 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 2 14.0 0 347
Processing: 0 33 140.2 4 7507
Waiting: 0 25 100.9 3 7486
Total: 0 35 143.5 4 7507

Percentage of the requests served within a certain time (ms)
50% 4
66% 9
75% 15
80% 22
90% 99
95% 192
98% 302
99% 394
100% 7507 (longest request)

Time taken for tests: 364.58800 secondsと出力されているので、6分以上かかった事になります。
結構かかりますね。

mysql_pconnect関数でSELECTクエリ100万回の速度実験(for文内でMySQLに毎回接続しない場合)

mysql_pconnect.php

<?php
  $start = array_sum(explode(" ",microtime()));

  $link = mysql_pconnect('localhost', 'root', '[パスワード]');
  mysql_select_db('mysql_connect', $link);
  for($i=0;$i<1000000;$i++){
    $result = mysql_query("SELECT 1;");
  }
  //mysql_close($link);

  $end = array_sum(explode(" ",microtime()));
  echo "\n".$end - $start;
?>

このスクリプトを下記に修正。

mysql_pconnect2.php

<?php
  $link = mysql_pconnect('localhost', 'root', '[パスワード]');
  mysql_select_db('mysql_connect', $link);
  $result = mysql_query("SELECT 1;");
?>

for文部分を外して上記のコネクションプーリングをしたプログラムでApache Benchを実行しました。

上記のコネクションプーリングをするプログラムで100万回リクエストのApache Benchを実行

Apache Benchの実行

ab -n 1000000 -c 100 http://localhost/mysql_pconnect2.php

Apache Benchの実行結果

[root@www time2]# ab -n 1000000 -c 100 http://localhost/mysql_pconnect2.php
This is ApacheBench, Version 2.0.40-dev <$Revision: 1.146 $> apache-2.0
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright 2006 The Apache Software Foundation, http://www.apache.org/

Benchmarking localhost (be patient)
Completed 100000 requests
Completed 200000 requests
Completed 300000 requests
Completed 400000 requests
Completed 500000 requests
Completed 600000 requests
Completed 700000 requests
Completed 800000 requests
Completed 900000 requests
Finished 1000000 requests


Server Software: Apache/2.2.3
Server Hostname: localhost
Server Port: 80

Document Path: /mysql_pconnect2.php
Document Length: 1 bytes

Concurrency Level: 100
Time taken for tests: 195.267289 seconds
Complete requests: 1000000
Failed requests: 0
Write errors: 0
Total transferred: 191000000 bytes
HTML transferred: 1000000 bytes
Requests per second: 5121.19 [#/sec] (mean)
Time per request: 19.527 [ms] (mean)
Time per request: 0.195 [ms] (mean, across all concurrent requests)
Transfer rate: 955.22 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 3.4 0 235
Processing: 0 18 43.3 14 2793
Waiting: 0 14 23.2 13 2480
Total: 0 19 43.6 15 2793

Percentage of the requests served within a certain time (ms)
50% 15
66% 17
75% 19
80% 20
90% 24
95% 30
98% 61
99% 114
100% 2793 (longest request)

Time taken for tests: 195.267289 secondsと出力されているので、3分以上かかった事になります。

まとめ

コネクションプーリングをした方が約2倍早く終了しました。
http接続等で同時接続が沢山ある時はコネクションプーリングはかなり効果的なのがわかりました。
今後MySQLを使用したアプリケーションを作成する時は、コネクションプーリングも考慮しようと思います。

次こそはphp + Oracle Database XEのコネクションプーリングを検証したいと思います!



[PR]Spreeの情報を集めています。

ECを持ちたい方、仕事でECを使いたい方向けのコミュニティサイトです。
このサイトでは世界で最も使用されているECの1つであるSpreeについての情報を提供しています。
http://spreecommerce.jp/