20070122

Oracle B-Tree Index Internals:Rebuilding The Truth(2)

1万2千部を超える人気メルマガ「1分で治る!あなたの通じない英語」の
発行者であるTOMOさんが、同メルマガの有料版(2,500円)
【1分で治る!あなたの通じない英語-Revo-】
を無料開放しました。

驚くべき特典として、キャンペーン期間中にメルマガ登録すれば、
有料版のはずのメルマガを永遠に無料購読できます(爆)
カラーでとても見やすいです。

さらに追加プレゼントとして、定価15,000円の教材
【恐怖の誤英語克服マニュアル】を無料でプレゼントしてくれるそうです。

お申込みはこちらからどうぞ。
http://www.ne.jp/asahi/forward/school/000.html

___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
英語で Oracle! #035 2007/01/23
___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
今までの目次です。
http://imoment.blogspot.com/2006/11/toctable-of-contents.html

おはようございます。今更ながらyoutubeってすごいです。
無名の女性シンガーMiaaRoseさんのページが、30万ヒットしてる。。。
コメントやVideo Responseも後を絶ちません。(スカウトに近いコメントも)

http://www.youtube.com/watch?v=oRXuNIsA74w

イギリス人ながら、アメリカ的な発音を持つ彼女は発音の勉強の参考になります。

youtubeの彼女のprofileページは170万アクセス。subscriberは2万5千人。
http://www.youtube.com/profile?user=miaarose

それに比べて実際のホームページは3万アクセスとさみしいです。
http://www.miaarose.net/

すみません大分話がそれてしまいました。

引き続きRichard FooteさんのIndex Rebuildに関するプレゼン資料を
ご紹介します。

※今回も引用しきれていないので、あと数回に分けて
お送りしたいと思います。

※index用語に慣れていない方は、先にoracle解説のコーナーで
知らない用語について確認されるといいかもしれません。


■ askTomでのindex rebuildに関するdiscussion
http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:2913600659112

※今回は引用PDFを紹介している適切なサイトが無いので、
その資料について触れているaskTomのdiscussionをリンクとして
ご紹介します。

■ 引用PDFファイル
http://www.actoug.org.au/Downloads/oracle_index_internals.pdf

___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
記事本文
___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
◆ Index Creation and PCTFREE

- When an index is created, Oracle reserves the pctfree value as free space
- pctfree has a default of 10% resulting in 10% of an index remaining free
after creation
- Why ?
- To reduce and delay the occurrence of index block splits
- If there isn’t sufficient space in an index block for the new entry,
a block split is performed

◆ 50-50 Leaf Block Steps

An index block split is a relatively expensive operation:

1. Allocate new index block from index freelist
2. Redistribute block so the lower half (by volume) of index entries
remain in current block and move the other half into the new block
3. Insert the new index entry into appropriate leaf block
4. Update the previously full block such that its “next leaf block
pointer” (kdxlenxt) references the new block
5. Update the leaf block that was the right of the previously full block
such that its “previous leaf block pointer”(kdxleprv) also points to
the new block
6. Update the branch block that references the full block and add a
new entry to point to the new leaf block (effectively the lowest
value in the new leaf block)

◆ 50-50 Branch Block Splits

Insert operation is even more expensive if the corresponding branch block
is also full:

1. Allocate a new index block from the freelist
2. Redistribute the index entries in the branch block that is currently
full such that half of the branch entries (the greater values) are
placed in the new block
3. Insert the new branch entry into the appropriate branch block
4. Update the branch block in the level above and add a new entry
to point to the new branch block

◆ 50-50 Root Block Split

Root block is just a special case of a branch block:

1. Allocate two new blocks from the freelist
2. Redistributed the entries in the root block such that half the entries are
placed in one new block, the other half in the other block
3. Update the root block such that it now references the two new blocks
The root block is always physically the same block.
The root block split is the only time when the height of index increases
Therefore an index must always be balanced. Always !!
Suggestions that Oracle indexes become unbalanced are another silly
myth, made by those that don’t understand index block splits.

◆ 90-10 Block Splits

- If the new insert index entry is the maximum value, a 90-10 block split
is performed
- Reduces wastage of space for index with monotonically increasing values
- Rather than leaving behind . empty blocks, full index blocks are generated
- I prefer to call them 99-1 block splits as 90-10 is misleading

◆ Deleted Index Space

- When a delete (or update) is performed, Oracle marks the entry as deleted.

___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
英語の解釈
※自然な語順で解釈する癖をつけるために敢えて不自然な日本語に
なっているところがあります。 ()書きは後続修飾節の修飾対象です。
___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
◆ Index Creation and PCTFREE
indexの作成とpctfree

- When an index is created, Oracle reserves the pctfree value as free space
indexが作成されるとき、oracleはPCTFREE値を空き領域として予約します。

- pctfree has a default of 10% resulting in 10% of an index remaining free
after creation
pctfreeのデフォルトは10%なので、10%の空き領域がindex作成直後に
残っていることになります。

- Why ?
なぜ?

- To reduce and delay the occurrence of index block splits
indexブロック分割による遅延を減らすためです。

- If there isn’t sufficient space in an index block for the new entry,
a block split is performed
新しいエントリのための充分な空き領域がindexブロック内に存在しない場合、
ブロック分割が行われます。

◆ 50-50 Leaf Block Steps
50-50リーフブロックのステップ

An index block split is a relatively expensive operation:
indexのブロック分割は比較的時間を要する作業です。

1. Allocate new index block from index freelist
index freelistから新しいindex blockを割り当てます。

2. Redistribute block so the lower half (by volume) of index entries
remain in current block and move the other half into the new block
現在のブロック内のindexエントリの(容量の)半分未満のindex
エントリが現在のブロックに残り、もう一方の半分が新しいブロックに
割り当てられるよう、ブロックを再配置します。

3. Insert the new index entry into appropriate leaf block
新しいindex entryを適切なリーフブロックに挿入します。

4. Update the previously full block such that its “next leaf block
pointer” (kdxlenxt) references the new block
満杯だったブロックの「次のリーフブロックのポインタ」が
新しいリーフブロックを参照するように更新します。

5. Update the leaf block that was the right of the previously full block
such that its “previous leaf block pointer”(kdxleprv) also points to
the new block
満杯だったブロックの右側にあったリーフブロックの
「直前のリーフブロックポインタ」が新しいリーフブロックを参照するように更新します。

6. Update the branch block that references the full block and add a
new entry to point to the new leaf block (effectively the lowest
value in the new leaf block)
満杯だったブロックを参照するブランチブロックを更新し、
新しいブロックへ向けた新しいエントリポイントを追加します。
(事実上、新しいブロックの最も低い値)


◆ 50-50 Branch Block Splits
50-50ブランチブロックの分割

Insert operation is even more expensive if the corresponding branch block
is also full:
対応するブランチブロックが一杯になってしまった場合、
insertはさらに処理時間を要します。

1. Allocate a new index block from the freelist
index freelistから新しいindex blockを割り当てます。

2. Redistribute the index entries in the branch block that is currently
full such that half of the branch entries (the greater values) are
placed in the new block
約半分のブランチエントリ(大きい値のほう)が新しいブロックに
移動するように現在いっぱいになっているブランチブロックに
indexエントリを再配置します。

3. Insert the new branch entry into the appropriate branch block
新しいブランチエントリを適切なブランチブロックに挿入します。

4. Update the branch block in the level above and add a new entry
to point to the new branch block
ひとつ上のレベルのブランチブロックを更新し、
新しいブランチブロックのエントリポイントを追加します。


◆ 50-50 Root Block Split

Root block is just a special case of a branch block:
rootブロックは単にブランチブロックの特殊ケースです。

1. Allocate two new blocks from the freelist
index freelistから新しいindex blockを2つ割り当てます。

2. Redistributed the entries in the root block such that half the entries are
placed in one new block, the other half in the other block
再配置されたrootブロックに存在していたエントリの半分が
新しいブロックの1つに配置されます。
残りの半分をもうひとつの新しいブロックに移動します。

3. Update the root block such that it now references the two new blocks
rootブロックから新しい2つのブロックを参照するよう更新します。

The root block is always physically the same block.
rootブロックは常に同じ物理的にブロックです。

The root block split is the only time when the height of index increases
rootブロックの分割はindexのレベルを上げるただひとつのケースです。

Therefore an index must always be balanced. Always !!
ですから常にインデックスのバランスは保たれているのです。常に!!

Suggestions that Oracle indexes become unbalanced are another silly
myth, made by those that don't understand index block splits.
Oracleのindexがアンバランスになるという提案はindexの分割を
理解していないために思いついてしまうもうひとつのバカげた提案なのです。


◆ 90-10 Block Splits
90-10 ブロック分割

- If the new insert index entry is the maximum value, a 90-10 block split
is performed
もし、新しいinsertのindexエントリが最大の値だった場合、
90-10ブロック分割が発生します。

- Reduces wastage of space for index with monotonically increasing values
単調に値が増加していくケースによるindex領域の消耗を低減します。

- Rather than leaving behind. empty blocks, full index blocks are generated
空き領域を持つブロックを後ろに残すのではなく、満杯のブロックを生成します。

- I prefer to call them 99-1 block splits as 90-10 is misleading
90-10だと誤解を招くので、私はこれを99-1分割と呼ぶことを好んでいます。


◆ Deleted Index Space
index spaceの削除

- When a delete (or update) is performed, Oracle marks the entry as deleted.
delete(またはupdate)が発生すると、oracleはその領域に削除の印をつけます。


___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
英語解説
___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
◆ Index Creation and PCTFREE

PCTFREE:percent of free spaceを意味するOracleのtableやindexに指定する
物理属性。(oracle解説参照)


An index block split is a relatively expensive operation:

relatively:比較的


1. Allocate new index block from index freelist

allocate:割り当てる、全体から1部分を分け与える
freelist:空きブロックの一覧を保持するリスト (詳細はOracle解説参照)


2. Redistribute block so the lower half (by volume) of index entries
remain in current block and move the other half into the new block

redistribute:再分配する
by volume:容量の


3. Insert the new index entry into appropriate leaf block

appropriate:適切な


4. Update the previously full block such that its “next leaf block
pointer” (kdxlenxt) references the new block

previously:以前の


6. Update the branch block that references the full block and add a
new entry to point to the new leaf block (effectively the lowest
value in the new leaf block)

effectively:実質的には、効果的に(今回は実質の意味で使用)


Insert operation is even more expensive if the corresponding branch block
is also full:

even more:さらに、いっそう
correspoinding:対応した、呼応した


The root block is always physically the same block.

physically:肉体的に、物理的に、自然の法則に関連した


Therefore an index must always be balanced. Always !!

therefore:従って


Suggestions that Oracle indexes become unbalanced are another silly
myth, made by those that don't understand index block splits.

suggestion:提案、忠告、暗示、示唆
人ではなく状況が主語になる場合、暗示や示唆になる
ここではDBA Expertが暗黙の主語なっているので提案の意味
made by those that ~:that以下によって作られた(mythの修飾節)


- Reduces wastage of space for index with monotonically increasing values

wastage:お金、時間、物質、エネルギーなどの不必要な使い込み(消耗、浪費)
monotonically:単調に(mono=単一 + tone=調子、音)
(toがアクセントです。monotoneはmoがアクセントです)
ちなみに日本語では白黒などで構成された色彩を
モノトーンと呼びますが、英語ではこのニュアンスはありません。
ただの単一色を意味するので、鮮やかな単一色もmonotoneになりえます。
(一般的には地味な色合いの単一色を指します)


- I prefer to call them 99-1 block splits as 90-10 is misleading

prefer:(他よりも)好む
prefer A to BならBよりAを好む
misleading:誤解を招く、正しくないことを信じさせる


___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
★ 英語ぷちクイズ ★

※答えと思うリンクをぷちっとクリックしてください。
___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄

☆現在完了形は英語でどう言いますか

◆present perfect
http://clickenquete.com/a/a.php?M0002066Q0019172A17e3c
◆current complete
http://clickenquete.com/a/a.php?M0002066Q0019172A25506
◆present finish
http://clickenquete.com/a/a.php?M0002066Q0019172A31515
◆current perfect
http://clickenquete.com/a/a.php?M0002066Q0019172A446cd
○結果を見る
http://clickenquete.com/a/r.php?Q0019172Ccd12

締切:2007年01月30日23時00分
協力:クリックアンケート http://clickenquete.com/

こたえは次回に発表します。


■ 前回のこたえ

1)There's a coffee shop ( at ) the end of the block.

○結果を見る
http://clickenquete.com/a/r.php?Q0019067Cf7b2

2)Where are you? ( In ) a taxi.

○結果を見る
http://clickenquete.com/a/r.php?Q0019068Cc7c5

3)There was a big chair ( in ) the middle of the room.

○結果を見る
http://clickenquete.com/a/r.php?Q0019069Ce5fb

4)Who is she ( in ) this photograph?

○結果を見る
http://clickenquete.com/a/r.php?Q0019070C5f93

5)Ross is ( in ) the hostpital.

○結果を見る
http://clickenquete.com/a/r.php?Q0019071C130d

6)I came school ( on ) the bus.

○結果を見る
http://clickenquete.com/a/r.php?Q0019072Ca29c

====================
★ 場所を指す場合 ★
====================

◆ in:
その中や空間にいる状態を表したい場合や建物そのもを指すに使用する
例(国、街、公園、ベッド、病院、空、世界)

◆ at:
漠然とした場所でなく、位置をさらに特定したい場合、
目的や目印として指す場合、
もしくは交通機関の場所を表したい場合に使用する
例(空港、バス停、駅、デスク、ドア、交差点)

◆ on:
その場所の表面にくっついていることをイメージする場合、
例(階、道、天井、壁、テーブル)


======================================
★ 乗り物に乗っている状態を表す場合 ★
======================================

◆ on:
電車、バス、飛行機、ボート、船、馬、自転車

◆ in:
車、タクシー

※移動手段として話している場合はbyを使用


====================
★ 時間を表す場合 ★
====================

◆ at:
時刻、時間、夜(nihgt)、行事(christmas,thanks giving)

◆ on:
曜日、日、週末、行事の日(christmas day,birthday)

◆ in:
月、年、世紀、以内(in five minutes=5分以内)

※nextやlastなどを修飾する場合、前置詞は省略します。


============
★ その他 ★
============

仕事場:at work
イベント会場:at party,at wedding party,at a concert,at a baseball game
家:(at) home (atは省略可)
学校:学校に現在いる場合はat、学校に所属していることを指す場合はin


___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
Oracle解説
___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
用語を順々に説明いたしますので分かっている用語については
どんどん飛ばしてください

-・ PCTFREE,PCTUSED ・-・-・-・-・-・-・-・-・-・-・-・-・-・

<PCTFREE>
tableやindex内のブロックで、insert時点ではブロックの容量全てを使い切らずに、
将来の更新の為にPCTFREEで指定したパーセント分空き領域を確保します。
デフォルトは10です。
indexにおけるPCTFREEの変更はrebuild時や、split partition時、
modify default attributes時のみ可能です。

<PCTUSED>
一度PCTFREEに達したブロックが行削除などにより、PCTUSEDで指定した
パーセントまで下がった場合、再びそのブロックがFREELISTへ登録され、
行挿入が可能になります。 (デフォルトは40)
indexではPCTUSEDを指定することはできません。


ブロックに格納されるデータ量の制御の流れを以下に示します。

<tableの場合>
1)FREELIST(後述)から空いているブロックを判断し、行挿入用に割り当てる。
2)1)で割り当てたブロックの使用量がPCTFREEの閾値に達するまで
後続のデータ挿入処理が続く。
3)PCTFREEに達したブロックは使用済みブロックとしてFREELISTから
登録が外される。
4)PCTFREEによって確保された空き領域は既にそのブロックに格納された
行の更新用に使用される。
5)一度PCTFREEに達したブロックが行削除などにより、PCTUSEDで指定した
パーセントまで下がった場合、再びそのブロックがFREELISTへ登録され、
行挿入が可能になります。

<indexの場合>
1)Create Indexの時点で、PCTFREE分だけ空き領域を残して、
indexの種別に従って適切な順序で全てのデータを格納します。
2)PCTFREEによって確保された空き領域は既にそのブロックに格納された
列の更新やtableに挿入された行に対応したentryをindex側にも
追加するために使用される。
3)indexにはPCTUSEDを指定できないので一度割りあてられたブロック内の
index entryのデータがいくら削除されようとそのブロックが再び
FREELISTに戻ることは無い。これはindexのブロック分割を極力減らす
ことを目的とした考慮です。従って必要以上の空きスペースが増えた場合に
DBAによるREBUILDまたはCOALESCEの検討が必要になる訳です。

-・ PCTFREE,PCTUSED ここまで -・-・-・-・-・-・-・-・-・-・-・


-・ FREELIST -・-・-・-・-・-・-・-・-・-・-・-・-・-・-・

tableやindex内で、使用可能なブロックの一覧を保持しているリストです。
8iまではFREELISTSパラメタによってその数を手動で管理する必要がありましたが、
9iからは表領域作成時にSEGMENT SPACE MANAGEMENT AUTOを指定することで
BITMAPによる自動管理が選択されるようになりました。(10gからはデフォルト)

自動管理を選択した場合、PCTUSED,FREELISTS,FREELIST GROUPSの値は
無視されます。

-・ FREELIST ここまで-・-・-・-・-・-・-・-・-・-・-・-・-・

今回の引用はPCTFREEの説明から始まり、様々なINDEXブロック分割の
内部動作を解説しています。

説明しているのは以下の4つのブロック分割です。

◆ 50-50 Leaf Block Splits

リーフブロックのブロック分割です。
1つのリーフブロックにindexエントリが入りきらない状態が発生した場合、
容量単位で半分に分裂し、前のリーフブロックのNEXTリーフブロックポインタと
次のリーフブロックのPREVIOUSリーフブロックポインタが更新されます。
また親となるブランチブロックのエントリポイントのリストを更新します。

※リーフブロックやブランチブロックについては前号のOracle解説を参照
http://imoment.blogspot.com/2007/01/oracle-b-tree-index.html

◆ 50-50 Branch Block Splits

ブランチブロックの分割です。
ブランチブロックに格納されているリーフブロック(または子ブランチブロック)
へのエントリポイントのリストが1つのブロックに収まりきらなくなった場合、
2つに分裂します。親ブランチブロック(またはrootブロック)のエントリポイントも
更新します。

◆ 50-50 Root Block Split

rootブロックのブロック分割です。
ブランチブロックの分割と似ているのですが、新しく親となるrootブロックが
誕生します。rootブロックの分割が唯一のindexのレベルを上げる要因です。

◆ 90-10 Block Splits

50-50 Bransh Block Splitsの特殊ケースです。
追加する値がb-tree index内で最も大きな場合に起こります。
50-50で分割するのではなく、99-1で満杯になったブロックはそのままで、
新しく追加する値だけが格納されたブロックを生成します。
これは単純に値が増加していくindexの無駄な領域発生を防ぐための考慮です。

___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
編集後記
___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
今号からご購読いただいた皆様はじめまして。
本日も最後まで読んでいただきありがとうございます。

今週末、近所のLAZONAというショッピングモールの
ビックカメラで新PCを購入しました。
3万円引きに釣られて、Flets光まで申し込んでしまいました。
後で調べてみたら、うちのマンションは100MBを120世帯で共有しているとのこと。
タイミングによっては、今のADSLより遅くなるんじゃないの?orz

それではまた。

___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
おわりに
___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
記述誤りなどのご指摘、
記事に関する疑問点・質問・感想・ご意見・ご感想など
yakusa_oracle@yahoo.co.jpまでお願い致します。

簡単な自己紹介はこちら
http://pr2.cgiboy.com/S/3191274

バックナンバー兼ブログはこちら
http://imoment.blogspot.com/

登録・解除はこちらから
http://www.mag2.com/m/0000200441.htm

20070116

バックアップの歌

The Underground Oracle Frequently Asked Questions
(通称OracleFAQ)
をご存知でしょうか。

Undergroundとは言っても実際のForumでは
OTNのDiscussion Forumにも負けないほど活発な
投稿がなされています。

OTN Discussion Forumの投稿ペースにはついて
いけないけどForumの空気は味わいたい方には
お薦めできるかもしれません。

もちろん無償でユーザ登録できます。

まずユーザ登録していただいた上で、
例えばSQL Experts Forumを購読するなら
http://www.orafaq.com/forum/f/2/88601/
のサイト上で左上あたりにある[subscribe]の
文字をクリックします。これだけです。

本日はこのOracleFAQで掲載されている
Oracleのジョークページから、
ビートルズの名曲の替え歌をご紹介したいと思います。


■ The Underground Oracle Frequently Asked Questions
http://www.orafaq.com/faq2.htm
http://www.orafaq.com/

■ 引用ページ
http://www.orafaq.com/faqfun.htm

_________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
記事本文
_________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
◆ A DBA's backup song

Yesterday,
All those backups seemed a waste of pay
Now my database has gone away
Oh I believe in yesterday

(続きは引用ページをご覧ください)

_________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
英語の語順に近い解釈
_________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄

◆ A DBA's backup song
DBAのバックアップのうた

Yesterday,
きのう

All those backups seemed a waste of pay
全てのバックアップはお金の無駄に見えました

Now my database has gone away
今、わたしのDBはどこかへ行ってしまいました

Oh I believe in yesterday
Oh きのうに戻りたいです


_________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
解釈のポイント
_________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄

All those backups seemed a waste of pay

(※)seem = ~のように見える、~のような気がする。


Now my database has gone away

(※)has gone = Present Perfect(現在完了形)
現時点では完了しているが、いつ起こったかは
特定できない場合や特定する必要が無い場合などに使う。
DBは逝ってしまわれたが何時逝ったかは不明。


Oh I believe in yesterday

(※)believe in = ~神や何がしかの存在に強い確信をもつ


_________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
解説
_________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
引用ページの始めに載っているオラクル本社の
写真ですが、これは紛れも無いオラクル本社そのものです。
でも、どう見てもDISKにしか見えません(笑)
オラクルが体をはったジョークをかましているように
見えます。
湖は人口だそうです。

_________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
編集後記
_________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄

今号からご購読いただいた皆様はじめまして。
本日も最後まで読んでいただきありがとうございます。

前号でajaxの読み方を解説したのですが、
以前カタカナ読みは厳禁だと言っておきながら、
思い切りカタカナで説明してしまいました。
失礼いたしました。(^-^;
発音記号では
,
eI d3 ae ks

です。それぞれの記号の説明は
[,] primary stressです
[I] くちは「え」のくちで「い」
[d3]ヂです。(ziジよりも舌が前歯の後ろに近い状態でしょうか
[ae]大きい「え」のくちで「あ」
[k] 母音は混ぜずに息だけで、歯はかぎりなく閉じた状態
舌の根元が歯茎の後ろの方についた状態
[s] 母音は混ぜずに息だけで、歯はかぎりなく閉じた状態
舌先が上歯の後ろから少し離れた状態

正しく発音できることは正しく聴けることの近道ですよね。
これからは発音も時々取り入れていければと思います。
気になる発音方法などありましたら気軽にご質問
いただけると嬉しいです。

それではまた

UPSのひどい搬送

今回のピックアップは前回の郵便物に続き
宅配物についての投稿です。

UPSのずさんな配達をおもしろ可笑しく嘆いているのですが、
例えが見事としか言いようが無いくらい変形しています(笑)


■ この記事のトップページ
http://tkyte.blogspot.com/
■ 引用ページ
http://tkyte.blogspot.com/2006/07/i-received-package.html
_________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
記事本文
_________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
◆ I received a package this morning:

I’m pretty sure that when UPS picked it up from
the sender, it looked ? well ? more ‘box like’.
Not so accordion like:

_________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
英語の語順に近い解釈
_________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
◆ I received a package this morning:
私はパッケージを受け取りました。今朝

I’m pretty sure
私はすごく確信しています。

that when UPS picked it up
UPSがそれを集配した時、

from the sender,
発送者から

it looked -- well -- more ‘box like’.
それは【とても】箱っぽかったと。

Not so accordion like:
こんなにアコーディオンみたくなってなかったと。


_________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
解説
_________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
コメントが必見です。
コメントを見るとUSBとパラレルケーブルの変換用ケーブルを
購入したらしいです。それにしてはあまりにも荷物が
大きすぎるのでどんだけ長いケーブルを買ってるんだと
ジョークでからかっていますw


_________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
編集後記
_________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄

今号からご購読いただいた皆様はじめまして。
本日も最後まで読んでいただきありがとうございます。

ほんとうにアコーディオンですね。
暑い日が続きますが、週末は雨が降るようで
少しは和らいでくれるといいのですが。。。

それではまた。

ちょっと息抜きしたい時に

AskTom.oracle.comをご存知の方も多いと思いますが、
http://asktom.oracle.com/

簡単に説明するとOracleのエースエンジニアである
Thomas KyteさんがOracleに関する質問に片っ端から
答えていくというサイトです。

現在は彼の忙しさや質問がたまりすぎていることから
質問の受付はSTOPしています。

今回はそんな彼のOracleとはあまり関係ない
ユーモアあふれるブログからの一文を抜粋して
ご紹介します。

郵便局の驚くべき功績を称えています(^-^)

■ askTom.oracle.com
http://asktom.oracle.com/
■ 引用ページ
http://tkyte.blogspot.com/2006/06/you-know-how.html
_________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
記事本文
_________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄

◆ You know how...

You know how many people make fun of the postal
service at times. Well, I’m here to express my
amazement at actually receiving a piece of
correspondence. It was addressed as follows:

_________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
英語の語順に近い解釈
_________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄

◆ You know how...

You know how many people
あなたも知っているでしょう
どれくらいの数の人々が

make fun of the postal service
郵便局をからかうことを

at times.
ときどき

Well,

I’m here to express my amazement
私は驚きを表現するためにここにいます。

at actually receiving a piece of correspondence.
実際に届いた一通の連絡を

It was addressed as follows:
それは以下のように住所が記載されていました。


_________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
解釈のポイント
_________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
You know how many people

(※)You know = 自明なことを言う前の前置き


make fun of the postal service

(※)make fun of sb/sth = 誰か/何か をからかう


I’m here to express my amazement

(※)amazement = 大変な驚き


It was addressed as follows:
(※)as follows = メールなどにこの記述以降に列挙や
箇条書き記載する場合などに使います。
as following,bellow

_________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
解説
_________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
実際にブログを見てみると本当に楽しいくらい
住所が全然違っているのに、2週間程度で彼のもとに
あるメールが届いています。正しいのはなんと名前だけです(笑)

彼の文章の書き方が本当に面白いので、笑える文章を
書きたいときの参考になるかもしれません。

_________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
編集後記
_________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄

最後まで読んでいただきありがとうございます。
Tom Kyteさんのブログは他の投稿でも
スカッと笑えるエンジニアらしいユーモアが
含まれています。英語があまり理解できなくても
なんとなく笑える文章がたくさんありますので
時々チェックしてみるといいかもしれません。
私もこれくらいユーモアを出せるといいのですが。

どんなに基本的なことでも構わないので
リクエストや質問など気軽にいただけると嬉しいです。

それではまた。

can i depend on the (testking) to pass (OCA 10g) exam?

私はいつも興味深く拝見しています。
1問というボリュームが負担が軽く、
かつ内容が忘れかけていることを
復習できる良い機会だと思って積極的に拝読しています。^^
こまめな配信ありがとうございます。

【マガジン】Oracle MASTER 「一問一答」! --☆解説&問題 ☆--

Oracle MASTER 資格取得を目指している方でも、
既に取得されている方でも、問題選択のセンスが良いので
純粋にOracleのスキルアップにつなげることができると思います。
問題を読むだけなら1分程度ですが、良いリマインダに
なることと思います。一問一答。解説付きです。

http://www.mag2.com/m/0000182320.html

今日は冒頭でお世話になっているメルマガを
ご紹介させていただきましたが、
偶然ながらチョイスした引用文も資格系の
Forum投稿になります。

また、個人的に抜群のコストパフォーマンス
(質もまぁまぁでしょう)だと考えている
海外試験問題サイトも編集後記でご紹介
しておりますので資格試験にご興味のある方は
是非そちらもご確認ください。

今回はDBA-Villageより、エジプト人のnabilさんが
試験問題サイトで購入した問題で勉強したのですが、
それだけで合格できるかを質問しています。

※DBA-Villageの入村には無償登録が必要です。

■ dba-village
http://www.dba-village.com/village/
■ 引用ページ
http://www.dba-village.com/village/dvp_forum.OpenThread?ThreadIdA=25026

_________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
記事本文
_________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
◆ can i depend on the (testking) to pass (OCA 10g) exam?

hi guys
i'd study the (workshop1) book one time only,
then i got the testking Q&A and study all the Q
can i depend on the (testking) to pass (OCA 10g) exam?
Thanks

_________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
英語の語順に近い解釈
_________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
◆ can i depend on the (testking)
testkingに依存できますか?

to pass (OCA 10g) exam?
OCA 10gの試験を合格するために

hi guys
みなさん

i'd study the (workshop1) book
私は(workshop1)の本を勉強しました。

one time only,
一度だけ

then i got the testking Q&A
それから私はtestkingのQ&Aを入手しました

and study all the Q
そして全ての問題を勉強しました。

can i depend on the (testking)
testkingに依存できますか?

to pass (OCA 10g) exam?
OCA 10gの試験を合格するために

Thanks

_________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
単語解説
_________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
OCA = Oracle Certified Association
日本のOracle Silver相当の認定
OCPがGoldで、OCMがPlatinum
workshop = 複数名で討論したり、実習したりする為の集まり
testking = 試験問題販売サイト


出題センスがとても良いと思っています。
http://www.mag2.com/m/0000182320.html
_________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
解説
_________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
さすがにそれで合格できると答える人は
一人もおらず、面白い人は試験会場で座ったときに
わかるとか答えてます。基本的には皆さん
試験問題でなく本当のDBを触って勉強しなさいという
意見ですね。
試験に合格する前でも後でも実際に触らないことには
本当のスキルは身につきません。

それからこのForumはエジプト、インドネシア、
USA,UKと投稿者の国籍が多彩ですね^^

_________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
編集後記
_________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄

今号からご購読いただいた皆様はじめまして。
本日も最後まで読んでいただきありがとうございます。

さて、冒頭で申し上げた通り、資格試験にご興味の
ある方は以下の試験サイト是非チェックください。
(宣伝でもなんでもありませんのでご安心を)

http://www.braindumps.biz/

こちら、海外に無数にある試験問題サイトと
代わり映えしないのですが、
ただひとつまったく違うことがあります。

それは値段です。

例えばOracleならすべての試験問題集が
最低価格$19.95です。
ひとつの試験問題ではありませんよ。
SilverからGoldまで全ての問題です。
今Googleで確認したところ、2,300円弱でした。
(有名かもしれませんが、Googleで「$19.95を日本円で」と検索すると換算してくれるんです)

Oracleだと現在28つの試験問題が提供されていますが、
Microsoftも同じ値段なんです。89試験分が2,300円です。。。爆!

実は1ヶ月間限定のダウンロード権の代金なんですけどね。
でも1年間全ての試験問題落とし放題の値段も9,200円です^^;

このサイトGoogleやYahooで普通に検索しても
なかなか出てきません。

残念ながら私が資格勉強をしていたころには
気づかなかったのですが。。。

こんなに宣伝していると怪しい英語教材とか成功ノウハウとかの
販売サイトみたいですね^^;

それではまた

How to get business days between two dates?

今日はOraQAをご紹介します。
サイトの内容はご説明するまでもなくOracleのQAですね。
とてもシンプルなつくりのページでいいと思っています。

そのQAの中から、2つの日付間に存在する平日を
SELECTするSQLをピックアップしました。

■ OraQA
http://oraqa.com/
■ 引用ページ
http://oraqa.com/2006/08/28/how-to-get-business-days-between-two-dates/

_________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
記事本文
_________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
◆ How to get business days between two dates?

There are two given dates and I have to find out
the working days between two dates i.e. excluding
Sundays and Saturdays. Please help. Thank you.

_________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
英語の語順に近い解釈
_________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
◆ How to get business days between two dates?
営業日をどのように2つの日付の間から得ますか?

There are two given dates
2つの日付があります。

and I have to find out
そして私は導かなければなりません。

the working days
営業日数を

between two dates
2つの日付の間の

i.e. excluding Sundays and Saturdays.
例えば、日曜日と土曜日を除いたり

Please help. Thank you.
助けてください。よろしくお願いします。

_________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
解説
_________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
2つのSQLが回答されているのですが、
1つはちょっと強引で、all_objectsビューを使用しています。
SQLを確認してみるとわかるのですが、2つの日付が10gR2の場合だと
190年くらい開く場合は結果が怪しくなってきます。

もう一つも少し強引で、階層問合せ機能を応用した方法で、
Oracleの階層問合せで可能な最大の階層数までであれば
正常な結果を返すことができますね。
(どなたか最大の階層数をご存知の方いますか?)

このSQLを応用すれば、祝日なども考慮した営業日数の
算出なども簡単にできそうですね。
その方法については引用ページからリンクされている以前ご紹介した
AskTom.comのページにもヒントがあると思います。
http://asktom.oracle.com/pls/ask/f?p=4950:8:::::F4950_P8_DISPLAYID:185012348071

Need to convert...

今日はOracle Technology Network(OTN)のDiscussion
ForumsよりSQLに関する投稿をご紹介します。

今回は少し趣向を変えて投稿された質問から解決する
ためのSQLをみなさんで考えていただければと思います。

投稿者は当初投稿していた質問と状況が変わったことを
追加で投稿しています。


※OTNは無償のユーザ登録を行うことで参照可能です。

■ OTNトップページ
http://www.oracle.com/technology/index.html
■ 引用ページ
http://forums.oracle.com/forums/thread.jspa?threadID=400352&tstart=90

記事本文
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
◆ Need to convert part of a string from lowercase
to uppercase

Hello there,

The facts are changed. Everything what's next
after AAA_ must be in uppercase, except the
extension .pdf:

100000_AAA_20060630_en.pdf
=> 100000_AAA_20060630_EN.pdf

or

abc_100000_AAA_20060630_en.pdf
=> abc_100000_AAA_20060630_EN.pdf

In my update clause I have to search for string
"AAA_".
From this point I have to transform the
lowercase into uppercase, except the extension.
How can I accomplish this?

Regards,
Ronny.


英語の語順に近い解釈
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
◆ Need to convert
変換が必要です。

part of a string
文字列の一部

from lowercase to uppercase
小文字から大文字へ

Hello there,
こんにちは

The facts are changed.
状況が変わりました。

Everything what's next
全ては以下です。

after AAA_ must be in uppercase,
"AAA_"以降の文字は大文字で

except the extension .pdf:
拡張子".pdf"を除き。

100000_AAA_20060630_en.pdf
=> 100000_AAA_20060630_EN.pdf

or

abc_100000_AAA_20060630_en.pdf
=> abc_100000_AAA_20060630_EN.pdf

In my update clause
変更点は

I have to search for string "AAA_".
"AAA_"という文字列を探さなければならないこと

From this point
その位置から

I have to transform
変換しなければなりません。

the lowercase into uppercase,
小文字を大文字に

except the extension.
拡張子を除いて

How can I accomplish this?
どうしたら達成できますか?



解釈のポイント
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
◆ Need to convert part of a string
from lowercase to uppercase

(※)convert = 変換
lowercase = 小文字(abcd...)
uppercase = 大文字(ABCD...)


The facts are changed.
条件が変わりました。

Everything what's next
全ては以下です。

after AAA_ must be in uppercase,
"AAA_"以降の文字は大文字で

except the extension .pdf:

(※)extension = 拡張子


In my update clause

(※)clause = いくつかの単語のあつまり、節


I have to transform

(※)transform = convertの言い換え


How can I accomplish this?

(※)accomplish = 達成する


解説
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
当初は拡張子pdfを除いて、全て大文字に変換したいという
ことだったのですが、それなりに回答が入った後で
条件が変わったので少し混乱していますね。
最終的な回答としてはinstr関数を使用して、
AAA_の位置を探し、それ以降を一度全て大文字に変換した
後、replace関数でPDFをpdfに変換するという対応に
なったようです。最終的にどんなSQLになったかは
投稿されていませんが、だいたい以下のような
感じではないでしょうか。

create table test1 (col1 varchar(30));
insert into test1 values ('abc_100000_AAA_20060630_en.pdf');
insert into test1 values ('100000_AAA_20060630_en.pdf');

select * from test1;

update test1 set col1=substr(col1,1,instr(col1,'AAA_')-1)
replace(upper(substr(col1,instr(col1,'AAA_'))),'PDF','pdf');

select * from test1;

編集後記
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄

今号からご購読いただいた皆様はじめまして。
本日も最後まで読んでいただきありがとうございます。

Forum形式はいかがでしたでしょうか。
このフォーラムはスレッドが登録される度にメール
で通知してもらえることもできるのですが、
正直言って仕事にならなくなります。極端な話
秒単位でメールがやってきます。(^-^;
裏を返せば、もし質問を投稿してもものすごい
勢いで回答してもらえるということです。
多少の文面は気にせず思い切って投稿してみるのも
いいと思います。

それではまた。

Oracle helpful url list

新しくご購読いただいた皆様はじめまして^^

今日は、dba-villageをご紹介したいと思います。

適切なペースで更新されており、
Oracle中心の便利な技術の紹介や
DBAに役立ちそうなUNIX関連の技術も紹介されています。

今回はAnkit Soodさんの投稿した、普段の仕事で
収集したOracle関連リンク集です。

解説で紹介しているora-code.comの他に無数の
リンクが実に200件以上も登録されています。
しかも全サイトにコメントがついています。
これはすごいです。

その投稿に対して数人の方から賞賛がコメントされているので
そちらを引用いたします。

dba-villageを参照するには無償のユーザ登録が必要になります。
是非みなさんもAnkitさんにねぎらいの言葉を投稿して
みてはいかがでしょうか。

■ dba-village
http://www.dba-village.com/village/
■ 引用ページ
http://www.dba-village.com/village/dvp_papers.PaperDetails?PaperIdA=2303


記事本文
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
◆ Oracle helpful url list

Excellent source of information. I was looking for
this kind of oracle site reference sheet. Wide
coverage and well done.


英語の語順に近い解釈
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄

◆ Oracle helpful url list
役立つオラクルリンク集

Excellent source of information.
素晴らしい情報源です。

I was looking for
私は探していました。

this kind of oracle site reference sheet.
このようなオラクルサイトのリファレンスシートを。

Wide coverage and well done.
幅広く網羅され、かつ良くできています。



解釈のポイント
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄

Excellent source of information.

(※)source = 何がしかの起源、原因
プログラムのソースリストもこのソース


I was looking for

(※)look for = 探す。(ここで見つけたので過去形になっている)


this kind of oracle site reference sheet.

(※)kind of = ~のような( = sort of)


Wide coverage and well done.

(※)coverage = 範囲、大きさ、広さなどの割合。
プログラムのテスト網羅率などを指して
テストカバレージなどと言ったりする。



解説
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
今回のリンク集から、ora-code.comをご紹介します。
http://ora-code.com/

以下のようなURLでエラーメッセージ内容を簡単に確認できます。
http://ora-00001.ora-code.com/
http://tns-00002.ora-code.com/

ゼロの数は任意です。
http://tns-02.ora-code.com/

sleipnir(タブブラウザ)を使用している方がいれば、
検索エンジンリストに以下のURLを追加することで

http://{all}.ora-code.com/

ora-001など検索ボックスに入力するだけで該当ページに
アクセスできます。


既にご存知の方も多いかもしれませんが、
もっと便利なのがoerrコマンドです。

UNIX系Oracleで使用可能な便利なErrorMessage内容
確認コマンドです。

例えばこんな感じで使えます。
% oerr ora 0001
00001, 00000, "unique constraint (%s.%s) violated"
// *Cause: An UPDATE or INSERT statement attempted to insert a duplicate key.
// ~
// *Action: Either remove the unique restriction or do not insert the key.

また、TNSエラーメッセージの場合は
% oerr tns 2
00002, 00000, "INTCTL: error while starting the Interchange"
// *Cause: The Interchange could not be started.
// *Action: Check the Interchange configuration files (INTCHG.ORA, TNSNET.ORA
// ~
// rectified.

です。マニュアル検索や、OTNのエラーコード検索
よりも手早く確認できます。
本番トラブルなどで手元にマニュアルやネット環境が
ない場合に重宝しますね。

オラクルがインストールしてあるUNIX環境であれば原則として
使用可能です。
(Linux 8.1.6など一部使用できないバージョンもあるようです)
残念ながらWindows版には用意されていません。(私の知る限り)



編集後記
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄

今号からご購読いただいた皆様はじめまして。
本日も最後まで読んでいただきありがとうございます。

先週バックアップのジョークソングをご紹介したバチが
あたったのか、直後に私の担当DBがクラッシュしました!
今まで復旧に四苦八苦してました。(^-^;

皆さん言葉は言霊ですから、起こって欲しくないことは
できる限り口にしないよう気をつけましょう。

障害は突然やってきます!
バックアップは明日でも平気でしょ。と思った時が
ラストチャンスかもしれません^^

皆さん是非定期的なバックアップを^^

それではまた

20070115

Oracle B-Tree Index Internals:Rebuilding The Truth(1)

以下のようなこと、Oracleですぐに書けますか?

・n~m件目のデータを検索
・大文字、小文字に関係なくデータを検索
・viewの定義内容を確認
・テーブル変更に影響する依存オブジェクトの確認
・一定間隔の処理件数でCommit発行
・partition毎の件数確認

他にも知っていて便利な情報が詰め込まれた一冊です。
「Oracleはこう動いている。―Oracle徹底検証」の著者である
榎本茂男氏が2冊目の著書になります。

***********************************

 Oracleのテクニック、伝授します。
 そろそろ初心者を卒業したプログラマーの方、
 SQLを考えるのに苦労したことはありませんか?
 思わず“なるほど”と唸る、ちょっとしたSQLのテクニックお教えします。

 「Oracle技術研究所 知って得するSQL」
 楽天ブックス
 http://tinyurl.com/ygcrjd
 amazon
 http://tinyurl.com/ya2v2a

***********************************

___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
英語で Oracle! #043 2007/01/16
___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
今までの目次です。
http://imoment.blogspot.com/2006/11/toctable-of-contents.html

おはようございます。お世話になっている翻訳の先生から
英語とはまったく関係ない面白いフラッシュを教えていただきました。
音声込みで息抜きに聞いてみてください。
注意:笑い転げる可能性があるので、仕事以外の時間に見てください。
「中村屋」
http://blog.livedoor.jp/kemui/nakamura.html

今回はindexのrebuildに関するRechard Footeさんの資料をご紹介します。
indexのrebuildに関する情報を発表したOracleの有識者を
名指しで批判するという刺激的な内容になっていますが、
注目はその裏づけの説明や証明です。rebuildの是非が主題ではありますが、
その説明の為にindexの内部構造を詳しく説明されています。
ついでにtree dumpやindexのblock dumpの取得方法や内容の解釈もわかります。

少し昔の資料なので、ご存知の方もいらっしゃるかもしれません。

(ここは噂です)
この資料で批判されていることを知ったDon Burlesonさんは
footeさんのオフィスに電話し、今すぐ、footeさんが黙るか、
そうでないと深刻な訴訟問題になると伝えたとか
(ここまで)

でもFooteさんの意見はTom Kyteさん、Jonathan LewisさんなどのDBA Guruを
はじめとして多くの人々に支持されました。

そもそも古い説を取り上げて名指しで批判というのは
Footeさんの若気の至りでしょうが、それを差し引いても一読の価値はあります。

その後のDon Burlesonさんの意見については別の機会に取り上げたいと思います。
亀田選手とランダエタ選手まではいきませんが、ちょっとしたバトルでした。

※今回はちょっと引用したい部分が長いので、いくつかの発行に分けて
お送りしたいと思います。

※index用語に慣れていない方は、先にoracle解説のコーナーで
知らない用語について確認されるといいかもしれません。


■ askTomでのindex rebuildに関するdiscussion
http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:2913600659112

※今回は引用PDFを紹介している適切なサイトが無いので、
その資料について触れているaskTomのdiscussionをリンクとして
ご紹介します。

■ 引用PDFファイル
http://www.actoug.org.au/Downloads/oracle_index_internals.pdf

___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
記事本文
___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
◆ Objectives

- Dispel many myths associated with Oracle B-Tree Indexes
- Explain how to investigate index internals
- Explain and prove how Oracle B-Tree Indexes work
- Explain when index rebuilds might be appropriate

◆ Classic Oracle Index Myths

- Oracle B-tree indexes can become “unbalanced” over time
and need to be rebuilt
- Deleted space in an index is “deadwood” and over time
requires the index to be rebuilt
- If an index reaches “x” number of levels, it becomes
inefficient and requires the index to be rebuilt
- If an index has a poor clustering factor, the index needs to be rebuilt
- To improve performance, indexes need to be regularly rebuilt

◆ Index Fundamentals

- Oracle’s B-Tree index is always balanced. Always.
- Index entries must always be ordered.
- An update consists of a delete and an insert
- Each leaf block has pointers to next/previous blocks
- Each leaf block contains the index entry with corresponding rowid
- Index scans use ‘sequential’, single block reads
(with exception of Fast Full Index Scan)

◆ Clustering Factor

- A vital statistic used by the CBO
- Determines the relative order of the table in relation to the index
- CF value corresponds to likely physical I/0s or blocks visited
during a full index scan (note same block could be visited many times)
- If the same block is read consecutively then Oracle
assumes only the 1 physical I/0 is necessary
- The better the CF, the more efficient the access via the
corresponding index as less physical I/Os are likely
- “Good” CF generally has value closer to blocks in table
- “Bad” CF generally has a value closer to rows in table

◆ How To Improve The CF

- As some of the “expert” quotes suggest, rebuild index if
CP is poor is common advice
- Unfortunately, as neither table nor index order changes,
the net effect is “disappointing”
- To improve the CF, it’s the table that must be rebuilt (and reordered)
- If table has multiple indexes, careful consideration
needs to be given by which index to order table
- Pre-fetch index reads improves poor CF performance
- Rebuilding an index simply because it has a CF over a
certain threshold is futile and a silly myth

___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
英語の解釈
※自然な語順で解釈する癖をつけるために敢えて不自然な日本語に
なっているところがあります。 ()書きは後続修飾節の修飾対象です。
___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
◆ Objectives
目的

- Dispel many myths associated with Oracle B-Tree Indexes
OracleのB-Tree indexに関する多くの間違った教えを払拭します。

- Explain how to investigate index internals
どのようにindexの内部構造を調べるかを説明します。

- Explain and prove how Oracle B-Tree Indexes work
OracleのB-Tree indexがどのように働くかを説明し、証明します。

- Explain when index rebuilds might be appropriate
index rebuildがどのような場合に適切であるかを説明します。


◆ Classic Oracle Index Myths
よく知られた誤った教え

- Oracle B-tree indexes can become “unbalanced” over time
and need to be rebuilt
OracleのB-tree indexは時間が経つとアンバランスになり、
rebuildが必要になる

- Deleted space in an index is “deadwood” and over time
requires the index to be rebuilt
Deleteが繰り返されると無駄な領域が増えるのでやがてrebuildが必要になる。

- If an index reaches “x” number of levels, it becomes
inefficient and requires the index to be rebuilt
indexのレベルがあるレベルに達すると、非効率になるのでrebuildが必要

- If an index has a poor clustering factor, the index needs to be rebuilt
CFが悪くなるとrebuildが必要になる

- To improve performance, indexes need to be regularly rebuilt
パフォーマンス向上の為にindexのrebuildが定期的に必要

◆ Index Fundamentals
indexの基礎

- Oracle’s B-Tree index is always balanced. Always.
b-tree indexは常にバランスが取れている

- Index entries must always be ordered.
indexエントリは常に順序が整っている必要がある

- An update consists of a delete and an insert
更新は削除と挿入で構成される

- Each leaf block has pointers to next/previous blocks
各リーフブロックは前後のリーフへのポインタを持っている

- Each leaf block contains the index entry with corresponding rowid
各リーフブロックはインデックスエントリと対応するrowidが格納されている

- Index scans use ‘sequential’, single block reads
indexスキャンはシーケンシャルシングルブロックリードを利用する

(with exception of Fast Full Index Scan)
(FFSを除く)


◆ Clustering Factor
クラスタリングファクタ

- A vital statistic used by the CBO
CBOに利用される重要な統計

- Determines the relative order of the table in relation to the index
indexの並び順と対応するデータの並び順を決定づけている

- CF value corresponds to likely physical I/0s or blocks visited
during a full index scan
CFはindex full scan中に行われた物理I/Oまたはアクセスブロックブロックの数

(note same block could be visited many times)
(同じブロックに何度もアクセスする可能性がある)

- If the same block is read consecutively then Oracle
assumes only the 1 physical I/0 is necessary
もし、連続で同じブロックにアクセスする場合、
Oracleは1回の物理I/Oしか発生しないと想定する。

- The better the CF, the more efficient the access via the
corresponding index as less physical I/Os are likely
物理I/Oが少くなくなるので、CFの値が良くなればなるほど、
対応したindex経由のアクセスは効率が良くなる

- “Good” CF generally has value closer to blocks in table
良いCFは通常テーブルデータのブロック数に近い値である。

- “Bad” CF generally has a value closer to rows in table
悪いCFは通常テーブルデータの行数に近い値である。

◆ How To Improve The CF
CFの値を向上させるには。。。

- As some of the “expert” quotes suggest, rebuild index if
CP is poor is common advice
experts達の中には、CFが悪い時はrebuildが必要だと言う人がいます。

- Unfortunately, as neither table nor index order changes,
the net effect is “disappointing”
しかし残念ながら、テーブルの並び順もindexの並び順も変わる訳ではないので、
がっかりした結果が待っています。

- To improve the CF, it’s the table that must be rebuilt (and reordered)
CF値を向上させるにはtableの並び順を変える必要があります。

- If table has multiple indexes, careful consideration
needs to be given by which index to order table
もし、複数のindexを持つテーブルなら、この決断は慎重になるべきです。

- Pre-fetch index reads improves poor CF performance
pre-fetch indexは悪いCF値を改善します。

- Rebuilding an index simply because it has a CF over a
certain threshold is futile and a silly myth
固定のCF値を閾値としてrebuildを行うというアドバイスは役立たずの腐った教えです。


知っていて損はないSQLです。
http://tinyurl.com/ya2v2a


___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
英語解説
___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄

- Dispel many myths associated with Oracle B-Tree Indexes

dispel:(恐れ、疑い、誤った考え)を一掃する。
通常、ある情報が間違っていたり不必要なことを証明する際に利用します。
myth:神話、作り話、俗説、(広く信じられている)誤った考え
(発音:mith)
associated with:関係する
B-Tree:balanced treeの略(oracle解説参照)


- Explain when index rebuilds might be appropriate

rebuild:再作成、再構築(oracle解説参照)

◆ Classic Classic Oracle Index Myths

classic:標準的な、古典的な、有名な


- Deleted space in an index is “deadwood” and over time
requires the index to be rebuilt

deadwood:枯れ枝、役に立たないもの、足手まとい、蛇足
over time:時間の経過
deleted space:index内における実際のテーブルデータは
削除されている未使用領域

- If an index reaches “x” number of levels, it becomes
inefficient and requires the index to be rebuilt

reach:達する、到着する。
inefficient:効率が悪い、スキルの無い、充分に効果を発揮することができない
level:b-tree用語(oracle解説のb-tree参照)


- If an index has a poor clustering factor, the index needs to be rebuilt

clustering factor:(oracle解説参照)


- Each leaf block has pointers to next/previous blocks

leaf block:b-tree用語(oracle解説のb-tree参照)


(with exception of Fast Full Index Scan)

fast full index scan:(oracle解説参照)


- A vital statistic used by the CBO

vital:(生命など)何かを存在を維持する為の、非常に重要な要素


- Determines the relative order of the table in relation to the index

relative:関連のある
in relation to:~に関連した


- CF value corresponds to likely physical I/0s or blocks visited
during a full index scan

likey:起こりそうな、予期される


- If the same block is read consecutively then Oracle
assumes only the 1 physical I/0 is necessary

consecutively:連続して
assume:仮定する


- The better the CF, the more efficient the access via the
corresponding index as less physical I/Os are likely

the 比較級1,the 比較級2:比較級1であればあるほど、比較級2になる
via:経由して
correspond:対応する、一致する


- “Good” CF generally has value closer to blocks in table

generally:通常、たいてい、ほとんど


- As some of the “expert” quotes suggest, rebuild index if
CP is poor is common advice

quote:引用する、もしくは引用そのもの


- Unfortunately, as neither table nor index order changes,
the net effect is “disappointing”

unfortunattely:残念ながら
disappoint:がっかりさせる(がっかりした場合はi'm disappointed with)


- Rebuilding an index simply because it has a CF over a
certain threshold is futile and a silly myth

threshold:敷居、閾値
futile:何の効果も無い
silly:ばかげた、知性の欠けた

___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
★ 英語ぷちクイズ ★

※答えと思うリンクをぷちっとクリックしてください。
___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
珍しく普通の問題です。in,at,onのイメージを整理しましょう。
穴埋め問題です。

1)There's a coffee shop ( ) the end of the block.

◆in
http://clickenquete.com/a/a.php?M0002066Q0019067A182e1
◆at
http://clickenquete.com/a/a.php?M0002066Q0019067A2f23a
◆on
http://clickenquete.com/a/a.php?M0002066Q0019067A36098
○結果を見る
http://clickenquete.com/a/r.php?Q0019067Cf7b2


2)Where are you? ( ) a taxi.

◆in
http://clickenquete.com/a/a.php?M0002066Q0019068A19d8c
◆at
http://clickenquete.com/a/a.php?M0002066Q0019068A2e1e0
◆on
http://clickenquete.com/a/a.php?M0002066Q0019068A3f476
○結果を見る
http://clickenquete.com/a/r.php?Q0019068Cc7c5

3)There was a big chair ( ) the middle of the room.

◆in
http://clickenquete.com/a/a.php?M0002066Q0019069A1ba6a
◆at
http://clickenquete.com/a/a.php?M0002066Q0019069A2ea31
◆on
http://clickenquete.com/a/a.php?M0002066Q0019069A33ff1
○結果を見る
http://clickenquete.com/a/r.php?Q0019069Ce5fb

4)Who is she ( ) this photograph?

◆in
http://clickenquete.com/a/a.php?M0002066Q0019070A10398
◆at
http://clickenquete.com/a/a.php?M0002066Q0019070A23b9d
◆on
http://clickenquete.com/a/a.php?M0002066Q0019070A329c4
○結果を見る
http://clickenquete.com/a/r.php?Q0019070C5f93

5)Ross is ( ) the hostpital.

◆in
http://clickenquete.com/a/a.php?M0002066Q0019071A14897
◆at
http://clickenquete.com/a/a.php?M0002066Q0019071A2b27f
◆on
http://clickenquete.com/a/a.php?M0002066Q0019071A3e222
○結果を見る
http://clickenquete.com/a/r.php?Q0019071C130d

6)I came school ( ) the bus.

◆in
http://clickenquete.com/a/a.php?M0002066Q0019072A11c49
◆at
http://clickenquete.com/a/a.php?M0002066Q0019072A20475
◆on
http://clickenquete.com/a/a.php?M0002066Q0019072A38ab3
○結果を見る
http://clickenquete.com/a/r.php?Q0019072Ca29c


締切:2007年01月23日18時00分
協力:クリックアンケート http://clickenquete.com/


こたえは次回に発表します。


■ 前回のこたえ

☆2週間に一度って英語で伝えたいときは?

◆biweekly
◆bimonthly
◆every two weeks
◆every next next week
○結果を見る
http://clickenquete.com/a/r.php?Q0018917Cf54a

厳密にはbiweekly,every two weeksどちらも
2週間に一度という意味を持っています。
ただし、biweeklyは不可思議なことに1週間に2回という
意味も併せ持つので誤解されないようにご注意下さい。

この1週間に2回という意味はbritish系の意味で、
日本で言う「自分」が関東と関西で逆の意味を持つのに
少しパターンが似ている気がしました。

この誤解はnativeどうしでも起こりがちなので、
1週間に2回:semi-weekly
2週間に1回:every two weeks
というように違う言い方をするのがお勧めです。

ちなみにevery other weekも2週間に1回の意味を
持っているのですが、個人的にはevery two weeksの方が
すんなり伝わると思っています。

bimonthlyは月に2度か、2ヶ月に1度という意味があります。

every next next weekは誰もクリックしていない通り、
恐らく伝わらないでしょう。

もちろん2日(2ヶ月、2年)に1回にも応用できます。


___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
Oracle解説
___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
用語を順々に説明いたしますので分かっている用語については
どんどん飛ばしてください

-・ b-tree ・-・-・-・-・-・-・-・-・-・-・-・-・-・

balanced tree の略で、逆から見た木のように
最上にroot(根)があり、rootからbranch(枝)が派生し、
最終的にleafにたどり着く構造
rootからleafまでの距離がどのleafに対しても同一である特徴がある
このことからbalanced treeと呼ばれる。
この特徴を満たす為に、b-treeは以下のように成長します。

1つのleafに入りきれない値が追加された場合leafが2分割され、
そのleafの親となるbranchにもその情報が追加される。
branchにも情報が入りきらなくなった場合、branchも2分割するが、
最終的にrootに情報が収まりきらなくなった場合、rootの場合だけ
特別に3分割され、新しいルートとその子となるbranchが2つ
生成される。これが発生した際にrootからleafまでの距離が
1つ伸びることになる。
この距離をlevel(blevel)と呼んだり、heightと呼んだりします。

これらのb-treeに関するOracleの動きは次回以降で詳しく説明されます。
(先にご覧になりたい方は引用資料のP26~P34をご覧ください)

root

├branch1┬leaf11
│ └leaf12
└branch2┬leaf21
├leaf22
└leaf23

上記の例なら、levelは3となり、heighは2となります。

-・ b-tree ここまで・-・-・-・-・-・-・-・-・-・-・-・


-・ rebuild ・-・-・-・-・-・-・-・-・-・-・-・-・-・

indexの再作成をrebuildと呼びます。

例:alter index i_xxx rebuild online;
例:alter index i_xxx rebuild partition i_xxx_p1 online;

Richard FooteさんはOracleのB-tree indexは次回以降に述べる
一部の例外を除いてrebuildの必要は無いと主張しています。
(先にご覧になりたい方は引用資料のP79以降をご覧ください)

あくまでも目安としての再作成の指標は、
levelが5以上だったり、削除エリアの割合が30,40%を越えた場合
などが考えられますが、無条件にこの条件に当てはめて
rebuildしようとするとFooteさんやTom Kyteさん、もちろん
Don Burlesonさんにも怒られてしまいます。
対象となるテーブルの特性をよ~~~く考えてそのテーブルに
あったrebuildを検討しましょう。

-・ rebuild ここまで・-・-・-・-・-・-・-・-・-・-・-・

-・ clustering factor -・-・-・-・-・-・-・-・-・-・-・

単語が長いので以降CFで説明します。
これは絵で見ると理解が早いです。
引用資料のP22に悪いCF、P23に良いCFが図解されています。
これをテキストで示してみると少しシンプルすぎて苦しいですが、
<良いCF>
root

├branch1┬leaf11-datablock1
│    └leaf12-datablock1
└branch2┬leaf21-datablock2
     ├leaf22-datablock2
     └leaf23-datablock2
<悪いCF>
root

├branch1┬leaf11-datablock2
│    └leaf12-datablock1
└branch2┬leaf21-datablock2
     ├leaf22-datablock1
     └leaf23-datablock2
という感じです。

datablockは実際のテーブルデータが存在するブロック位置です。
<良い>例だと、full scan時に実際のテーブルデータのブロックにアクセスする
数は2ですが、<悪い>例だと、indexの順番と異なってアベコベになっている
ので、実際のテーブルデータのブロックにアクセスする数は5となります。
この数値はCBOのオプティマイザがindexを使ったrange scanが有効かどうかを
判断する重要な要素になり、この数値が悪いためにindexが使用されずに
tableのfull scanが発生してしまうケースがあります。

CFの数値がテーブルデータのブロック数の総計に近い程、
index full scanの効率が上がり、
行数に近くなる程index full scanの効率が最悪になります。

-・ clustering factor ここまで-・-・-・-・-・-・-・-・-・

-・ fast full index scan ・-・-・-・-・-・-・-・-・-・-・

特定の条件を満たした場合、本来テーブルのfull scanが行われるべきところを
indexをfull scanするだけで済ませてしまうことができます。

条件は以下の通り

1.索引となっている項目の最低1つにnot null制約がある
2.問合せに必要な全ての列が索引に含まれている
3.CBOで動作しているか、select /*+ index_ffs */のヒントを
使用していること

ちゃんと対象のテーブルのanalyze(or dbms_stats)がされていて、
プライマリキーを定義しているのであれば、
select count(*) from xxx_table;
などしてもテーブルのfull scanがされずに
indexのfull scanで事足りてしまいます。
使用された場合は実行計画にfast full scanが表示され、
v$sysstatやv$sesstatの「index fast full scans (xxx) 」の値が増加します。
(xxxはfull,direct read,rowid rangesのいずれか)

-・ fast full index scan ここまで・-・-・-・-・-・-・-・-・


___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
編集後記
___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
今号からご購読いただいた皆様はじめまして。
本日も最後まで読んでいただきありがとうございます。

冒頭でご紹介した中村屋是非聞いてみてください。
ちなみは私はサイゼリヤでお腹が破裂しそうでした。

もしこのindexのメンテナンスに関する件で皆さんのご意見・疑問があれば、
ご連絡いただければと思います。

それではまた。

___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
おわりに
___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
記述誤りなどのご指摘、
記事に関する疑問点・質問・感想・ご意見・ご感想など
yakusa_oracle@yahoo.co.jpまでお願い致します。

簡単な自己紹介はこちら
http://pr2.cgiboy.com/S/3191274

バックナンバー兼ブログはこちら
http://imoment.blogspot.com/

登録・解除はこちらから
http://www.mag2.com/m/0000200441.htm

20070111

ORADEBUG - UNDOCUMENTED ORACLE UTILITY

OracleだけでなくLinuxに関する英語も学びませんか?
専門用語やLinux文化背景、Linux文章ならではのクセのある文章も丁寧に
技術的背景も交えて解説してくれます。パワーアップしてリニューアル再創刊です。

・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・

Linuxを使っていて英語の壁にぶつかることはありませんか?

『Linux英語の達人2』はLinux関連文書に潜む難読英文や専門用語を解説し、
英語に立ち向かうユーザを応援します!トリビア風の話題も織り交ぜて、
楽しくやっていきたいと思います!

Linux英語の達人2
http://www.mag2.com/m/0000215142.html
ブログ形式のバックナンバーはこちら
http://linuxenglish.blog83.fc2.com/

・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・
___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
英語で Oracle! #033 2007/01/09
___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
今までの目次です。
http://imoment.blogspot.com/2006/11/toctable-of-contents.html

あけましておめでとうございます。今年もよろしくお願い致します。

思いつきで始めたこのメルマガも半年になりました。
つたない内容にここまでお付き合いくださり本当にありがとうございます。
メルマガ発行を通して本当に貴重なことが経験できたと思います。
できることなら1年、2年と続けていければと思っていますので、
今後もお付き合いいただければ幸いです。

前回説明しきれなかったoradebugコマンドを取り上げたいと思います。
Julian Dykeさんの資料でも充分説明されているのですが、
せっかく2週に跨ったので、さらに詳しい資料を掲載している
Evergreen Database Technologiesをご紹介したいと思います。

Evergreen Coloradにある少人数のOracle Consulting会社です。
Tim GormanさんとJeff Mareshさんを中心に様々の技術資料が
WEBサイトに掲載でされています。
彼らのResumeも拝見することができます。

http://www.evdbt.com/TGorman.htm
http://www.evdbt.com/JMaresh.htm

掲載されている技術資料の中から、Oradebugについて詳細に解説された
資料をご紹介します。

<!要注意!>
このツールは主にサポート指示によって使用する
Undocumented,Unsupportedのツールです。
特に商用環境でご使用の際は、ご自分の責任でご利用いただくか、
Supportへの確認を行っていただきますようお願いいたします。
特にffbeginコマンドはoracle解説欄の注意事項を確認の上、ご利用下さい。


■ Evergreen Database Technologies, Inc.
http://www.evdbt.com/papers.htm

■ 引用PDFファイル
http://www.evdbt.com/Oradebug_Modrakovic.pdf

___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
記事本文
___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
◆ oradebug event

Set trace event in process.

Syntax Parameter
oradebug event Event name

Event numbers can be found in $ORACLE_HOME/rdbms/mesg/oraus.msg
or on the address below:

http://www.kevinloney.com/free/events.htm

Example

In this example I have used event event 10046 which is probably the most used event.
To enable tracing for another session, the Oracle (PID) or the OS PID (SPID) must be
identified from v$process view.

SQLPLUS> oradebug setospid 10929
Oracle pid: 91, Unix process pid: 10929, image: oracleorcl
SQLPLUS> oradebug EVENT 10046 trace name context forever, level 12
Statement processed.

The level can affect the behaviour of the event.Event 10046 can have level with following
values:

Trace Name Level Description
TRACE_ACALL 1 Trace all calls
TRACE_ECALL 2 Trace "enabled" calls
TRACE_AEXCP 4 Trace all exceptions
TRACE_EEXCP 8 Trace "enabled" exceptions
TRACE_CIRCULAR 16 Trace w/ circular buffer
TRACE_BIND_VARS 32 Trace bind variables

Other combinations :

Level Description
17 Trace all calls, using the buffer
22 Trace enabled calls and all exceptions using the buffer
32 Trace bind variables, without using the buffer
53 Yields the maximum level of tracing, using the buffer
37 Yields the maximum level of tracing, without using the buffer

◆ oradebug session_event

Set trace event in session.

Syntax Parameter
oradebug session_event Event name

Example
SQL>oradebug session_event 10046 trace name context forever,level 12
Statement proceed.
SQL > oradebug session_event 10046 trace name context off
Statement proceed.

The information goes to user dump destination.

___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
英語の解釈
※自然な語順で解釈する癖をつけるために敢えて不自然な日本語に
なっているところがあります。 ()書きは後続修飾節の修飾対象です。
___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
◆ oradebug event

Set trace event in process.
プロセスのイベントのトレース

Syntax Parameter
構文 パラメタ
oradebug event Event name

Event numbers can be found in $ORACLE_HOME/rdbms/mesg/oraus.msg
イベント番号は$ORACLE_HOME/rdbms/mesg/oraus.msgで確認することができます。

or on the address below:
または以下のアドレスでも確認できます。

http://www.kevinloney.com/free/events.htm

Example

In this example I have used event event 10046 which is probably the most used event.
この例では、イベント10046という最も頻繁に利用するであろうイベントを使用しています。

To enable tracing for another session,
他のセッションのトレースを可能にするためには、

the Oracle (PID) or the OS PID (SPID) must be identified from v$process view.
OracleのPIDまたはOSのPID(SPID)をv$processビューから特定する必要があります。

SQLPLUS> oradebug setospid 10929
Oracle pid: 91, Unix process pid: 10929, image: oracleorcl
SQLPLUS> oradebug EVENT 10046 trace name context forever, level 12
Statement processed.

The level can affect the behaviour of the event.
レベルを指定することでこのイベントの動作を変更することができます。

Event 10046 can have level with following values:
イベント10046は以下の値を持つことができます。

Trace Name Level Description
TRACE_ACALL 1 Trace all calls
全ての呼び出しのトレース

TRACE_ECALL 2 Trace "enabled" calls
有効な呼び出しのトレース

TRACE_AEXCP 4 Trace all exceptions
全ての例外のトレース

TRACE_EEXCP 8 Trace "enabled" exceptions
全ての有効な例外のトレース

TRACE_CIRCULAR 16 Trace w/ circular buffer
循環型バッファを使用したトレース

TRACE_BIND_VARS 32 Trace bind variables
バインド変数のトレース


Other combinations :
その他の組み合わせ

Level Description
17 Trace all calls, using the buffer
バッファを使用した全ての呼び出しのトレース

22 Trace enabled calls and all exceptions using the buffer
バッファを使用した。有効な呼び出しと全ての例外のトレース

32 Trace bind variables, without using the buffer
バッファを使用しないバインド変数のトレース

53 Yields the maximum level of tracing, using the buffer
バッファを使用した最高レベルのトレース

37 Yields the maximum level of tracing, without using the buffer
バッファを使用しない最高レベルのトレース


◆ oradebug session_event

Set trace event in session.
セッション内でのトレースイベントの設定

Syntax Parameter
oradebug session_event Event name

Example
SQL>oradebug session_event 10046 trace name context forever,level 12
Statement proceed.
SQL > oradebug session_event 10046 trace name context off
Statement proceed.

The information goes to user dump destination.
取得した情報はuser dumpディレクトリに格納されます。


内容がスマートで面白いです。
http://www.mag2.com/m/0000215142.html


___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
★ 英語ぷちクイズ ★

※答えと思うリンクをぷちっとクリックしてください。
___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
☆2週間に一度って英語で伝えたいときは?

◆biweekly
http://clickenquete.com/a/a.php?M0002066Q0018917A18bdf
◆bimontly
http://clickenquete.com/a/a.php?M0002066Q0018917A26a1f
◆every two weeks
http://clickenquete.com/a/a.php?M0002066Q0018917A326e0
◆every next next week
http://clickenquete.com/a/a.php?M0002066Q0018917A4d077
○結果を見る
http://clickenquete.com/a/r.php?Q0018917Cf54a

締切:2007年01月14日18時00分
協力:クリックアンケート http://clickenquete.com/


こたえは次回に発表します。


■ 前回のこたえ

☆イチロー選手の今年の打率は.322でした。野球における一般的なこの数字の
読み方は?

◆dot three twenty two
◆point three tewnty two
◆zero point three twenty two
◆three two two
◆three twenty two
◆period three two two
○結果を見る
http://clickenquete.com/a/r.php?Q0018523C8f53

人によって色々なのですが、一番多いのは
three twenty twoだと思います。
three two twoでも問題ありません。
打率としてでなく、通常の小数点数値として読む場合、
point three twenty twoとなります。
periodやdotは小数点の場合では使わないで下さい。
前にzeroをつけてもOKです。

ちなみにこのzeroの発音ですが、
ゼロと言ってしまうと伝わらない確立が結構上がってしまいます。
発音記号では「zirow」で、(舌が上歯茎につかないように)Zィーろw
です。Zはカタカナではちょっと表せないです。
(ほんの一瞬だけど大量の息でズと出して次の瞬間ィーが近い気がします)

___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
★ OracleTest ★ (不評につき終了orz)
___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄

■ 前回のこたえ

☆パーティション関連で操作でできない操作は?

◆alter table t_xxx move partition p_xxx tablespace ts_xxx;
◆alter table t_xxx modify default attributes tablespace ts_xxx;
◆alter table t_xxx shrink space partition p_xxx;
◆alter table t_xxx truncate partition p_xxx;
◆alter table t_xxx split partition p_xxx at ('xxx') into (partition p_xxx1,partition p_xxx2);
○結果を見る
http://clickenquete.com/a/r.php?Q0018528C827e

こたえは
alter table t_xxx shrink space partition p_xxx;
です。
alter table t_xxx shrink spaceは10gからの
テーブルスペース内の断片化解消機能ですが、
partition単位での実行はできません。

逆に言うと、他の全てのコマンドはパーティション単位での操作が可能です。
◆alter table t_xxx modify default attributes tablespace ts_xxx;
は新しいパーティションを作成した時に、テーブルスペースを指定しない場合の
デフォルトです。現在の値はdba_part_tablesのdef_tablespace_nameで確認できます。

___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
Oracle解説
___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
oradebugのコマンドはoradebug helpで一覧表示させることができます。

SQL> oradebug help

大抵のoradebugコマンドはudumpディレクトリにtraceファイルを生成します。
(udumpディレクトリはshow parameter user_dump_destで確認)
また、出力されたtraceファイル名は以下のコマンドで確認することができます。

SQL> oradebug tracefile_name

ほとんど場合、事前にコマンド実行対象のプロセスIDを
特定しておく必要があります。自分自身のsqlplusセッションを指定したい場合、

SQL> oradebug setmypid

で指定することができます。
その他のプロセスを指定したい場合、

SQL> setospid <osのプロセスID(v$processのspid)>
又は
SQL> setorapid <oracle上のプロセスID(v$processのpid)>

を使用します。

SQL> oradebug dumplist

でdump処理可能なリストを表示できます。

★ ご注意 ★

oradebug ffbeginコマンドにはご注意ください。
これはSGAを瞬間冷凍(flash freeze)するコマンドで、
sgatofileコマンドを実行する場合などに使用します。
sgatofileコマンドは
1.oradebug ffbegin
2.oradebug sgatofile "/tmp"
3.oradebug ffresumeinst
の3つのコマンドを1セットで実行する必要があります。
もし、ffresumeinstを忘れるとshutdownがabortでもできなくなりますので
ご注意ください。(ffresumeinst実行すればできます)

※sgatofileが使用できるバージョンは限られており、
hp-ux 10.2.0.1では使用できましたが
windows 10.2.0.2では使用できませんでした。
ただし、コマンド名からもわかる通り、SGAの内容をそっくりファイルに
出力するので出力ディレクトリの空き領域にはご注意下さい。

___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
編集後記
___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
今号からご購読いただいた皆様はじめまして。
本日も最後まで読んでいただきありがとうございます。

昨年末から仕事で死んでいます。家に帰ってからも仕事、
電車でも仕事、お正月もお仕事漬けでした。

それではまた。

___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
おわりに
___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
記述誤りなどのご指摘、
記事に関する疑問点・質問・感想・ご意見・ご感想など
yakusa_oracle@yahoo.co.jpまでお願い致します。

簡単な自己紹介はこちら
http://pr2.cgiboy.com/S/3191274

バックナンバー兼ブログはこちら
http://imoment.blogspot.com/

登録・解除はこちらから
http://www.mag2.com/m/0000200441.htm

About me

  • I'm yaksa
  • From Tokyo, Japan
My profile
にほんブログ村 IT技術ブログへ

blogRanking