A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
前回の回答にも、書きましたが、PCTFREE、PCTUSEは、テーブルのデータに対し、Updateを使うかどうかによります。
補足の文面をそのまま取りますと、Updateはほとんど影響ないことになりますので(今週のデータを先週のデータに変更する作業が、NULLが入っている列にフラグ用に何かデータを入れるという作業でない場合)、そのような場合、PCTFREEはできるだけ小さく、PCTUSEはできるだけ大きくとるのが、パフォーマンス的には良いことになりますので、PCTFREEには5ぐらい、PCTUSEは90くらいをお勧めします。(Oracleの仕様で、PCTFREE+PCTUSE<100という決まりがありますので気をつけてください)あと、先週のデータを削除し、今週のデータを先週のデータに変更し、新たに今週のデータを追加するという作業の流れを見ると、全体のデータ量はほぼ変わらないと考えられます。となると、エクステントの大きさは変わらない事になりますので、PCTINCREASEの値はどうでもいいということになります。
このような感じで如何でしょうか?
No.1
- 回答日時:
PCTFREEですが、たとえば、Varchar2の列があるテーブルの場合、最初にInsertするときに、Varchar2の列にNULLを入れ、後でUpdateしたいときがあるとします。
そのときに、Oracleでは、できるだけ同じオラクルブロック(Windowsでいうとクラスタ、HDDでいうとセクター)に後でUpdateした内容を入れようとするのですが、オラクルブロック内に空きスペースがないと、別のオラクルブロックに入れてしまいますので、データの断片化が起こることになります。それを避けるために、あらかじめ、Update用にスペースを空けておきます。この空けておくスペースの%表示がPCTFREEです。PCTUSEは、たとえば、ある行を削除すると、オラクルブロックに空きスペースができます。当然空きがあるので、空きスペースを再利用するのですが、その際利用を開始するオラクルブロックの%表示が、PCTUSEです。
PCTINCREASEは、Oracleでは、いくつかのオラクルブロックをまとめてエクステントという単位で、記憶容量を増やしたり管理したりします。当初、テーブルを設計する際に、データ容量の見積もりをきっちり行い、その容量分だけエクステントをちゃんと作っておけばこのパラメータは不要ですが、見積もりができないときなどは、記憶容量を自動で増やしてもらえるように、設定します。その際に、最初に確保する量(INITIAL句)、その領域が足らなくなったときに増やす量(NEXT句)は、直接数字を指定するのですが、その次に増やす量は、NEXTの数字から増やす量を計算させることができます。これを指定するのがPCTINCREASEです。つまりNEXTで指定した量を増やした領域が足らなくなったとき、NEXTで指定した量×(100+PCTINCREASE)/100を増やします。(増やす量を%表示したことになりますね)その次に増やすのは、前回増やした量×(100+PCTINCREASE)/100で増やす量は、PCTINCREASEずつ増えていくことになります。ただし、PCTINCREASEに0以外を指定すると、記憶領域に断片化につながりますので、注意が必要です。
気をつける点ですが、PCTFREE、PCTUSEは、UPDATEがほとんどないテーブルの場合は、PCTFREEに5ぐらい、PCTUSEにできるだけ大きな数字を使うとほんの少しですが、パフォーマンスが良くなります。Updateが頻繁で、Varchar2が多いテーブルは、PCTFREEを大きめの数字、PCTUSEを少し小さめの数字を使うと断片化を抑えることができます。PCTINCREASEは容量計算をしっかりしてやり、0で使うのが理想です。
ただ、最初は分からないので、デフォルト値でもいいと思います。
この回答への補足
大変詳しいご回答ありがとうございます。
大変恐縮ですが、もう少し相談に乗ってください。
私が作成するテーブルの使用目的は、
そのテーブルには、前週データ(A)と今週データ(B)があります。
それぞれ、前週・今週をあらわすコードをもっています。
毎週データの更新があり、以下のような処理を行います。
1、前週データ(A)を削除
2、今週データ(B)を前週コード
3、新たに、今週データ(C)を今週データをつけてテーブルにINSERT
こういった処理を行う場合、PCTFREE、PCTUSE、PCTFREEは
どういった値を与えたらよろしいでしょうか?
よろしくお願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) AccessVBAで降順にするテーブル作成クエリを使用して作成したテーブルを削除し同一のテーブル作成 1 2023/01/06 11:17
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- その他(Microsoft Office) エクセルでテーブルの最終行が自動追加されない 1 2023/01/04 15:09
- Access(アクセス) Accessテーブルの結合で別々のテーブルのフィールドを組み合わせて値を出す方法について 2 2022/07/20 19:43
- SQL Server DBのテーブルの設計ができず困っています。 2 2023/06/29 16:43
- 経営情報システム accessでの請求管理について 12 2022/06/11 16:20
- JavaScript HTML&CSS Javascriptによる動的テーブル 1 2023/03/27 19:51
- MySQL PHPとMySQLを使った掲示板の作り方 1 2022/06/02 13:00
- MySQL クエリを、PhpMyAdminで作成して実行するとき、まず、テーブルのバックアップを作成してから行う 1 2023/05/29 16:38
- SQL Server ACCESSで表が作りたく、そのためのSQL文や設定方法を教えてください。 1 2022/08/15 12:28
このQ&Aを見た人はこんなQ&Aも見ています
-
10代と話して驚いたこと
先日10代の知り合いと話した際、フロッピーディスクの実物を見たことがない、と言われて驚きました。今後もこういうことが増えてくるのかと思うと不思議な気持ちです。
-
一番最初にネットにつないだのはいつ?
ネットユーザーもいろんな世代が生まれていますが、始めて接続したときのワクワクは同じはず! 人生で一番最初にネットに接続したときの思い出を教えて下さい。
-
モテ期を経験した方いらっしゃいますか?
一生に一度はモテ期があるといいますが、みなさんどうですか? いまがそう! という方も、「思い返せばこの頃だったなぁ」という方も、よかったら教えて下さい。
-
食べられるかと思ったけど…ダメでした
「この煮物、だいぶ放置しちゃったけど大丈夫かな…」 「食べ物じゃないけど、なんか食べたらすごく美味しそうな気がする」
-
店員も客も斜め上を行くデパートの福袋
シュールを通り越して店員も客も斜め上を行くデパートの福袋に入ってそうなものを教えて下さい。 よかったらレビューもしてください。
-
ORACLEでの領域計算
その他(データベース)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・「黒歴史」教えて下さい
- ・2024年においていきたいもの
- ・我が家のお雑煮スタイル、教えて下さい
- ・店員も客も斜め上を行くデパートの福袋
- ・食べられるかと思ったけど…ダメでした
- ・【大喜利】【投稿~12/28】こんなおせち料理は嫌だ
- ・前回の年越しの瞬間、何してた?
- ・【お題】マッチョ習字
- ・モテ期を経験した方いらっしゃいますか?
- ・一番最初にネットにつないだのはいつ?
- ・好きな人を振り向かせるためにしたこと
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・2024年に成し遂げたこと
- ・3分あったら何をしますか?
- ・何歳が一番楽しかった?
- ・治せない「クセ」を教えてください
- ・【大喜利】【投稿~12/17】 ありそうだけど絶対に無いことわざ
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・集合写真、どこに映る?
- ・自分の通っていた小学校のあるある
- ・フォントについて教えてください!
- ・これが怖いの自分だけ?というものありますか?
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・10代と話して驚いたこと
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Oracleで上書きImportはできま...
-
ビューのソートについて
-
Accessでデータシートに同じデ...
-
テーブルで一番古いレコードだ...
-
アクセス レコードセットを更...
-
IF NOT EXISTを使用するINSERT文
-
マテリアライズドビューとスナ...
-
Accessのテーブルデータを一気...
-
仕事のミス:本番データの削除→...
-
Accessでレコード削除ができな...
-
Access VBAからエクセルに出力...
-
htmlコードで書かれた表にphpで...
-
このISAMでは、リンクテーブル・・
-
MySQLのviewはデータをコピーす...
-
「クリップボードにコピーされ...
-
クエリとパススルークエリを作...
-
データベースを設計するときに
-
同一テーブルのデータを参照し...
-
重複クエリを使ったデータ削除
-
Accessの処理速度を速めるため...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessでデータシートに同じデ...
-
Accessのテーブルデータを一気...
-
Oracleで上書きImportはできま...
-
テーブルで一番古いレコードだ...
-
アクセス レコードセットを更...
-
ビューのソートについて
-
住所のDBテーブル、マスターの...
-
同一テーブルのデータを参照し...
-
マテリアライズドビューとスナ...
-
PostgreSQLでテーブル構成を変える
-
ORA-01401が表示され、データが...
-
結合テーブルでINSERTする方法...
-
構文エラー : 演算子がありませ...
-
このISAMでは、リンクテーブル・・
-
accessでレコード更新直後の反...
-
MS Accessを共有した際にファイ...
-
IF NOT EXISTを使用するINSERT文
-
Accessでの稼働日数計算の方法
-
処理の途中で停止させ、再開さ...
-
データベースの構造について
おすすめ情報