以下のリストから製品をお選び下さい。

 

FAQ-DataServer

nextlistnext

テーブル作成時の予想件数

西暦2000年対応

コンフィギュレーション・パラメータ推奨値

startdb時に表示される警告メッセージ

SQLハングアップ時の対応方法

DB稼動時、電源が切れた場合の対応方法

startdb時に、-59のエラーが発生

CLIENTINFOの既定値

埋め込み型SQLプログラムで、-2070のエラー発生

会話型SQLで大量レコードロード時の注意事項

RHLIで大量レコードロード時の注意事項

startdb実行時に、-9825のエラーが発生

-10656のエラー(一時ファイル書き込み不可)が発生

レコード登録時の既定のカラム値について

リンクインデックスの作成方法

カラム値として、数値をインクリメントに自動設定する方法

同一マシン上で複数DBを起動する方法

budbで作成したバックアップを使い、別マシン上でredb可能か

ACCELL/Netクライアント環境で、-180のエラーが発生

クライアント環境で、startdb/shutdbは可能か

クライアント環境でDDL操作は可能か

file.cfとfile.cfgの相違点

SQL問い合わせ時に、-10709のエラーが発生

Bツリーインデックス作成時、-10662、-37のエラーが発生

テーブルレコード登録時の性能改善策

dbld実行時、「キーがない」という内容のエラーが発生

サイズが増大したエラーログファイルの縮小方法

AMGR実行中に、-48(デバイスに空きなし)のエラーが発生

dbdmn立ち上げ時の、rcファイル編集方法

dbdmn実行時、-834のエラーが発生

-3(共有メモリ不十分)のエラー発生時の対応方法

テーブルに、予想件数を越えた行数を追加できるか

同一マシン上で、複数の親dbdmnの起動は可能か

データベースを複数ボリュームで管理する手順

データベースに新ボリュームを追加する手順

UNLIMIT設定のDBボリュームを制限付きに変更する方法

SQLのselect文でorder by句を使用するときの注意事項

SQLのselect文の出力結果から重複値を除く方法

データベースファイル(file.db)のサイズを縮小する方法

物理ログファイル(file.pl)のサイズを縮小する方法

データベース作成者以外でも、startdb/shutdb 実行可能か

マルチボリュームの作成方法

マルチボリュームの場合のデータの格納

ビューテーブルの検索パフォーマンス

uldでエラーが発生

テーブルを作成する際の予想件数について注意点を教えて下さい。
テーブルを作成する場合は必ず予想件数を明示的に指定してください。
予想件数を指定することにより、DataServer,Unify2000 が適正なセグメントサイズを自動計算してテーブルを作成します。
適正なセグメントサイズでテーブルを作成することで、データベースの運用が安定したものとなり、また更新パフォーマンスの劣化を防ぐことができます。

[1] 予想件数とセグメントサイズ
各テーブル毎に安定運用時の行数を見積り、テーブル作成時にESTIMATED COUNT句(予想件数)を指定します。

【適正セグメントサイズでテーブルを作成する方法】
     create table tbl001 (
        configuration (
            estimated count is 40000 ),
         カラム1定義,
         カラム2定義,
         -------------------
         -------------------
                                );
   
      (※) ESTIMATED COUNT句(予想件数)の機能 
上の例では、tbl001というテーブルを、予想件数に40000を指定して作成しています。
セグメントサイズは、tbl001のレコード長と、40000という予想件数からDataServer,Unify2000が自動計算します。
tbl001の40000件のレコードを32個以内で収めることが可能なサイズが、適正セグメントサイズです。
実際に確保されたセグメントサイズは、テーブル作成後、tblstatsコマンドで参照することが可能です。
なお、configuration節から「segment is」の指定は外してください。「segment is」と併用しますと、 estimated countの指定が無効になってしまいます。ill -9でkillを行うとDBが破壊される場合があります。
[2] 運用時のデータが予想件数をオーバーした場合
テーブル作成時の予想件数を越えてテーブルにデータを追加することは可能ですが、 テーブルセグメント数が32を越えた場合は、該当テーブルの再作成を推奨します。
[3] 再作成すべきテーブルの識別方法
diag/volchk の実行結果の一部を次に示します。 ここで、SEGMAP の行の右端 segsz の値が 2048 であれば問題はありません。この値が 4096 以上であれば、そのテーブルを再作成すべきです。

下記の例では、tid=188 のテーブルでは使用セグメント数は3個であり再作成の必要はありません。
1 ..RESOURCE (tid=188)
1 ..SEGMAP       vid=1, volofst=2207744, segsz=2048  <---OK 
1 ..SEGMENT# (0) vid=1, volofst=2209792, segsz=65536 
1 ..SEGMENT# (1) vid=1, volofst=2275328, segsz=65536 
1 ..SEGMENT# (2) vid=1, volofst=2340864, segsz=65536
テーブルの再作成では、データのダンプ/テーブルの DROP/予想件数の変更後テーブル再作成/データのロード/アプリケーションの再コンパイル、再リンクの手順が必要となります。
[4] 予想件数の指定と更新パフォーマンスの変化の実測結果
下表は INSERT とその所要時間(秒)を示します。

予想件数を指定しない場合はテーブルの行数が増加するにつれて更新所要時間は増加し、パフォーマンスは劣化します。

一方、予想件数を指定した場合は、パフォーマンスの劣化は認められません。
  追加件数 追加後の 予想件数 予想件数 
           件数     指定なし 指定(8万件) 
  ------------------------------------------
   | 10000 | 10000 | 308 s | 278 s | 
  ------------------------------------------ 
   | 10000 | 20000 | 362 s | 273 s | 
  ------------------------------------------ 
   | 10000 | 30000 | 401 s | 274 s |
  ------------------------------------------ 
   | 10000 | 40000 | 451 s | 279 s |
  ------------------------------------------ 
   | 10000 | 50000 | 512 s | 275 s |
  ------------------------------------------ 
                
  テスト実施者 : Robert Speray 氏 
  環境 : Unify2000 Version 1.3 on IBM RS6000