- PR -

表領域の分割

1
投稿者投稿内容
amatsuno
会議室デビュー日: 2006/02/01
投稿数: 7
お住まい・勤務地: 静岡県(住まい)
投稿日時: 2006-02-01 17:56
はじめまして。

現在業務で使用しているoracle(10g)のテーブルのひとつに、
レコードが1億件を超えるテーブルが存在し、
そのテーブルを解する処理にあまりにも時間がかかるため、
テーブルの分割を考えています。

今回の条件として、
・win2003サーバー
・テーブルは分割せず、表領域のみを分割する
ことが前提となっています。

この条件の下、一つのテーブルを複数の表領域で管理させる方法は可能でしょうか?
可能な場合、よろしければその方法をご教授ください。
(これまで、oracleをunix系のみで使用していたため、winのoracleでは表領域やテーブルの名称の使用方法が違っていたらごめんなさい)


また、大変申し訳ございませんがotnの掲示板へも同一の内容で質問させていただきました。いずれかの掲示板でご回答のほど、よろしくお願いいたします
もしもし
ぬし
会議室デビュー日: 2004/10/15
投稿数: 280
投稿日時: 2006-02-01 18:28
引用:

未記入さんの書き込み (2006-02-01 17:56) より:

現在業務で使用しているoracle(10g)のテーブルのひとつに、
レコードが1億件を超えるテーブルが存在し、
そのテーブルを解する処理にあまりにも時間がかかるため、
テーブルの分割を考えています。

今回の条件として、
・win2003サーバー
・テーブルは分割せず、表領域のみを分割する
ことが前提となっています。

この条件の下、一つのテーブルを複数の表領域で管理させる方法は可能でしょうか?
可能な場合、よろしければその方法をご教授ください。
(これまで、oracleをunix系のみで使用していたため、winのoracleでは表領域やテーブルの名称の使用方法が違っていたらごめんなさい)




Unix でも Windows でも、表領域は表領域ですが...。
「テーブルは分割せず、表領域のみを分割する」はパーティション表で
どうでしょうかね。

ただ、表領域を分割したとしても、問い合わせの SQL が全件検索している
のであればあまり意味はないでしょうけど(物理的にディスクが別であるのなら
パラレルクエリーで若干変わる?)。
SQL の方を見直すことも検討してはいかがでしょう。

引用:

また、大変申し訳ございませんがotnの掲示板へも同一の内容で質問させていただきました。いずれかの掲示板でご回答のほど、よろしくお願いいたします



OTN の利用者が必ずしも @IT の利用者とは限らないでしょうが...。

_________________
もしもし@RMAN 友の会
amatsuno
会議室デビュー日: 2006/02/01
投稿数: 7
お住まい・勤務地: 静岡県(住まい)
投稿日時: 2006-02-02 08:49
ご回答、ありがとうございます。

早速本日SQL側の確認をしてみます。


ありがとうございました。
ZingBay
常連さん
会議室デビュー日: 2004/02/16
投稿数: 27
お住まい・勤務地: 古の奈良
投稿日時: 2006-02-02 09:22
こんにちは。

億の位に達する件数が妥当なのかどうか、そこも確認された方が
宜しいかと思います。

死荷重にしかなっていないデータが大半を占めているようなら
期間やその他の条件で絞って別テーブルにして分割するなり
ダンプに追い出してしまってダイエットするなりの方法が検討できると思います。

業務系でデータ整理の手段が提供されているにも関わらず
(いつか見るかもしれない)データを置いておきたい担当者が居て
データ量が想定外になっているケースが散見されますので。
あんとれ
ぬし
会議室デビュー日: 2004/01/14
投稿数: 556
投稿日時: 2006-02-02 12:00
引用:

未記入さんの書き込み (2006-02-01 17:56) より:
はじめまして。

現在業務で使用しているoracle(10g)のテーブルのひとつに、
レコードが1億件を超えるテーブルが存在し、
そのテーブルを解する処理にあまりにも時間がかかるため、
テーブルの分割を考えています。



テーブルを分割することにより処理アップが見込めるような調査は既に終えられているのでしょうか? やたらむやみにテーブルを分割したも処理速度が向上するとは限りません。まずは、その原因を探るところから調査を進めるべきだと思いますが。

あと、パーティションを使うにはエンタープライズエディションで、かつパーティショニングオプションのライセンスが必要です。
amatsuno
会議室デビュー日: 2006/02/01
投稿数: 7
お住まい・勤務地: 静岡県(住まい)
投稿日時: 2006-02-02 13:02
>ZingBayさま

現在、運用でその処理(dmp吐き出し→削除)をタスクとして行っているのですが、
(一定期間以上過去のデータを削除)
そのときに1億件以上のデータがあるので、
何とかならないかと思い質問させていただきました。



>あんとれさま

分割による処理能力の向上については確認しております。
(基本的にはselect・exp・truncateです)

1億件以上のデータを持つテーブルがこの1テーブルのため、
ここだけのためにOracle Partitioningを購入することにコスト的な問題があり、
もしほかの方法があればと思う質問させていただきました。



あんとれ
ぬし
会議室デビュー日: 2004/01/14
投稿数: 556
投稿日時: 2006-02-02 23:14
引用:

未記入さんの書き込み (2006-02-02 13:02) より:

分割による処理能力の向上については確認しております。
(基本的にはselect・exp・truncateです)



少なくとも insert 処理はあるかと思いますが・・・。

それはともかく、私が言いたかったのはボトルネックがどこにあるかということです。ボトルネックが CPU やメモリ容量の不足であれば、いくら I/O に関するチューニングをやっても全く無駄になってしまいます。statspack などのレポートは既に取得されているのでしょうか?

引用:

・テーブルは分割せず、表領域のみを分割する



あと、これはパーティションを利用しない限り不可能です。
データファイルの分割なら可能ですが・・・。
1

スキルアップ/キャリアアップ(JOB@IT)