2013-01-01から1年間の記事一覧
一般的にOracleなりRDBMSのパフォーマンスは、メモリでさばける量を超えると突然悪化すると言われる。その理由は、メモリで処理しきれていたものが、ディスクIOを必要とするようになるから、ということになる。よって、実際のところどの程度悪化するものなの…
OracleのSAMPLE句によるランダムセレクションのばらつきを調べる - kagamihogeのblog の続き。SQLアンチパターンのランダムセレクションのベーシックな方法のオススメとして下記のやり方が紹介されている。 1から主キーの最大値までの間の値をランダムに選択…
ここんとこJBoss使ってるんだけどJava EEのこと良く知らんのよね、ということで本書を買ってきた。読み進め方としては、気になるトピックに関しては実際に環境作ってHello Worldレベルのこと試す、それ以外は読むだけに留める、というやり方にした。あと、使…
SQLアンチパターンを読んでいるのだけど、第15章 ランダムセレクションでは文字通りランダム抽出についての章がある。その章で、ベンダー依存の解決策という断り書きがされた上で、OracleのSAMPLE句を使用したやり方が紹介されている。 Oracleでは(中略)SA…
Web ServiceさわったらRESTもね、ということで。Hello Worldレベルのことをやる。環境は引き続きWildFly使う。 環境 Java SE Development Kit 7u25 Eclipse Kepler(4.3) IDE for Java EE Developers WildFly 8.0.0.Alpha4 JBoss AS Tools(Kepler) 4.1.0.Fina…
SOAPとかWSDLとかの方のWeb Serviceをさわる。WildFly使うのは趣味。なんとなく新しいバージョン使った方がいいかな〜とかそういう雰囲気。目標は、サンプルのWeb Serviceをサーバ側で起動して、クライアント側からアクセスできるまで。 環境 Java SE Develo…
RDBMSでwhere句なしのupdate/deleteをする機会は極めて限られ、本番環境でついうっかりやってしまうと夜逃げしたくなるレベルである。しかしやっちまったものは仕方ないので、どうすれば少なくとも無かったことにする状態に出来るのかを考える。 環境 Oracle…
テーブル切捨てのtruncateと、条件無しでdeleteは、どちらも結果的にテーブルから全行削除される。しかし、両者の動作は異なるもので、想定される使い方も異なる。Oracleの運用ミス事例でもしばしば取り上げられる。システムはなぜダウンするのかのp.232「2…
インデックスをタクサン作ったときINSERT,UPDATE,DELETEは遅くなるか - kagamihogeのblog を書いたあと、下記の本をあらためて見直したところ、このような記述となっていた。 データを削除するとテーブルの行は物理的に削除されるが、インデックスの行は単に…
centosにインストールしたoracle 11g xeをアンインストールしてもっかいインストールしなおしたら、リスナーが起動しなくなった。 環境 Oracle Database Express Edition 11g Release 2をCentOS 6.4 x86_64上で動作 Oracle SQL Developer 3.2 起きたこと、や…
一般に、DB運用のアドバイスとして使われないインデックスは削除すべき、とある。ディスクのムダはもとより、インデックスのメンテナンスコストの増大は性能劣化に繋がるからである。というわけで、今回はインデックスを大量に付与したとき何が起こるかを見…
俺が最近RDBMS関連の勉強をしているのは、Oracleの運用で痛い目にあったからである。危機感というか、いくらなんでもDB知らなさすぎやばい、という感情に背中を押されてのことである。ところで、本書の対象読者として、既に現場で技術者として働いておりデー…
SQLのパフォーマンスの本を読んでいると、なるべくジョインの回数は抑えるべし、とある。ここでは、カンタンな集計クエリを通してそのことを確認してみ……たかった。結論から書くと、下記環境でのカンタンなクエリでは差を見ることは出来なかった。 環境 Orac…
うまい言い回しが見つからないのでこんなタイトルになってしまったのだけど。要は、下記の擬似コードのような状態を指している。 for open connection execute sql close connection end foropen connection for execute sql end for close connection一般的…
手元にあるThinkPad X61はWindows XPがインストールされているが、そろそろライセンスがアレなのでlinuxをインストールすることにした。しかし、フロッピー・光学ドライブがついてない。USBブートかネットワークブートか、ということになる。ので、PXEでイン…
イマサラJUit 4よく知らないんですよね、とは言い出しにくい情勢なので本書を手に取った。さすがに実践入門と銘打たれてるだけあり、明日すぐ使えるような構成になっている。実践的だと感じたのは大きく二つの理由からなる。一つは、JUnit 4の各機能をサンプ…
RDBMSの知識不足を感じて以来、ここのところその勉強に力を入れている。学習方針は、 達人に学ぶDB設計 徹底指南書 初級者で終わりたくないあなたへ - kagamihogeのblog等の著書のミック氏が推奨している方法で、理論と実装の両面から進めている。俺の場合、…
環境 Java SE Development Kit 7u25 Eclipse Kepler(4.3) IDE for Java EE Developers JBoss Application Server 7.1.1 やったこと JBoss Tools 4.1のインストール Help -> Eclipse Marketplaceで「jboss tools」で検索する。 JBoss Tools (Kepler)をインス…
pctfree 0/10/90に変更してデータ入れて、where条件無しのselect/update/deleteを実行したときに速度差が出るか見る。 環境 Oracle Database Express Edition 11g Release 2をWindows上で動作 Oracle SQL Developer 3.2 SQL*Plus: Release 11.2.0.2.0 Produc…
テーブルのある範囲を、別のテーブルから抜き出した結果に基づいて更新する、という処理を考える。このとき、単一のupdateのみによる処理と、カーソルで回しながら主キーに基づいてupdateを逐次実行する処理、とでどのような差が発生するかを調べる。 環境 O…
読みやすいコードとはどういうものか、について書かれた薄めの本。非常に興味深い事に、コードの読みやすさについてに書かれていてなおかつ、日本語で読みやすい本となっている。類書で俺個人の好みで言えばClean Code アジャイルソフトウェア達人の技 - kag…
お絵かきチャット的なアレ。ブラウザでテキトーに何か描くと、別のブラウザにも何かが描画されるヤツ。 環境 jdk1.7.0_21 Eclipse 4.2.0 SR2 play-2.1.1 jQuery 2.0.2 Firefox 21.0 やったこと conf/routesに新しいパス追加する。 GET /sharedwhiteboardinde…
Play Frameworkはサンプルでチャットの例が一緒に入っているのだがActorを絡めたコードになっており、ビミョーによくわからなかった。ので、他のWebSocketのサンプルでしばしば見られる、送信したメッセージをただ送りなおす、いわゆる「エコー」をやってみ…
最近の秀丸は、マクロ使わなくても文字数カウントの機能があるって知ったんで試してみた。 環境 Version 8.30 手順とか その他 -> 動作環境 -> ウィンドウのステータースバー「詳細」ボタンを押す。 「全体の文字数(おおよそ)」にチェックを入れる。 秀丸…
反復連結(Loop query)という単語はデータベースパフォーマンスアップの教科書 基本原理編から借りたもの。これは、JOINを使うのではなく、手続き的にテーブル間を連結するもの。親テーブルをフェッチしながら、子テーブルにキーで順次アクセスするやり方の…
歴史を専門に扱っている学者なり研究者なりが、成人向けに新書サイズでお手軽に歴史をたのしめるための本を出していることは良くある。ただ、事実に忠実になろうとする余りか堅っ苦しい文体に終始して息が詰まりそうなのとか、無知蒙昧な貴様らに歴史の重み…
損益分岐点というたとえが正確かどうかはわからないが。範囲検索がある一定以上になると、インデックスよりもフルスキャンのほうが速くなるポイントがある。というわけで、それはどのへんにあるのかをやってみる。やることとしては、連番の数値と文字列の2列…
Oracle勉強していて何気に面倒なのが、テキトーな件数のレコードを持つテーブルを作ること。ので、いままでに自分の知ることが出来た範囲でやり方をメモしていく。 環境 Oracle Database Express Edition 11g Release 2をWindows上で動作 Oracle SQL Develop…
2002年発行と今となって古い本であり、9iが一番新しいバージョンという想定で書かれているのでさすがに古さが否めない。RBOへの言及が多かったり、FREELISTSとか、hash_area_sizeとか、11gではメモリ管理なり記憶域管理なりだいぶ変わっているのでその辺は適…
整合性制約の有無によるINSERTの速度差 - kagamihogeのblogの続き。整合性制約の有無でUPDATEに速度差が生じるかを確認する。検証する制約は、主キー・チェック・外部キー。制約を付与してからUPDATEするのと、UPDATEしてから制約を付与するのとで、UPDATEの…