大手町も板についてきました。
寝不足で眠いです。
さて、今日は表領域、ユーザ、スキーマについて勉強しました。
☆楽しかったこと1
EM⇒表領域の内容表示
でセグメント、エクステント情報をみました。
■■■□□□□□□□□□□
□□□□□□□□■■■■■
こんなやつ↑
ちなみに
エクステントはデータブロックの集まりで
セグメントはオブジェクト毎のエクステントの集まりです。
☆備忘1
表領域
空では作れません。
(当たり前だけど)
☆備忘録2
表領域-領域管理
・ローカル管理
ローカルにエクステント管理情報を保持
ビットマップで管理
・ディクショナリ管理
SYSTEM表領域にエクステント管理情報を保持
☆備忘3
DROP
コレはご存知かと思いますが、10gからは表を削除するとゴミ箱に入ります。
完全に削除したいならPURGE句を指定しましょう。
ゴミ箱を空にするにはPURGE RECYCLEBINコマンドを使用します。
☆備忘4
表の切捨て
TRUNCATE文はDDLです。ROLLBACKできません。
あと、暗黙にCOMMITが発行されるので注意です。
(アプリ開発でも注意が必要?)
☆備忘5
索引
Bツリーだけでなくビットマップというのがあります。
キー値が低カーディナリティーの場合有効な索引です。
キー値の特定はBツリーと同じだけど、リーフにてアドレスではなく
ビットマップ情報を保持します。
例えば性別の場合、キー値は男と女となります。
ルートにリーフ情報(男、女)をもたせ、各リーフには、キー値と開始、終了の
ROWID、ビットマップを保持します。
1列目3列目10列目が男の表の場合
男リーフは
<男、XX、XX、1010000001>
女リーフは
<女、XX、XX、0101111110>
といった具合になります。
これで1が立っているROWIDを検索するから早いって感じなのかな?
たぶん。
☆備忘6
順序
これ、本当に単純な仕組みですね。
nextval
carrval
で事前に定義した通り数値を取得するだけです。
Insert into 社員表 values(順序名.nextval、"OMU");
って感じです。
じか打ちして、ミスってInsert失敗して次もnextvalすると
1 OMU
2 OMU
4 OMU
みたいに失敗分の値がとんじゃいます。
☆注目度高
管理者のOS認証
・・・OS認証って知ってます?
はい。知ってるつもりでした・・・。
OS認証とは、OSで許可されたアカウントであれば、Oracleでの
パスワード認証は不要ですよ。ってやつです。
でも、知らなかったんです。
ORA_DBAグループに所属するOSアカウントであれば
conn / as sysdba
でログインできることを
![](https://blogimg.goo.ne.jp/img_emoji/hiyoko_thunder.gif)
そしてSYSDBAはOS認証がパスワード認証より優先されることを・・・。
だからDBを作成したアカウントでログインすれば
SYSのパスワード忘れちゃってもDB管理できるってことです。
(↑そのためにあるわけじゃないが・・・)
へ~へ~へ~。
あー、今日も無知であることがよくわかりました。
でも、講師に質問すると痛いところをついてるみたいで
「いい先輩になれるな~」
って思いました。
今年の新人君をいじめちゃお~♪
毎日おなか痛いの刑じゃ。ふふふ。
・・・って逆にいじめられたりして