HOME»データベーススペシャリスト掲示板»H23午後I問3「データ入出力処理時間」について
投稿する

[0487] H23午後I問3「データ入出力処理時間」について

 おばけさん(No.1) 
表題の件について、過去問の解説だけだと理解が厳しいため質問させてください。

CPU処理時間は、CPU処理時間とデータ入出力処理時間から構成される旨が問題文に記載があります。問題文に従えば、データページを「順次」に入出力する場合、SQL処理時間は以下の式で算出できると記載があります。
SQL処理時間=MAX(CPU処理時間, 非同期データ入出力処理時間)

また、設問2の(g)(h)を読み進めると、CPU処理時間とは以下の構成である旨が解説等に記載があります。
CPU処理時間=データ入力処理のCPU処理時間(①)+データ出力処理のCPU処理時間(②)
①:全データページを順次にデータバッファに入力するのに必要なCPU処理時間
②:全行をデータバッファからプログラム内に移動するのに必要なCPU処理時間

一方で、データ入出力処理時間については詳細な記載がないように見えます。
「データ入出力処理時間」とは、具体的にどのような処理の時間を指しますでしょうか。
CPU処理時間と同様に以下分割できる認識をしておりますが、具体的にどのような処理がイメージできないため、教えていただけないでしょうか。
データ入出力処理時間=データ入力処理時間+データ出力処理時間
※解説を見ると、SQL1AもSQL2Aもデータ入力時間はどちらも1000秒、データ出力時間はどちらも0秒ですが、同じになる理由も教えていただきたいです。

以上よろしくお願いいたします。
2023.05.28 11:21
gawaさん(No.2) 
データ入出力は、ディスクストレージの読み書きの処理です。入力時間と出力時間の合計で正しいです。

1Aと2Aで同じ1000秒になるのは
入力時間→どちらも全データページを読み込むので同じ1000秒
出力時間→問題文に書いてありますが測定ではストレージへの出力は行わないので0秒

入力時間1000秒の根拠
2AのSQL処理時間1000秒=max(cpu処理時間=10秒、非同期入出力時間=?)
より、非同期入出力時間?は1000秒。

列c4に索引定義されてないので、1Aと2Aともに全データページ読む非同期入出力処理になるとなる。2Aでは結果行なしになるようなwhere句(c4が負である)となってるという点、これらを抑えておいてください
2023.05.28 15:10
logres_fanさん(No.3) 
DB ブロンズマイスター
  データ入出力処理時間は、データベースに接続している時間でいいんじゃないですか。
  順次100万ページの読み取りを開始します
ウィーンガチャンウィーンガチャンピーピーピー・・・ウィーンガチャンウィーンガチャンZzz
順次100万ページの読み取りを完了しました。1000秒。
  CPU処理も頑張れ!って過酷だよね。

  答えありきですが、出題意図はCPU処理時間のようです。(データ入出力処理時間はプラフかな)
混乱して苦手意識にならないように、さらっと流していいんじゃないかと思います。
IPA講評も必見です。
2023.05.29 01:51
 おばけさん(No.4) 
gawaさん
ご回答ありがとうございます。
>入力時間→どちらも全データページを読み込むので同じ1000秒
>出力時間→問題文に書いてありますが測定ではストレージへの出力は行わないので0秒
→秒数が同じであるのは、AもBもデータページ数が同じであり、どちらも全データページを読み込む。また出力(外部ファイルへSELECTの結果行の出力はしない)もない。で理解しました。
データ入出力は、ディスクストレージの読み書きの処理(今回は出力はない)とのことですが、例えばSQL1xやSQL2x(どちらも表探索)、SQL3x(索引あり)を実行した場合、以下のような動きになる理解であっておりますでしょうか。
SQL1A:SELECT * FROM TA
①索引はないため、索引に関する処理なし
②TAの一行目から順次ディスクにアクセス(データ入力処理(1000秒))
③全データページをデータバッファに入力(CPU(入力)処理時間(10秒))
④全行をデータバッファからプログラム内に移動(CPU(出力)処理時間(SQL1Aのみ、2000秒)

SQL3A:SELECT * FROM TA WHERE C2 BETWEEN 1 AND 1000
①バッファから索引をヒットさせる(表6の上の問題文の記載の通り)
②索引からディスクのTAのレコードを検索(データ入力処理)
③④は上記と同じ
2023.05.29 09:39
 おばけさん(No.5) 
logres_fanさん
ご回答ありがとうございます。
>答えありきですが、出題意図はCPU処理時間のようです。(データ入出力処理時間はプラフかな)
>混乱して苦手意識にならないように、さらっと流していいんじゃないかと思います。
>IPA講評も必見です。
→本筋ではないと理解はしていますが、ちょっと気持ち悪く・・・。
確かに苦手意識にならないようにさらっと流そうかと思います。IPA講評についても確認してみます。
2023.05.29 09:41
gawaさん(No.6) 
ご理解であっていると思います。問題文読んでいて私も混乱してきました。データバッファへの入力って、データ入出力じゃないのか?と。
なので、以下のように解釈してみました。

同期データ入出力
データページの1ページ目にランダムアクセス➡その後、バッファに入力+プログラムに渡す
データページの2ページ目にランダムアクセス➡バッファに入力+プログラムに渡す
・・・をNページ分、直列に繰り返す

非同期データ入出力
・全てのデータページに順受アクセス
・バッファに入力➡プログラムに渡す
を並行して行う
2023.05.29 17:59

返信投稿用フォーム

スパム防止のためにスレッド作成日から30日経過したスレッドへの書込みはできません。
© 2016-2024 データベーススペシャリストドットコム All Rights Reserved.

Pagetop