The Oracle TimesTen in-memory database is always ready
今までの目次です。
http://imoment.blogspot.com/2006/11/toctable-of-contents.html
こんにちは。いつもご購読くださりありがとうございます。
新しくご購読いただいた皆様も始めまして^^
だんだん寒くなってきましたね。
先週に引き続きOTN(Oracle Technology Network)から引用します。
メモリ上のデータベース、Oracle TimesTen in-memory databaseについての記事です。
Oracleは2005年6月にメモリデータベースの大手であるTimesTen社を買収しました。
マイクロ秒(1/100万)単位でデータを更新、検索するデータベースは、
Cisco,Ericsson,JP Morgan,Lucent,Nokiaなどをはじめ、
通信、金融、軍事、航空などの極めてtime-criticalなシステムで採用されています。
今回の引用文で紹介されていますが、
アメリカの110番(911)のシステムでも採用されているそうです。
911のオペレータ画面では、電話がかかると同時に電話番号、住所、地図などが
表示されるとのこと。こういったことが数秒遅れるだけで。。。
命にかかわってしまう まさにTimesTen採用の良い例として紹介されています。
通常は、Replicationオプションを使用して2台の平行稼動とし、
パフォーマンスや冗長性を高めます。
また、Cache Connectというオプションを使用して、
Oracle Databaseと連携することができます。
最近は数TBのDBは珍しくなくなっていますので、
GB単位のメモリDBとTB単位のディスクDBとで上手に連携することが理想です。
例えば、頻繁に使用するデータや、ログイン中アカウントデータなどを
メモリDBに置くとか、トランザクション終了時点でメモリDBから
ディスクDBへ戻るなど応用方法は多岐にわたります。
ここまで聞くと、単にOracleのキャッシュを大きくとって使えば
あまり変わらないのでは?と考えられる方もいらっしゃるかと思います。
そんな疑問に対して何故TimesTenが有利なのかが説明されている
文章を引用したいと思います。
■ OTN (Oracle Technology Network)
http://www.oracle.com/technology/index.html
■ 引用ページ
http://www.oracle.com/technology/oramag/oracle/06-nov/o66timesten.html?rssid=rss_otn_news
___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
記事本文
___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
◆ Is Memory a Silver Bullet?
Because Oracle TimesTen derives its performance benefits from keeping
an entire data store in memory, why not simply run Oracle Database and
configure the buffer cache to be large enough to hold an entire database
in memory? Wouldn't Oracle Database then perform just as well as Oracle
TimesTen? This is a good and fair question, worthy of some attention.
Oracle TimesTen was designed from the ground up as an in-memory database.
There are no logical I/Os in the sense that there are in Oracle Database.
There are no database blocks. There is no buffer cache. Index entries,
rather than containing logical row IDs, point directly to the memory
locations where their target rows can be found. Going from an index entry
to a row in Oracle TimesTen requires the simple dereferencing of a pointer.
When using the TimesTen Data Manager 6.0 driver, your application has
direct access to the memory holding the data; no costly context switches
are needed.
However, memory is not a silver bullet. Much has been written over the
past few years about the nonzero cost of logical I/Os in Oracle Database,
and although Oracle TimesTen may get the cost of accessing in-memory data
much closer to zero, there is still a cost. Good design is still important.
Queuing theory still applies. Performance optimization to reduce unneeded
work is still important.
___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
英語の解釈
※自然な語順で解釈する癖をつけるために敢えて不自然な日本語に
なっているところがあります。 ()書きは後続修飾節の修飾対象です。
___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
◆ Is Memory a Silver Bullet?
メモリは救世主なのか?
Because Oracle TimesTen derives its performance benefits
from keeping an entire data store in memory,
TimesTenは全てのデータストアをメモリに保持することで
パフォーマンス効果を得ていることを考えると、
why not simply run Oracle Database and configure the buffer cache to be large enough
何故OracleDBで単純にバッファキャッシュを十分に大きくしないのでしょうか
to hold an entire database in memory?
データベース全てをメモリに入れる為に(大きくしないのでしょうか)
Wouldn't Oracle Database then perform just as well as Oracle TimesTen?
そうしたらOracleDBはTimesTenと同様に早く動かないのでしょうか。
This is a good and fair question, worthy of some attention.
これは良い、正当な疑問です。注目に値します。
Oracle TimesTen was designed from the ground up as an in-memory database.
TimesTenはゼロからデザインされました、メモリDBとして
There are no logical I/Os in the sense that there are in Oracle Database.
ロジカルI/Oは発生しません、OracleDB上の意味では
There are no database blocks.
DBブロックは存在しません。
There is no buffer cache.
バッファキャッシュはありません。
Index entries, rather than containing logical row IDs,
インデックスエントリにおいては、論理的な行IDを含んでいるというよりは、
point directly to the memory locations where their target rows can be found.
メモリ位置を直接指しています、それらのターゲット行が存在する(位置を指しています)
Going from an index entry to a row in Oracle TimesTen requires
TimesTenでのインデックスエントリから行へのアクセスは要求します
the simple dereferencing of a pointer.
単純なポインタのポインタ参照を(要求します)
When using the TimesTen Data Manager 6.0 driver,
TimesTen Data Manager 6.0 ドライバを使用するとき、
your application has direct access
あなたのアプリケーションは、直接アクセスできます。
to the memory holding the data;
データを保持するメモリに;
no costly context switches are needed.
処理コストのかかるコンテキストスイッチ処理が必要とされません。
However, memory is not a silver bullet.
しかしながら、メモリは救世主ではありません。
Much has been written over the past few years
多くが過去数年間に渡って書かれています、
about the nonzero cost of logical I/Os in Oracle Database,
OracleDBではバッファI/Oがコストを要することについて、
and although Oracle TimesTen may get the cost of accessing in-memory data
much closer to zero,
そしてTimesTenがメモリデータへのアクセスコストを限りなくゼロに近づけたとしても、
there is still a cost.
そこにはまだ処理コストが存在します。
Good design is still important.
良い設計がやはり重要です。
Queuing theory still applies.
待ち行列理論は未だに適用されます。
Performance optimization to reduce unneeded work is still important.
パフォーマンスの最適化、不必要な動作を減らすための(最適化)はそれでも尚重要です。
------------------------------------------------------
★ 英語の語順での解釈の元祖はこちら
SIM:スーパーエルマー
http://jpan.jp/?simurl
通常の体験CDよりも豪華な体験版CDが手元にあるので
ご希望の方はこのメールのreplyにて希望の旨お知らせ下さい。
また上記リンクから無料体験版CDを申し込まれた方も
アフィリエイト報酬分をお送りしますのでお知らせ下さい。
------------------------------------------------------
___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
英語解説
___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
Silver Bullet
※銀の弾丸は狼男を殺せるということで、
容易に劇的な改善を生み出すものの代名詞として使用されます。
Because Oracle TimesTen derives its performance benefits
from keeping an entire data store in memory,
※derive:自動詞的用法で「由来する」という意味を持ちます。
通常は受動態で用いられます。
"Benkeis shin" is derived from the one vulnerability
of the Japanese warrior Benkei.
(弁慶の泣き所は日本の侍の弁慶の弱点に由来しています)
今回は他動詞で「derive A from B」でBによってAを得る
となります。
buffer cache
※バッファキャッシュはOracleDBにおけるメモリ上のデータを指します。
メモリDBを使用しなくてもOracleのバッファキャッシュが大きければ、
同じことじゃない?と言っています。
This is a good and fair question, worthy of some attention.
※worthy of ~:~を重んじる価値がある、値する、ふさわしい
Oracle TimesTen was designed from the ground up as an in-memory database.
※from the ground up:土台から、はじめから(先週と連続で登場です)
There are no logical I/Os in the sense that there are in Oracle Database.
※logical I/Os:通常DISKへのI/Oはphysical I/Oと呼びます。
それに反してバッファキャッシュ上のアクセスはlogical I/Oになります。
OracleDB上のバッファアクセスはTimesTenのメモリアクセスと異なり、
様々な処理が発生するので、Oracleのバッファアクセスとは異なることを
表現しています。
Index entries, rather than containing logical row IDs,
※OracleDBの通常のインデックス(索引)は実テーブルの該当レコードへの
識別子であるrowidを保有しています。
point directly to the memory locations where their target rows can be found.
※OracleDBの場合、rowidからさらに実際の行にたどりつくまでには様々な処理があるのに
比べ、これならとてもシンプルな制御ですみます。
Going from an index entry to a row in Oracle TimesTen requires
the simple dereferencing of a pointer.
※dereferencing of a pointer:dereferenceというのはC言語やC++言語における
ポインタ変数を意味します。「of a pointer」がついて、
さらにそのポインタ変数のポインタを指しています。
要は、メモリ上のindexエリアは配列になっていて、その配列の中には、
該当行の存在するメモリアドレスを持ったポインタを保有しています。
それでindexを検索する時に先頭からポインタを使用して検索していくので
ポインタのポインタを使用することになるという話だと思います。
no costly context switches are needed.
※context switches:OracleDBからバッファにアクセスする場合は、
アプリケーションからSQLエンジンに制御が切り替わるので、
context switchと呼ばれるCPU制御の切り替え処理が伴います。
これが過剰に発生するとマシン処理能力の低下につながります。
Queuing theory still applies.
※Queuing theory:待ち行列理論、ATMの行列など、システムの処理時間と
行列を作る人の割合などを元に平均待ち時間を導いたりする
ものです。
___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
★ 英語ぷちクイズ ★
※答えと思うリンクをぷちっとクリックしてください。
___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
☆なかま外れはどれでしょう
◆for instance
┗ http://clickenquete.com/a/a.php?M0002066Q0018009A11938
◆for example
┗ http://clickenquete.com/a/a.php?M0002066Q0018009A29b32
◆e.g.
┗ http://clickenquete.com/a/a.php?M0002066Q0018009A320a0
◆i.e.
┗ http://clickenquete.com/a/a.php?M0002066Q0018009A4abe3
○結果を見る
┗ http://clickenquete.com/a/r.php?Q0018009Cb2ec
締切:2006年11月23日18時00分
協力:クリックアンケート http://clickenquete.com/
こたえは次回に発表します。
------------------------------------------------------
★ ランキングにも一応参加しております
継続の励みにクリックいただければ幸いです。
「ブログ村、IT技術ブログランキング」
http://it.blogmura.com/in/080814.html
------------------------------------------------------
■ 前回のこたえ
☆一般的なくみ合わせはどれでしょうか。
A.across B.around C.throughout
☆1.(throughout) the company.(会社全体で)
○結果を見る
┗ http://clickenquete.com/a/r.php?Q0017862C9f4a
☆2.(around) the world.(世界中で)
○結果を見る
┗ http://clickenquete.com/a/r.php?Q0017864C5936
☆3.(across) the country.(国全体で)
○結果を見る
┗ http://clickenquete.com/a/r.php?Q0017865Ca8ad
まずは絵的なイメージを説明します。
across -->端から端まで一直線
around -->ぐるーりと一周
throughout-->至る所に行き渡る
次にGoogle件数チェック(Goopus)
780,000 across the company
331,000 around the company
※ 1,120,000 throughout the company
3,100,000 across the world
※321,000,000 around the world
24,700,000 throughout the world
※ 10,500,000 across the country
5,610,000 around the country
2,900,000 throughout the country
ヒット件数からもわかる通り、
表現したい絵的なイメージ次第で
どの選択肢も使うことが可能です。
___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
Oracle解説
___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
どちらが早いか考えるよりも動かすのが一番!
さくっと体験してみましょう。
■ Step1:自分のDBが無い人はまずここから
まずご自分のPCにOracleが入っていない場合、以下のリンクより入手して、
インストール、DB作成(および起動)まで行う必要があります。
http://www.oracle.com/technology/software/products/database/xe/index.html
■ TimesTenのインストール
http://www.oracle.com/technology/software/products/timesten
ダウンロードしてクリック連打でほとんど行けます。
■ Oracle側のユーザ作成、サンプルデータ作成
sqlplus / as sysdba
grant dba to dispatch identified by dispatch;
alter user tt default tablespace users;
conn dispatch/dispatch
grant dba to ttdispatch identified by ttdispatch;
alter user ttdispatch default tablespace users;
ここで引用先の「Code listing 1」create tableからcommit;までを
コピペしちゃいましょう。
次に以下の行を実行しておきましょう。
GRANT SELECT ON phones TO ttdispatch;
■ TimesTenに接続するためのDSN作成,リスナー起動、TimesTen接続
(DSNについてはこちらの用語解説欄をご覧下さい)
http://imoment.blogspot.com/2006/11/using-oracle-database-link-to-connect_07.html
1.「スタートボタン→設定→コントロールパネル」とクリックします。
2.作業する分野を選びますと出てきたら、左側のクラシック表示に切り替えるを
クリックしましょう(出ない人はそのまま3へ)
3.コントロールパネルウィンドウの中から「管理ツール」を探して
ダブルクリック
4.次の画面で「データ ソース (ODBC)」を見つけてダブルクリック
5.開いたウィンドウで「System DSN」タブをクリック
6.「Add」ボタン(or「新規」ボタン)をクリック
7.開いたウィンドウの一覧の下の方にあるTimes Ten Data Manager 6.0を
選んで「完了」ボタン
8.開いたウィンドウの中から以下の欄を編集
(ディレクトリaとtimestenは予め作成しておく)
「Data Source Name」 :ttdispatch
「Data Store Path +」:C:\a\timesten\ttdispatch
「Log Directory」 :C:\a\timesten
9.OKを押して終了(ここから少し引用先の手順とは変わります)
10.コマンドラインからttisqlを起動
11.以下のコマンドをたたく
Command> CONNECT dsn=ttdispatch;
Command> CREATE USER dispatch IDENTIFIED BY dispatch;
Command> GRANT ADMIN, DDL TO dispatch;
Command> disconnect;
12.手順1~5を再度行う
13.開いたウィンドウの一覧の下の方にある「ttdispatch」を
選んで「configure」ボタン(or 構成ボタン)
14.Genneral Connectionタブをクリック(ここから引用先手順にもどります)
15.開いたウィンドウの中から以下の欄を編集
「User ID」 :dispatch
16.Cache Connectタブをクリック
17.開いたウィンドウの中から以下の欄を編集
「Oracle Password」:dispatch
「Oracle ID」 :TNSサービス名
(TNSサービス名の意味がわからない場合は頑張ってリスナーの構成をしましょう)
18.OKボタンで終了します。
19.リスナー起動
コマンドプロンプトからlsnrctl start
20.コマンドラインからttisqlを起動
21.以下のコマンドをたたく
Command> CONNECT dsn=ttdispatch;
successfulという文字が出ていたら成功です。
■ TimesTen側でテーブル作ったりINSERTしてみたり
22.21.の続きで引用先のCreating Tablesの欄をコピペしましょう。
■ TimesTen側でOracle側データの読み取り専用参照
23.22.の続きで引用先のCode Listing 2と3をどんどんコピペしましょう。
以上でざっと最低限の動き確認でした。
あとは以下のマニュアルを見ながら色々ためしてみましょう。
http://otndnld.oracle.co.jp/document/products/timesten/html/B25770-02/toc.html
http://otndnld.oracle.co.jp/document/products/timesten/html/B25773-02/toc.html
___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
編集後記
___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
今号からご購読いただいた皆様はじめまして。
本日も最後まで読んでいただきありがとうございます。
先週の中間選挙の結果は言うまでも無く、共和党の敗北でした。
めでたく「Stem cell Research」も支持されることになりました。
週末に新宿御苑に行ったのですが、そこで動物実験廃止運動の団体が
キャンペーンをしていました。
一番かわいそうだったのが可愛い子犬がストレス実験の為に
左足の骨がむき出しになっていた写真です。
http://www.ava-net.net/fact/knowledge.html
人間のストレス研究の為に、罪の無い動物に死ぬまでストレスを
与え続けるのは惨すぎます。
少しの毛皮製品を作るためにどれだけの動物が
悲惨なかわはぎを受けてしまうかを考えると
毛皮製品は怖くて見れなくなります。
http://www.no-fur.org/video/furstela.html
生命の無駄な苦しみが少しでも減るよう
少しでもできることをやっていきたいです。
それではまた。
___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
おわりに
___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
記述誤りなどのご指摘、
記事に関する疑問点・質問・感想・ご意見・ご感想など
yakusa_oracle@yahoo.co.jpまでお願い致します。
簡単な自己紹介はこちら
http://pr2.cgiboy.com/S/3191274
バックナンバー兼ブログはこちら
http://imoment.blogspot.com/
登録・解除はこちらから
http://www.mag2.com/m/0000200441.htm
http://imoment.blogspot.com/2006/11/toctable-of-contents.html
こんにちは。いつもご購読くださりありがとうございます。
新しくご購読いただいた皆様も始めまして^^
だんだん寒くなってきましたね。
先週に引き続きOTN(Oracle Technology Network)から引用します。
メモリ上のデータベース、Oracle TimesTen in-memory databaseについての記事です。
Oracleは2005年6月にメモリデータベースの大手であるTimesTen社を買収しました。
マイクロ秒(1/100万)単位でデータを更新、検索するデータベースは、
Cisco,Ericsson,JP Morgan,Lucent,Nokiaなどをはじめ、
通信、金融、軍事、航空などの極めてtime-criticalなシステムで採用されています。
今回の引用文で紹介されていますが、
アメリカの110番(911)のシステムでも採用されているそうです。
911のオペレータ画面では、電話がかかると同時に電話番号、住所、地図などが
表示されるとのこと。こういったことが数秒遅れるだけで。。。
命にかかわってしまう まさにTimesTen採用の良い例として紹介されています。
通常は、Replicationオプションを使用して2台の平行稼動とし、
パフォーマンスや冗長性を高めます。
また、Cache Connectというオプションを使用して、
Oracle Databaseと連携することができます。
最近は数TBのDBは珍しくなくなっていますので、
GB単位のメモリDBとTB単位のディスクDBとで上手に連携することが理想です。
例えば、頻繁に使用するデータや、ログイン中アカウントデータなどを
メモリDBに置くとか、トランザクション終了時点でメモリDBから
ディスクDBへ戻るなど応用方法は多岐にわたります。
ここまで聞くと、単にOracleのキャッシュを大きくとって使えば
あまり変わらないのでは?と考えられる方もいらっしゃるかと思います。
そんな疑問に対して何故TimesTenが有利なのかが説明されている
文章を引用したいと思います。
■ OTN (Oracle Technology Network)
http://www.oracle.com/technology/index.html
■ 引用ページ
http://www.oracle.com/technology/oramag/oracle/06-nov/o66timesten.html?rssid=rss_otn_news
___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
記事本文
___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
◆ Is Memory a Silver Bullet?
Because Oracle TimesTen derives its performance benefits from keeping
an entire data store in memory, why not simply run Oracle Database and
configure the buffer cache to be large enough to hold an entire database
in memory? Wouldn't Oracle Database then perform just as well as Oracle
TimesTen? This is a good and fair question, worthy of some attention.
Oracle TimesTen was designed from the ground up as an in-memory database.
There are no logical I/Os in the sense that there are in Oracle Database.
There are no database blocks. There is no buffer cache. Index entries,
rather than containing logical row IDs, point directly to the memory
locations where their target rows can be found. Going from an index entry
to a row in Oracle TimesTen requires the simple dereferencing of a pointer.
When using the TimesTen Data Manager 6.0 driver, your application has
direct access to the memory holding the data; no costly context switches
are needed.
However, memory is not a silver bullet. Much has been written over the
past few years about the nonzero cost of logical I/Os in Oracle Database,
and although Oracle TimesTen may get the cost of accessing in-memory data
much closer to zero, there is still a cost. Good design is still important.
Queuing theory still applies. Performance optimization to reduce unneeded
work is still important.
___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
英語の解釈
※自然な語順で解釈する癖をつけるために敢えて不自然な日本語に
なっているところがあります。 ()書きは後続修飾節の修飾対象です。
___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
◆ Is Memory a Silver Bullet?
メモリは救世主なのか?
Because Oracle TimesTen derives its performance benefits
from keeping an entire data store in memory,
TimesTenは全てのデータストアをメモリに保持することで
パフォーマンス効果を得ていることを考えると、
why not simply run Oracle Database and configure the buffer cache to be large enough
何故OracleDBで単純にバッファキャッシュを十分に大きくしないのでしょうか
to hold an entire database in memory?
データベース全てをメモリに入れる為に(大きくしないのでしょうか)
Wouldn't Oracle Database then perform just as well as Oracle TimesTen?
そうしたらOracleDBはTimesTenと同様に早く動かないのでしょうか。
This is a good and fair question, worthy of some attention.
これは良い、正当な疑問です。注目に値します。
Oracle TimesTen was designed from the ground up as an in-memory database.
TimesTenはゼロからデザインされました、メモリDBとして
There are no logical I/Os in the sense that there are in Oracle Database.
ロジカルI/Oは発生しません、OracleDB上の意味では
There are no database blocks.
DBブロックは存在しません。
There is no buffer cache.
バッファキャッシュはありません。
Index entries, rather than containing logical row IDs,
インデックスエントリにおいては、論理的な行IDを含んでいるというよりは、
point directly to the memory locations where their target rows can be found.
メモリ位置を直接指しています、それらのターゲット行が存在する(位置を指しています)
Going from an index entry to a row in Oracle TimesTen requires
TimesTenでのインデックスエントリから行へのアクセスは要求します
the simple dereferencing of a pointer.
単純なポインタのポインタ参照を(要求します)
When using the TimesTen Data Manager 6.0 driver,
TimesTen Data Manager 6.0 ドライバを使用するとき、
your application has direct access
あなたのアプリケーションは、直接アクセスできます。
to the memory holding the data;
データを保持するメモリに;
no costly context switches are needed.
処理コストのかかるコンテキストスイッチ処理が必要とされません。
However, memory is not a silver bullet.
しかしながら、メモリは救世主ではありません。
Much has been written over the past few years
多くが過去数年間に渡って書かれています、
about the nonzero cost of logical I/Os in Oracle Database,
OracleDBではバッファI/Oがコストを要することについて、
and although Oracle TimesTen may get the cost of accessing in-memory data
much closer to zero,
そしてTimesTenがメモリデータへのアクセスコストを限りなくゼロに近づけたとしても、
there is still a cost.
そこにはまだ処理コストが存在します。
Good design is still important.
良い設計がやはり重要です。
Queuing theory still applies.
待ち行列理論は未だに適用されます。
Performance optimization to reduce unneeded work is still important.
パフォーマンスの最適化、不必要な動作を減らすための(最適化)はそれでも尚重要です。
------------------------------------------------------
★ 英語の語順での解釈の元祖はこちら
SIM:スーパーエルマー
http://jpan.jp/?simurl
通常の体験CDよりも豪華な体験版CDが手元にあるので
ご希望の方はこのメールのreplyにて希望の旨お知らせ下さい。
また上記リンクから無料体験版CDを申し込まれた方も
アフィリエイト報酬分をお送りしますのでお知らせ下さい。
------------------------------------------------------
___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
英語解説
___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
Silver Bullet
※銀の弾丸は狼男を殺せるということで、
容易に劇的な改善を生み出すものの代名詞として使用されます。
Because Oracle TimesTen derives its performance benefits
from keeping an entire data store in memory,
※derive:自動詞的用法で「由来する」という意味を持ちます。
通常は受動態で用いられます。
"Benkeis shin" is derived from the one vulnerability
of the Japanese warrior Benkei.
(弁慶の泣き所は日本の侍の弁慶の弱点に由来しています)
今回は他動詞で「derive A from B」でBによってAを得る
となります。
buffer cache
※バッファキャッシュはOracleDBにおけるメモリ上のデータを指します。
メモリDBを使用しなくてもOracleのバッファキャッシュが大きければ、
同じことじゃない?と言っています。
This is a good and fair question, worthy of some attention.
※worthy of ~:~を重んじる価値がある、値する、ふさわしい
Oracle TimesTen was designed from the ground up as an in-memory database.
※from the ground up:土台から、はじめから(先週と連続で登場です)
There are no logical I/Os in the sense that there are in Oracle Database.
※logical I/Os:通常DISKへのI/Oはphysical I/Oと呼びます。
それに反してバッファキャッシュ上のアクセスはlogical I/Oになります。
OracleDB上のバッファアクセスはTimesTenのメモリアクセスと異なり、
様々な処理が発生するので、Oracleのバッファアクセスとは異なることを
表現しています。
Index entries, rather than containing logical row IDs,
※OracleDBの通常のインデックス(索引)は実テーブルの該当レコードへの
識別子であるrowidを保有しています。
point directly to the memory locations where their target rows can be found.
※OracleDBの場合、rowidからさらに実際の行にたどりつくまでには様々な処理があるのに
比べ、これならとてもシンプルな制御ですみます。
Going from an index entry to a row in Oracle TimesTen requires
the simple dereferencing of a pointer.
※dereferencing of a pointer:dereferenceというのはC言語やC++言語における
ポインタ変数を意味します。「of a pointer」がついて、
さらにそのポインタ変数のポインタを指しています。
要は、メモリ上のindexエリアは配列になっていて、その配列の中には、
該当行の存在するメモリアドレスを持ったポインタを保有しています。
それでindexを検索する時に先頭からポインタを使用して検索していくので
ポインタのポインタを使用することになるという話だと思います。
no costly context switches are needed.
※context switches:OracleDBからバッファにアクセスする場合は、
アプリケーションからSQLエンジンに制御が切り替わるので、
context switchと呼ばれるCPU制御の切り替え処理が伴います。
これが過剰に発生するとマシン処理能力の低下につながります。
Queuing theory still applies.
※Queuing theory:待ち行列理論、ATMの行列など、システムの処理時間と
行列を作る人の割合などを元に平均待ち時間を導いたりする
ものです。
___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
★ 英語ぷちクイズ ★
※答えと思うリンクをぷちっとクリックしてください。
___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
☆なかま外れはどれでしょう
◆for instance
┗ http://clickenquete.com/a/a.php?M0002066Q0018009A11938
◆for example
┗ http://clickenquete.com/a/a.php?M0002066Q0018009A29b32
◆e.g.
┗ http://clickenquete.com/a/a.php?M0002066Q0018009A320a0
◆i.e.
┗ http://clickenquete.com/a/a.php?M0002066Q0018009A4abe3
○結果を見る
┗ http://clickenquete.com/a/r.php?Q0018009Cb2ec
締切:2006年11月23日18時00分
協力:クリックアンケート http://clickenquete.com/
こたえは次回に発表します。
------------------------------------------------------
★ ランキングにも一応参加しております
継続の励みにクリックいただければ幸いです。
「ブログ村、IT技術ブログランキング」
http://it.blogmura.com/in/080814.html
------------------------------------------------------
■ 前回のこたえ
☆一般的なくみ合わせはどれでしょうか。
A.across B.around C.throughout
☆1.(throughout) the company.(会社全体で)
○結果を見る
┗ http://clickenquete.com/a/r.php?Q0017862C9f4a
☆2.(around) the world.(世界中で)
○結果を見る
┗ http://clickenquete.com/a/r.php?Q0017864C5936
☆3.(across) the country.(国全体で)
○結果を見る
┗ http://clickenquete.com/a/r.php?Q0017865Ca8ad
まずは絵的なイメージを説明します。
across -->端から端まで一直線
around -->ぐるーりと一周
throughout-->至る所に行き渡る
次にGoogle件数チェック(Goopus)
780,000 across the company
331,000 around the company
※ 1,120,000 throughout the company
3,100,000 across the world
※321,000,000 around the world
24,700,000 throughout the world
※ 10,500,000 across the country
5,610,000 around the country
2,900,000 throughout the country
ヒット件数からもわかる通り、
表現したい絵的なイメージ次第で
どの選択肢も使うことが可能です。
___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
Oracle解説
___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
どちらが早いか考えるよりも動かすのが一番!
さくっと体験してみましょう。
■ Step1:自分のDBが無い人はまずここから
まずご自分のPCにOracleが入っていない場合、以下のリンクより入手して、
インストール、DB作成(および起動)まで行う必要があります。
http://www.oracle.com/technology/software/products/database/xe/index.html
■ TimesTenのインストール
http://www.oracle.com/technology/software/products/timesten
ダウンロードしてクリック連打でほとんど行けます。
■ Oracle側のユーザ作成、サンプルデータ作成
sqlplus / as sysdba
grant dba to dispatch identified by dispatch;
alter user tt default tablespace users;
conn dispatch/dispatch
grant dba to ttdispatch identified by ttdispatch;
alter user ttdispatch default tablespace users;
ここで引用先の「Code listing 1」create tableからcommit;までを
コピペしちゃいましょう。
次に以下の行を実行しておきましょう。
GRANT SELECT ON phones TO ttdispatch;
■ TimesTenに接続するためのDSN作成,リスナー起動、TimesTen接続
(DSNについてはこちらの用語解説欄をご覧下さい)
http://imoment.blogspot.com/2006/11/using-oracle-database-link-to-connect_07.html
1.「スタートボタン→設定→コントロールパネル」とクリックします。
2.作業する分野を選びますと出てきたら、左側のクラシック表示に切り替えるを
クリックしましょう(出ない人はそのまま3へ)
3.コントロールパネルウィンドウの中から「管理ツール」を探して
ダブルクリック
4.次の画面で「データ ソース (ODBC)」を見つけてダブルクリック
5.開いたウィンドウで「System DSN」タブをクリック
6.「Add」ボタン(or「新規」ボタン)をクリック
7.開いたウィンドウの一覧の下の方にあるTimes Ten Data Manager 6.0を
選んで「完了」ボタン
8.開いたウィンドウの中から以下の欄を編集
(ディレクトリaとtimestenは予め作成しておく)
「Data Source Name」 :ttdispatch
「Data Store Path +」:C:\a\timesten\ttdispatch
「Log Directory」 :C:\a\timesten
9.OKを押して終了(ここから少し引用先の手順とは変わります)
10.コマンドラインからttisqlを起動
11.以下のコマンドをたたく
Command> CONNECT dsn=ttdispatch;
Command> CREATE USER dispatch IDENTIFIED BY dispatch;
Command> GRANT ADMIN, DDL TO dispatch;
Command> disconnect;
12.手順1~5を再度行う
13.開いたウィンドウの一覧の下の方にある「ttdispatch」を
選んで「configure」ボタン(or 構成ボタン)
14.Genneral Connectionタブをクリック(ここから引用先手順にもどります)
15.開いたウィンドウの中から以下の欄を編集
「User ID」 :dispatch
16.Cache Connectタブをクリック
17.開いたウィンドウの中から以下の欄を編集
「Oracle Password」:dispatch
「Oracle ID」 :TNSサービス名
(TNSサービス名の意味がわからない場合は頑張ってリスナーの構成をしましょう)
18.OKボタンで終了します。
19.リスナー起動
コマンドプロンプトからlsnrctl start
20.コマンドラインからttisqlを起動
21.以下のコマンドをたたく
Command> CONNECT dsn=ttdispatch;
successfulという文字が出ていたら成功です。
■ TimesTen側でテーブル作ったりINSERTしてみたり
22.21.の続きで引用先のCreating Tablesの欄をコピペしましょう。
■ TimesTen側でOracle側データの読み取り専用参照
23.22.の続きで引用先のCode Listing 2と3をどんどんコピペしましょう。
以上でざっと最低限の動き確認でした。
あとは以下のマニュアルを見ながら色々ためしてみましょう。
http://otndnld.oracle.co.jp/document/products/timesten/html/B25770-02/toc.html
http://otndnld.oracle.co.jp/document/products/timesten/html/B25773-02/toc.html
___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
編集後記
___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
今号からご購読いただいた皆様はじめまして。
本日も最後まで読んでいただきありがとうございます。
先週の中間選挙の結果は言うまでも無く、共和党の敗北でした。
めでたく「Stem cell Research」も支持されることになりました。
週末に新宿御苑に行ったのですが、そこで動物実験廃止運動の団体が
キャンペーンをしていました。
一番かわいそうだったのが可愛い子犬がストレス実験の為に
左足の骨がむき出しになっていた写真です。
http://www.ava-net.net/fact/knowledge.html
人間のストレス研究の為に、罪の無い動物に死ぬまでストレスを
与え続けるのは惨すぎます。
少しの毛皮製品を作るためにどれだけの動物が
悲惨なかわはぎを受けてしまうかを考えると
毛皮製品は怖くて見れなくなります。
http://www.no-fur.org/video/furstela.html
生命の無駄な苦しみが少しでも減るよう
少しでもできることをやっていきたいです。
それではまた。
___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
おわりに
___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
記述誤りなどのご指摘、
記事に関する疑問点・質問・感想・ご意見・ご感想など
yakusa_oracle@yahoo.co.jpまでお願い致します。
簡単な自己紹介はこちら
http://pr2.cgiboy.com/S/3191274
バックナンバー兼ブログはこちら
http://imoment.blogspot.com/
登録・解除はこちらから
http://www.mag2.com/m/0000200441.htm
コメントを投稿