

NDBが良くわかりません。
マニュアルで手がかりを探していますが、うまくいかないのでご存知の方がいらっしゃったら、教えてください。
ある規則性にしたがってN個にサブレンジ分割されたNDBがあります。サブレンジごとに10多重で処理を行いたいのですが、この場合のコーディングと基本的な考え方を教えてください。
1)サブレンジ分割の定義をしたNDBに対し、多重なしで全件読みは可能なのでしょうか?
2)サブレンジごとの処理を行いたい場合のコーディングはどのように行えばよいでしょうか?
○第1階層のレコードを1件読む。
この場合は GET FIRST ’レコード名’になるはずですが、このコーディングだけで、第1階層の最初のレコードをアクセスできるんでしょうか?
10個にサブレンジ分割していますが、どのサブレンジかはどうやって決まるのでしょう・・・・?
○第2階層を読む。
この場合は GET NEXT ’第2階層レコード名’ WITHIN ’SET名’ で良いのでしょうか?
この時点で、
GET NEXT ’第2階層レコード名’ WITHIN ’サブレンジ名’ SUBRANGE というアクセス方法があるようなのですが、なにが違うのでしょう・・・?
どうかよろしくお願いします。
No.1ベストアンサー
- 回答日時:
SEに聞いたり、富士通のDBMS開発を行っている事業所に、問い合わせることはできないのでしょうか?
NDBを使用した経験はありませんが、マルチベンダーでのシステム開発やリプレース案件で、NDBについて少し調べたことがあります。
(1)アクセスするサブレンジを限定せず、検索条件を指定しなければ、全件検索になると思います。
→排他制御の単位をサブレンジ(?)といった大きなものにしておかないと、性能上、問題になります。
(2)サブレンジを明示指定する、方式だったように思います。
>GET FIRST ’レコード名’
>このコーディングだけで、第1階層の最初のレコードをアクセスできるんでしょうか?
最初のレコードが検索できます。
最初のレコードとは、キー順に格納するタイプなら、
最小(or最大)キー値を持つレコードです。
ハッシュで格納先を決めるタイプなら、物理的に先頭に配置されたレコードです。
>10個にサブレンジ分割していますが、どのサブレンジかはどうやって決まるのでしょう・・・・?
サブレンジへの分割条件は、
分割キー値<=100・・・サブレンジA
100<分割キー値<=200・・・サブレンジB
200<分割キー値<=300・・・サブレンジC
といった感じで定義されていませんか?
(1)キー順で格納するタイプ
検索条件がなくても、インデクスで格納先が分かる
(2)ハッシュで位置決めするタイプ
検索条件がないと物理順検索になるので、先頭のサブレンジからサーチしていく
親子検索を行う場合は、WITHINで親子集合名(セット名)を指定してください。
親子集合名の指定がないと、子レコードを親子集合に関係なく、独立のレコードとして検索することになります。
>GET NEXT ’第2階層レコード名’ WITHIN ’サブレンジ名’ SUBRANGE というアクセス方法があるようなのですが、なにが違うのでしょう・・・?
マニュアル等で、第2階層レコードに対して指定するようになっていましたか?
WITHINのサブレンジ指定は、特定のサブレンジのみを検索対象にする場合の指定方法だと思われます。
通常、第1階層のレコードに、指定するのではないでしょうか?
この回答への補足
いつも優しく教えていただきありがとうございます。
もう何年も前に本番稼動しそのままになっていたシステムを年明けから変更しなければならないのですが、当時の開発に携わったメンバーは異動となっており、現行メンバーだけではうまく回らなくなっているのが現状です。
来月月末以降富士通さんにも参加していただくのですが、それまでの間に、テスト的にいろいろ試し、問題点を出そうとしているところです。ですが、思うような結果が得られていないため、今回質問させていただいております。
もしお分かりになる箇所がありましたら、本当に申し訳ないのですが、もう少し、お付き合いいただけたらと思います。よろしくお願いいたします。
(1)についてですが、アクセスするサブレンジを限定せず、、、、、とありましたが、この場合のサブレンジの限定とはプログラム上のことでしょうか?
たとえば全件読みの処理を、サブレンジ限定で行う場合(n多重で行う)と、サブレンジに関係なく全件読みを行う場合の違いはプログラム上のコーディングで決まるのでしょうか?
また、サブレンジ分割の件ですが、確かに10個に分割されていて、ご指摘のようにどのキーがどのサブレンジに格納されるかの定義がありました。この場合、単純にSTORE(書き出し)すると、システムで定義したサブレンジの場所に格納してくれるのでしょうか?
などなど、質問が初心者で申し訳ありませんが、どうぞよろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(料理・グルメ) ロバート 馬場 料理 ロバートの馬場さんのYouTubeで、フライパンや鍋を使わず電子レンジのみで調 3 2022/05/08 09:17
- X(旧Twitter) Twitter(X)のアカウントの作り方 Twitterでサブ垢を作りたかったので、今まであったサブ 3 2023/08/28 08:08
- その他(動画サービス) アマゾンプライムビデオが見れなくなりました、対処方法教えてください。 2 2022/09/10 20:48
- 電子レンジ・オーブン・トースター 蒸して凍らせたさつま芋、電子レンジで解凍 1 2022/10/20 19:21
- 電子レンジ・オーブン・トースター 電子レンジについて質問です。 4年利用していた電子レンジが今朝故障しました。 異音がしてエラーメッセ 6 2022/08/28 20:30
- 物理学 耐荷重が足りない分を突っ張り棒で支える方法 2 2023/02/03 22:39
- 電子レンジ・オーブン・トースター オーブンレンジか単機能電子レンジ+コンベクションオーブンを買うか 2 2022/04/23 10:55
- 食べ物・食材 2か月間冷凍していた天ぷらをおいしく 食あたりしないで 食す良い方法は無いですか。 7 2023/05/19 10:08
- モニター・ディスプレイ マルチモニター・PC 2 2022/09/02 23:49
- 工学 【デジタルテスター】でマグネットコンタクターのコイル抵抗値を測定したところ抵抗値が一定 2 2023/04/25 17:53
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
レコードが存在しなかった場合
-
差し込み印刷のレコード数について
-
DataGridViewの内容をDBに反映...
-
カレントレコードが無い事を判...
-
ワードの差込印刷で教えて下さ...
-
ファイル書込みで一行もしくは...
-
サブフォームに新規レコードを...
-
Access を×ボタンで閉じ...
-
ADO VBA 実行時エラー3021
-
DataGridViewの、選択されてい...
-
JSPのNULLレコード表示について...
-
サブレンジ分割されたNDB(富士...
-
ACCESSで大量の更新を行うと「...
-
合計値からの数字の抽出
-
ヘッダレコードとトレーラレコ...
-
マルチレイアウト
-
[VBA] ADOの Clone と AddNew
-
Access でレコードセレクタが押...
-
VB6.0のIsNull関数に相当するもの
-
固有レコード識別子の選択とは
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
レコードが存在しなかった場合
-
DataGridViewの、選択されてい...
-
ADO VBA 実行時エラー3021
-
差し込み印刷のレコード数について
-
ACCESSで大量の更新を行うと「...
-
ファイル書込みで一行もしくは...
-
カレントレコードが無い事を判...
-
ワードの差込印刷で教えて下さ...
-
アクセスでレポートの1印刷内...
-
DataGridViewの内容をDBに反映...
-
[VBA] ADOの Clone と AddNew
-
固有レコード識別子の選択とは
-
JSPのNULLレコード表示について...
-
Access を×ボタンで閉じ...
-
サブフォームに新規レコードを...
-
データセットのレコード更新が...
-
サブレンジ分割されたNDB(富士...
-
レコードセット(ADO.Recordset)...
-
DataGridViewにてセル以外をク...
-
COBOLでのランダムアクセス
おすすめ情報