- PR -

パフォーマンスを求めるならCを使わなければいけないのか

投稿者投稿内容
MID
会議室デビュー日: 2002/01/10
投稿数: 7
投稿日時: 2004-09-22 01:14
大変、たいへん遅くなりましたが、まずは皆様にお礼申し上げます。
ありがとうございました。

汎用機のことは全く知らなかったし、オフコン(AS/400)のDBもRDBだ、と云われていたのでまったく気づかなかったけれど、AS/400のDBというか、メインの開発言語であるRPG IIIって、きわめてISAMに近い考え方でした(ASのDBがRDBではない、と云っているわけではありません)。SQLのような集合演算の考え方がないようです(ASにも一応、SQLはありますが・・・)。
RPG IIIでは、SETLL命令でビュー(論理ファイル)にポインタを当てて、READEでキーに該当する間だけレコードを読んでいくことで、パフォーマンスのよいアクセスができます。また、AS/400はSQL文の理解はできるが、パフォーマンスは(穏便な言葉を使っても)かなり悪い。しかも、AS/400ネイティヴでSQLを使おうとすると、オプションのSQL開発キットが必要になります(うちのASには入っていませんでした)。
そりゃ、レコードレベルアクセスにこだわるわけだ、と思いました。

私の中では、「RPGと、OracleやSQL Server などでは、概念が違う(優劣の問題ではない)」という理解で落ち着きました。

また、次期基幹系も、AS/400で落ち着きました。IAサーバでミッションクリティカルな仕組みが作れるこのご時世に、まだ、オフコンを使うのかと思いましたが、社長のひとことであっけなく決まってしまいました。「下の中」のハード・OS・SQLなど開発キット込み、アプリ開発費抜きで、3000万するそうです。高いです。年間システム投資総額の1.5倍します(リースにするみたいですが)。

最後に。
CでDB2にレコードレベルアクセスするシステムを作った人のことですが、確認したところ、10年近く前の話でした。今でもレコードレベルアクセスなのかなぁと、小一時間ぐらい問いつめたい心境です。

[ メッセージ編集済み 編集者: MID 編集日時 2004-09-22 02:25 ]
とんび
常連さん
会議室デビュー日: 2003/07/11
投稿数: 32
投稿日時: 2004-09-23 01:24
引用:

最後のオフコンのようにISAMアクセスとCってのは
その人の考えが、偏っている為かもしれません。
が・・・C/Sの方が遅いというのは、DB+SQLでも
あながち間違いではないようです。(私がすこしだけ調べた
限りです、また言語による速度はこの場合影響が少なすぎる
ので無視です。)

何故、そういう結論なのかは、以下のサイトの、C/Sの
真実1998年版を読んでください。
http://www2p.biglobe.ne.jp/~sakurait/index.htm
読めば、如何に私たちの考えがまだまだ浅いかってのが
思い知らされます。

ここまでやって、お客さんに説明して、初めて”さすが
プロだ!”と納得してくれるのかもしれません。

(惜しいのは、このサイト更新がとまってるのよね
また、汎用機やオフコン系の人のサイトって、かなり
参考になりますね)



うーん、もしシステムの受託先の人がサイトにこんなことかいてたら
おれだったら、受託先の変更を考えるけど....。
C/Sの方が遅いってそりゃ全部1つのマシン上でやるより遅いのはあたりまえなんじゃなんでしょうか?
いちいちベンチマークする必要がどこにあるのかと。
「SQLに関する詳細な知識とストアドプロシジャを組む能力が必須である」てあるけど、
知識や能力が必要なのは何をするにしてもいっしょでしょうに。
汎用機やオフコンなら知識や能力が必要ないわけじゃないでしょう。
ISAMをスキャンするプログラムを組む手間隙を考えればSQLやストアドプロシジャを
覚える価値は十分にあると思うのですが。

もちろん、賛成できる内容も十分にあることはあるのですが。
Beatle
ぬし
会議室デビュー日: 2003/06/09
投稿数: 394
投稿日時: 2004-09-23 10:31
引用:

MIDさんの書き込み (2004-09-22 01:14) より:

最後に。
CでDB2にレコードレベルアクセスするシステムを作った人のことですが、確認したところ、10年近く前の話でした。今でもレコードレベルアクセスなのかなぁと、小一時間ぐらい問いつめたい心境です。




今時のRDBと言っても10年も前のバージョンではISAM型だったころもあるので、その時
には確かに下手なindex(KEY)の設定されると、実体をテキストファイルとしてアクセス
したほうが速い場合もありましたね。でも、いまやRDBそのものの構造が変わっている訳で
全く意味が無い主張でしょうね。

引用:


何故、そういう結論なのかは、以下のサイトの、C/Sの
真実1998年版を読んでください。
http://www2p.biglobe.ne.jp/~sakurait/index.htm
読めば、如何に私たちの考えがまだまだ浅いかってのが
思い知らされます。




ここのベンチマークってあまり関係無いのでは?
私にはC/Sとスタンドアロン、ミドルウェア(というかDBとの接続方法)の違いに
よるベンチマークにしか見えないのですが...レコードレベルアクセスとかISAM
とかとはあまり関係無いですし、INSERTのベンチマークですから、現実的にもスト
アドプロシジャを使う事が多い部分なので、あまり今回の件では参考にはならないか
と...

私にはオフコンとOpenSystemでのパフォーマンス云々の場合、DBや言語の差よりも
UIの違いとI/Oの数が圧倒的に差が出るとこだと思いますけどね。
 オフコンでGUIを使うと...
 UNIX(C/S)でも500台からアクセスされると...

[ メッセージ編集済み 編集者: Beatle 編集日時 2004-09-23 10:40 ]
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-10-02 10:42
 日経ソフトウェア11月号の特集6に、おもしろい記事がありました。P112「怖い話1 終わらないバッチ処理」

 要約すると、メインフレーム系のメンバーがオープン系のシステムを組んだ。6時間以内に終わらなければならない処理が12時間たっても終わらない。そこでオープン系の助っ人が呼ばれた。助っ人が調べてみると、SQL文やテーブル構成が、見た目は整然とクンであるが、やはり構造を知らないので「早くなるこつ」が全く使われていない。そこで「こつ」を使うように再構成すると1時間半で終わるようになった。


そんなもんだね。
fukus
会議室デビュー日: 2004/10/20
投稿数: 9
投稿日時: 2004-10-20 16:55
両方やってみてわかったことだけど、
○汎用機やオフコンで速度の出る設計
○オープン系でSQLを使用して速度の出る設計
はちょっとずつ違う。

汎用機やオフコン、ぶっちゃけAS/400上のRPGでアクセすることを前提にしているテーブル設計に大してSQL発行したばあい、SQLプログラマーからみるとトリッキーなjoinしなきゃいけなくなるなど。
逆に、そんなこと無視してテーブル設計すると、普通に速度が出る。けどRPGプログラマからは不評。

それと既存で動いてるAS/400って、端末エミュレータでのアプリが動くためのスペックしかないので、そこでwebシステム組んでDBサーバーとして使うたら、とてつもなく遅くなりました。

スキルアップ/キャリアアップ(JOB@IT)