- ベストアンサー
C#, VB.NETでウェブDBのメンテを実現する方法とは?
- C#およびVB.NETを使用してウェブDBのメンテナンスを行う方法を紹介します。質問の内容を要約しています。
- C#, VB.NETを使ってウェブDBのメンテを実現する方法について解説します。ウェブアプリの作成やデータの登録方法などについて詳しく説明しています。
- C#, VB.NETを使ってウェブDBのメンテを行う際の注意点や設定方法について解説します。ウェブアプリやローカルプログラムからのデータベースへのアクセス方法を詳しく説明しています。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 >C#とphpを連携させる場合、データはやはりxmlが扱いやすいのでしょうか。 その辺はなんでもいいと言ったら乱暴ですが、お好みで大丈夫だと思います。 私ならJSONで組むと思います。 >また、こういったレンタルサーバーのDBに、 >早くて数秒~遅くて2,30秒間隔で、500バイトx3,000レコードを更新するのは、 >やはり高負荷となるのでしょうか。 >これは、別のカテゴリーで質問を立てるか、 >そもそもサーバー業者に問い合わせすべき内容かも知れませんが...。 個人的には負荷が高いかなと思います。 通信時間も入ると数秒の繰り返しでは、3000件のインサートが間に合わないかもしれません。 実際のところやってみないとわかりませんが。 もっと明るい人がいるかもしれませんので別の質問として聞いてみるのも手ですが、一番確実なのは業者に問合わせてください。 常にプロセスがCPUを食ってるとか、メモリの利用が高いと、強制的に止められてしまう可能性もありますので。
その他の回答 (4)
- LancerVII
- ベストアンサー率51% (1060/2054)
こんにちは。 >なるほど、直接接続できないのですか。 DBが外部ネットワークからの参照を許可していれば大丈夫です。 >ウェブサーバーは、レンタルサーバーを利用するつもりです。 共有サーバの場合、大量のリクエストを行うと、ほかのユーザに迷惑がかかる場合もあります。 十分に検討してください。 >ちなみに、phpを介する場合、それはどのようなことをするのでしょうか? >ローカルで収集したデータをサーバーに送る仕組みと、 >そのデータをphpでどう扱うのか、あまりうまくイメージできません。 直接アクセス出来る場合は、C#のアプリでSQLを発行してデータを保存することが出来ます。 DBに直接接続できない場合は、対象のDBに接続できるphpを介すことになります。 phpを介すとは、SQLの発行をphpで行い、データの保存、取得を実行します。 例えばですが regist.php ← データ登録用 C#で作成したデータをregist.phpに対して投げます。 regist.phpではデータを受け取り、SQLを発行してデータベースへ登録します。 ようは、登録の部分の窓口をphpで作っておくということです。 DBにデータが入ってしまえば、phpで表示するページを作るもよし、同じような仕組みでデータを取得する窓口を作ってあげてWindowsアプリにて取得して表示するもよしです。
補足
度々ありがとうございます。 よく分かりました。 少し調べてみたところ、外部アクセスを許可するサービスは、やはり料金が高いですね。 できれば普通の(?)レンタルサーバーのMySQLを使用したいものですが...。 C#とphpの連携も調べて見て、なんとなく分かりました。 DB登録後のphpでの抽出やhtml作成はイメージできます。 道筋がだいぶはっきりしてきました。 ありがとうございます。 厚かましくて申し訳ないのですが、 C#とphpを連携させる場合、データはやはりxmlが扱いやすいのでしょうか。 また、こういったレンタルサーバーのDBに、 早くて数秒~遅くて2,30秒間隔で、500バイトx3,000レコードを更新するのは、 やはり高負荷となるのでしょうか。 これは、別のカテゴリーで質問を立てるか、 そもそもサーバー業者に問い合わせすべき内容かも知れませんが...。 ともにもしご存知でしたら、ご教授ください。 度々すみません。
- ShowMeHow
- ベストアンサー率28% (1424/5027)
すみません、webDBの話でしたね。 ということで私の話は無視してください。
お礼
早速書き込みをいただきまして、ありがとうございます。 今回は、ウェブサーバー上のDBのことでしたので、 すみませんでした。 ありがとうございました。
- ShowMeHow
- ベストアンサー率28% (1424/5027)
単にdbの速度だけな半紙をするなら、私のチンケなテスト環境だと (8年位前のほとんどIOのないHPのサーバーにDB2のEE入れた ものに対して、同じくらい古いcore2マシンからネットワークは100M、 3段くらいカスケードしてあるがハブ間はメタルのギガ回線) 下記VB6プログラムで、500バイトのデータを3000件登録するのに、 およそ4秒かかりました。 Dim strdata As String Dim strsql As String strsql = "" For X = 1 To 50 strdata = strdata & "abcdefghij" Next X Con.Open "xxxxx" Debug.Print Now For X = 1 To 3000 strsql = "insert into t_test values (" & X & ",'" & strdata & "')" Con.Execute strsql Next X Debug.Print Now() 2013/10/30 17:33:32 2013/10/30 17:33:36 ネットワークの性能を上げれば多少早くなるとは思います。 まあ、データを集めて整理するのに、どの程度時間がかかるかの方が大きな問題かもしれません。 (が、このあたりはやってみないことにはなんともいえませんね。)
- LancerVII
- ベストアンサー率51% (1060/2054)
こんにちは。 1.可能です。 ただし、Webサーバがレンタルの場合、おそらく外部からDBへの接続は出来ないので(プランによるかもしれませんが) php等を介しての処理になると思います。 2.WebサーバがそのC#を動かす端末からどこの位置にあるかにもよると思います。 (自社管理のサーバなのかレンタルサーバを借りるのかetc.) 1.で述べたようにC#→php→mySQLだと直接mySQLに接続するより処理時間がかかるのは必至です。 こればかりは実際の環境でやってみて、チューニングするしかないと思います。 3.1.と同様、可能ですが方法に制限があるかもしれません。 どうせサーバ側の処理を介すならWebで作ってしまったほうが楽でしょうし。 (仲介するAPI的なものを作る必要がない)
補足
ありがとうございます。 なるほど、直接接続できないのですか。 大変参考になりました。 例えば、ODBC接続のようなものがあって、 ウェブ上DBに簡単に接続できるものと考えていましたので。 ウェブサーバーは、レンタルサーバーを利用するつもりです。 いくつか運用をしたいと思っていまして、 その中にはWindowsのIISでイントラネットのようにしようと思っていたものもありますが。 ちなみに、phpを介する場合、それはどのようなことをするのでしょうか? ローカルで収集したデータをサーバーに送る仕組みと、 そのデータをphpでどう扱うのか、 あまりうまくイメージできません。 概要のようなものでもご存知でしたら、ご教授ください。
お礼
何度もすみませんでした。 なるほどJSONですね。 少しかじって知っています。 これから設計のときにきちんと検討します。 やはりサーバーの負荷が一番気になるところです。 今はまだ、こういうことをしたい、程度の構想段階なもので、 具体的な業者の選定もなにもこれからなのですが、 予備知識を得るためにももう少し調べてみようと思います。 強制的に止められたりすると大変ですので、 扱うデータ量ももっとちゃんと見積った上で、 慎重に考えたいです。 この度は、どうもありがとうございました。 大変参考になりました。