VBAからのデータベースアクセスを止め、データベースアクセスはサーバー側の処理に任せた方がいいのではないかと考えている件の、運用面の観点について。


【処理負荷の問題】
まず、処理負荷の問題が挙げられる、

下手なプログラムだと、論理的には2名の利用でシステムが真っ当に動かなくなる(1名の使用でも問題が発生するケースもあるだろう。しかし、スタンドアロンやシングルユーザーで動かないようなものはプログラムと認めませんので除外しています。)ことがある。しかし、いくらなんでもそれはExcel側の制御で何とでもなるレベルだろう。

私が過去に扱った基幹システムでも、開発から運用を担当していた期間では70名くらいの使用には処理が回っていた。しかしこれは運用面で「だれがどういう種類のデータを更新する」と決まっていたこと、データベースへのアクセスは少なかったこと、が理由で問題が出なかっただけである。

規模の大きくなるほど、使用頻度が高くなるほど、データベースへの処理負荷が高くなる。VBAはクライアントアプリケーションなので、該当クライアントから直接データベースにアクセスすることになるが、その負荷はすべてデータベース任せ、つまりデータベースマネジメントシステムの性能や機能だけに依存せざるを得ない、ということになる。

データベースの処理負荷が高まると当然遅くなる。しかし、優先すべき処理の制御や、負荷が掛かりすぎないようにコントロールすることができるデータベースは私の知る限り無いようだ。あったとしても少数だろう。
こうなってくるとチューニングは大変である。

データベースへの負荷が過大にならないようにするために、間で処理を取り次ぐものを置いた方がよいと考える理由である。サーバー側にコントロール用のプログラムを置く、というのが具体例になる。