• 締切済み

テーブル作成について

msystemの回答

  • msystem
  • ベストアンサー率42% (79/186)
回答No.2

前回の回答にも、書きましたが、PCTFREE、PCTUSEは、テーブルのデータに対し、Updateを使うかどうかによります。補足の文面をそのまま取りますと、Updateはほとんど影響ないことになりますので(今週のデータを先週のデータに変更する作業が、NULLが入っている列にフラグ用に何かデータを入れるという作業でない場合)、そのような場合、PCTFREEはできるだけ小さく、PCTUSEはできるだけ大きくとるのが、パフォーマンス的には良いことになりますので、PCTFREEには5ぐらい、PCTUSEは90くらいをお勧めします。(Oracleの仕様で、PCTFREE+PCTUSE<100という決まりがありますので気をつけてください) あと、先週のデータを削除し、今週のデータを先週のデータに変更し、新たに今週のデータを追加するという作業の流れを見ると、全体のデータ量はほぼ変わらないと考えられます。となると、エクステントの大きさは変わらない事になりますので、PCTINCREASEの値はどうでもいいということになります。 このような感じで如何でしょうか?

関連するQ&A

  • TABLE作成のパラメータ

    Oracle勉強中です。皆様の知恵をお貸し下さい。 テーブル作成の最適なパラメータを調査したいと思っています。 調査対象項目は以下です。 「PCTFREE」「PCTUSED」「INITIAL」「NEXT」 「PCTINCREASE」「MAXEXTENTS」 【構成】 DATANO    VARCHAR2(16)  NOT NULL START_DATE  DATE END_DATE   DATE INFO     VARCHAR2(256) ・データ件数…MAX10000件 ・INSERT、UPDATEが月に10000件発生(MAXで) ・DELETEも月に10000件発生(MAXで) ・月次バッチで1ヶ月以上前のレコードを削除 自分なりに出してみたのですが… ・「PCTFREE」→20 更新処理が発生する為 ・「PCTUSED」→50 削除処理が発生する為 ・「MAXEXTENTS」→4096 今後TABLEサイズが大きくならない為にデフォルトを設定(自信ナシです) …正しい値が出せてますでしょうか? 他のパラメータ値の設定方法も合わせてご回答頂ければと思います。 足りない情報等、ご指摘頂ければ補足致します。 よろしくお願いします。

  • ORACLEでの領域計算

    ORACLEでCREATE TABLE文を実行する時の領域の計算方法 について教えてください。 サンプル PCTFREE 10 PCTUSED 80 STORAGE (INITIAL 2000K NEXT 1000K MINEXTENTS 1 MAXEXTENTS 120 PCTINCREASE 0); で INITIAL は初期値で NEXTは増分値 MINEXTENTSは拡張最小回数 MAXEXTENTSは拡張最大回数 PCTINCREASEは良くわかりませんが、0にしておけば問題ないと書いてありました。 PCTFREE、PCTUSEDは良くわかりません。 テーブルを作成する時に1レコードのバイト数と、必要件数は分かります。 計算方法としては、1レコードのバイト数×必要件数を単純に計算すればよろしいのでしょうか? 増分値はあふれた場合に1回に拡張する値を指定すればいいのでしょうか? あと、MAXEXTENTSは最大増分回数は意味があっていれば理解できますが、MINEXTENTSを指定する理由がわかりません。 PCTFREE、PCTUSEDは良く分かりません。通常はどんな値を指定するのでしょうか? その他、テーブルを作成するにあたり注意するべき点が ありましたら、ご指摘ください。 また、関連するURLがありましたら、教えてください。 よろしくお願いいたします。

  • pctfreeとPCTUSEDの確認方法について

    ORACLEで各テーブルに設定してある「pctfree」と「PCTUSED」 の値を確認したいのですが、 どこを確認すればよいかわかりません。 目的としては、「CREATE TABLE文で「pctfree」と「PCTUSED」 を設定しているので、これが正しく設定されているかを確認したい。」です。 どうかご教授お願いいたします。

  • テーブル作成のサンプル

    オラクルを勉強したいのですが、なにかテーブル作成のsqlサンプルが載っているHPなどありましたら、ご教授頂けないでしょうか?

  • ORACLEテーブルを作成したSQLを調べたい

    バックアップに別サーバに同じORACLEテーブルを作成することとなりました。 どんなSQLでそのテーブルを作成したのか資料が無くてわかりません。 調べる方法を教えてください。よろしくお願いします。

  • SQLServer2005のテーブル作成について

    こんにちわ。 いまSQLServer2005Expressをダウンロードして, データベースを作成し,そこにテーブルを作成しようとしています。 そこで「SQLServer Managemant Studio Express」を使用すれば, 一応テーブルを作成することができるのですが, テーブル定義のスクリプトを作成して, OracleのSQL*Plusのようなコマンド機能から実行したいのですが, SQLServerではそれはどの機能にあたるのでしょうか? 教えてください。よろしくお願いします。

  • Oracleのテーブル作成スクリプトを作成したい

    Oracle8i のDBA Studioで数十の表を作成したのですが、ここからテーブルの作成スクリプトを出そうとして困りました。いわゆる Create Table文なのですが、これを自動で簡単に作る方法はないでしょうか?SQL-ServerのEnterprise Managerでは、SQLスクリプトの作成があって、Create文を簡単に生成できるのですが、これと同じような感覚で、既に作成してあるテーブルのCreate文を出力する方法はないでしょうか?Oracleには、ほとんど慣れていないので、方法があると思うのですが、探し方が悪いらしく途方にくれています。どなたかよい方法を御存じないでしょうか。

  • AccessからOrcleのODBCリンクテーブルにて

    OS:XP Pro Access:2003 Oracle:9i という環境で、AccessからOracleのODBCリンクテーブルを作成して使用しています。 リンクテーブルを作成する際、パスワードの保存にチェックを入れて、作成しました。 Orcle側のパスワードを変更したいのですが、変更前に作成したリンクテーブルは 作成し直しになってしまうでしょうか?

  • テーブル作成クエリで作成したテーブルに連番をふりたい

    こんにちは。 ACCESS97を利用しているのですが(OSはWin2000)、 クエリーで作成したテーブルに連番を振ることは出来ますか? テーブル作成クエリーで5フィールドのテーブルを作成するようにしているのですが、できあがったテーブルの先頭フィールドに1から連番をふりたいのです(計6フィールドのテーブルをクエリーから作成したい)。 イメージとしては、デザインビューでテーブルを作成したときに、1フィールド目にオートナンバー型を利用するのと同じ感じで。。 方法が思いつきません。。 よい方法がありましたらご協力をお願い致します

  • phpPgAdminでテーブルが作成できない

    PHPからPostgresSQLのDBのテーブルへの読み込みができません。 前任者が作成したtestテーブルでPHPを作成すると問題ないが、 私が作成したtest2テーブルに変更すると、以下のメッセージが出ます。 ******エラーメッセージ********************* Warning: pg_query(): Query failed: ERROR: permission denied for relation test2 ******************************************* phpPgAdminでtest2テーブルを作成しましたが、作成の仕方が問題なのでしょうか。 test2テーブルはtestテーブルとわかる範囲で同じ設定にしてあります。 ぼんやりとした質問になってしまって恐縮ですが、 ご教授ください。宜しくお願い致します。 ****************************************** 作成したPHPの一部 ******************************************* $sql = "SELECT * FROM test;"; ↑これだと問題なく表示される $sql = "SELECT * FROM test2;"; ↑こちらだとエラーになる *******************************************

    • ベストアンサー
    • PHP