2009年5月18日月曜日

Oracle:db_block_size

db_block_size


Operating system block size. Good performance can be achieved by ensuring that the Oracle block size is equal to or a multiple of the operating system block size. If this is not the case, the OS may end up performing extra reads and writes during the processing of Oracle blocks, resulting in wasted CPU cycles.See finding block size
♦ Size of buffer cache used. Larger database block size means that you are using up more memory for the same number of db_block_buffers. This also means that more rows are cached. If your rows are small and you use a large block size, a block fetch will result in a lot of rows being fetched (and you may not be interested in all of them). The end result is that the OS is doing more work to fetch things that you don't need. On the other hand, if the row length is large, a large block size may prevent chaining.
♦ Balancing of index branches. Large Oracle block sizes can result in better index balancing, as there are more rows in each branch. A bigger block size means more space for key storage in the branch nodes of B-tree indexes, which reduces index height and improves the performance of indexed queries.


>See finding block size
# df -g | grep "block size" -- to display O/S block size in bytes in Solaris. For Linux run dumpe2fs ( must be root ).
# grep /usr/include/sys/param.h file (NOTE 1024 is the default for DEV_BSIZE)

Oracle:データブロックサイズの選定 - オラクル・Oracleをマスターするため

データブロックサイズの選定 - オラクル・Oracleをマスターするため

データブロックが小さいことによるメリット

* インデックス経由の単一のブロック IO が速い
* 同一ブロックでのトランザクションの競合が起こりにくい
⇒ Interested Transaction List 参照

逆にデータブロックが大きい場合に得意なことは苦手となる。

データブロックを小さくする場合の注意点
行移行、行連鎖を避けるのは優先事項である。この状態になっているデータブロックは、ブロック IO 性能、更新性能、同時実行性能の各性能を低下させる要注意なブロックである。

データブロックが大きいことによるメリット

* テーブルフルスキャンが速い
* 格納効率が良い
* COMPRESS(※) の効果が高い

逆にデータブロックが小さい場合に得意なことは苦手となる。

(※) COMPRESS とは表のデータをブロック完結型の圧縮方式で圧縮する機能、表の再構築やダイレクト・パス・インサートで表データを作成した場合にだけ行われる。 ALTER TABLE にて設定を変更しても既存のデータは圧縮されないので ALTER TABLE ~ MOVE で再作成の必要がある。
但し 256 以上のカラムをもつテーブルにはその効果がない。おそらく行連鎖、プロック内連鎖している行も同じ物理配置になっているであろうから、その仕組み上圧縮できないと考えられる。

Oracle:I/O構成および設計

I/O構成および設計

データ・ブロック・サイズの選択

8KBのブロック・サイズはほとんどのシステムにとって最適です。ただし、OLTPシステムではより小さなブロック・サイズを、DSSシステムではより大きなブロック・サイズを使用することがあります。この項では、最適なパフォーマンスを得るためにデータベース・ブロック・サイズを選択するときの考慮事項を説明します。

注意:

管理性の問題があるため、単一データベース・インスタンスでの複数のブロック・サイズの使用はお薦めしません。
読込み

データのサイズとは関係なく、目標は必要なデータを取り出すために必要な読込み回数を最小にすることです。

* 行が小さく、アクセスがきわめてランダムな場合は、小さなブロック・サイズを選択します。

* 行が小さく、アクセスがきわめて順次である場合は、大きなブロック・サイズを選択します。

* 行が小さく、アクセスがランダムかつ順次である場合は、大きなブロック・サイズを選択するのが有効です。

* 行が大きい(たとえば、ラージ・オブジェクト(LOB)データが含まれている)場合は、大きなブロック・サイズを選択します。

2009年5月17日日曜日

PMBOK:リスク管理:プロジェクトマネジメントスキル 実践養成講座(8)

プロジェクトマネジメントスキル 実践養成講座(8)


回避 ・原因を根本的に取り除き、リスク事象が現実のものとならないようにすること。
・先述の例では、リスクとはテストができないことであり、回避とはI/Fプログラムを使ってテストできるようにすることである。
・具体的な対応策としては、例えば先方の開発が完了してからテストを実行するようリスケジュールを行う、あるいは先方に作業の優先度を上げてもらうことで、予定どおりにテストが実施できるようにするなどが考えられる。
軽減 ・リスクが現実化した場合に影響を小さくする、リスクの発生確度を下げるという2つの軽減策が考えられる。
・先述の例は、マニュアルで作ったI/Fファイルを用いてテストを実行しておくことで、全体への影響を小さくする軽減策である。
移転(転嫁) ・リスクも含めて第三者に責任の所在を移転すること。
・実際のプロジェクトでの活用法としては、外部へのアウトソーシングや保険への加入などが挙げられる。
・ただし、契約により責任を第三者に移転したとしても、金銭的な補償やさらなる人的支援など、契約に基づく責任の遂行にとどまることが多い。
・いい換えれば、責任を移転してもリスク自体は依然として残っており、リスクが現実化した場合に発注者(依頼側)への影響がゼロになるわけではないことを認識する必要がある。
受容 ・プロジェクト計画を変更しないこと。つまり、「何もしない」という決定を下すこと。
・リスクが現実化しても影響が少ない場合や発生確度が無視できるほど小さい場合、あるいはほかの対応策を見つけることができなかった場合に、リスクを受容することになる。
・また、リスクの現実化に備えて、コンティンジェンシープランを作成することも多い。

2009年5月13日水曜日

Oracle:DB-カーディナリティ

カーティナリティとは、"集合の要素の数・基数"である。
どれだけのキーの種類があるか、キーの偏りはないかといったことである。
キーの種類が多い場合を"カーディナリティが高い"、
キーの種類が少ない場合を"カーディナリティが低い"と表現する。

たとえば、社員コードは普通、全て一意性があるので"カーディナリティが高い"。
では、社員マスターの性別は男と女だけなので、"カーディナリティが低い"。

■カーディナリティのチェック方法

SQL>SELECT COUNT(*) from TABLE_A;
(全件件数を確認)
SQL>SELRCT COL1,COL2,COUNT(*) FROM TABLE_A GROUP BY COL1,COL2;
(キー種類数を確認)

キー種類数 / 全件件数 = カーディナリティ


この時の結果が30%以上のような場合は、意味の無い(負荷の低減どころか、負
荷を増加させている)インデックス利用といったことになる。

2009年5月10日日曜日

FW:RASISとは レイシス: - IT用語辞典バイナリ

RASISとは レイシス: - IT用語辞典バイナリ

http://q.hatena.ne.jp/1071039552

Reliability = 結果が正確であること,エラーが起こらないこと
Availability = システムダウンが起こらないこと
Serviceability = メンテナンスやリペアなどの保守に必要な工数が少ないこと
Integrity = 外部から干渉をうけないこと
Security = 自然災害や不正なアクセス,情報漏えいの対策がとられていること

Reliability:信頼性=障害が発生しないこと。
Availability:可用性=使用可能な状態であること。
Serviceability:保守性=保守が容易であること。
Integrity:保全性=他から干渉されないこと。
Security:安全性=災害などから安全であること。

2009年5月9日土曜日

Linux:I/Oスケジューラ

カーネル2.6.10からいか4種類のI/Oスケジューラを選択できるようになった。
(それ以前は、”エレベータ”のみ)





















I/Oスケジューラ
説明
1deadline
読み込み処理と書き込み処理の両方をバランスよく処理することに長けておりRDBMSに最も向いている
2
noop
特別なスケジューリングをしないため、オーバーヘッドは非常に小さい。高性能なストレージ製品やSSDのようなシーク待ちの発生しないストレージに向いている
3anticipatory
将来的に発行されるI/Oを予測するlptpで。シーク待ち時間を小さくする
4cfq
I/O要求の偏りを防ぐスケジューラ。デスクトップ環境のように多数のアプリを常時起動させておくような環境で効率的。多くのディストリビューションでデフォルト


その他参考URL
http://itpro.nikkeibp.co.jp/article/COLUMN/20080613/308032/?ST=lin-os&P=4

2009年5月6日水曜日