• 締切済み

oracle pl/sqlの処理速度について

pl/sqlで作成したプログラムはc言語で作成したものより処理が遅いと聞きました。 処理の前提として、  ・処理件数は数十万件から数百万件のバッチ処理  ・データは全てテーブルに格納してある  ・処理が複雑なため、プロシジャからプロシジャを呼び出す必要がある  ・サーバの能力はそれなりにある です。 c言語の経験がないので、検証することが出来ません。 処理の内容にもよるとは思いますが、一般的な回答で構いませんので教えてください。

みんなの回答

回答No.1

なんだかぜんぜん次元が異なるものを比較しようとしている気がします。 PL/SQLは、Oracleで条件分岐などの処理を実現する一種の言語で、Oracle上でしか動きません。 別の言い方をすれば、Oracleのデータを操作するため以外の目的には利用できません。 C言語は一般的にプログラムを記述するための言語で、Oracleとは全く関係がありません。 CからPro*CやODBC接続かなにかを利用してOracleを利用ことは出来ますが、それにしても基本的にはSQL文を投げて結果をもらうだけに過ぎません。 当然Cから直接OracleのDBを読むことも不可能です。 というわけで、両者は同列で比較できるものではありません。 ちなみに....どのような体裁をとるにせよ、処理の大部分がOracleのデータ操作になるのであれば(書き込まれているようなバッチ処理はたいていそうです)、プログラム本体が全体のパフォーマンスに与える影響はごくわずかです。 バッチ処理を呼び出す言語は書きなれたものを利用して、パフォーマンスチューニングはパッケージやストアドプロシージャの中のSQL文の書き方などで行うべきだと思います。

hanab
質問者

お礼

御回答ありがとう御座います。 質問の仕方が悪かったようです。すみません。 質問したかったのは、pl/sqlでテーブル操作以外(分岐や文字列操作等)の部分がcに比べ極端に遅くその量が多くかつデータ量が多ければ影響が大きいのではないかと思い、また、プロシジャからプロシジャの呼び出しが、ダイナミックにその都度行われていた場合遅くなるのではないかと思い質問させていただきました。 VDSLさん言う通りテーブル操作が一番時間がかかると思います。

関連するQ&A