• 締切済み

CSEとVBで

こんにちは。 処理時間のことで教えていただきたいことがあります。 PL/SQLで作成したあるプロシージャをCSEとVBでそれぞれ動作させた時の話です。 CSE上で動作させた時は1秒ほどで処理は終了するのですが、VBからですと、処理は正常に終了するものの、3分以上もかかってしまいます。 VBからでは遅くなるだろうというのは予想できることではありますが、3分はかかりすぎです。 この処理時間の差はいったいどこからくるのか、教えていただけないでしょうか? よろしくお願いいたします。 VB6(SP6) CSE Ver.1.59 Oracle10g

  • Oracle
  • 回答数1
  • ありがとう数1

みんなの回答

回答No.1

情報が少なすぎて回答にくいですが、おそらくDBに接続するのに時間がかかっていませんか? コネクション接続後、SQL発行前からSQL発行後の間の時間が3分なのでしょうか?

sugar_donut
質問者

お礼

回答ありがとうございます。 質問文がわかりにくくてすみません。 「SQL発行前から発行後の時間」のことです。 知りたかったことは、 SELECT文が動かないとかそういうことではなくて、 同じ処理をCSEとVB(oo4o)から呼び出した場合で、 どうしてこのような時間の差が出てしまうのかということなのです。 PL/SQLのデバックをCSEで行っていますが、 CSEでいくら早い結果が得られても、運用するのに遅ければ意味がないので、 そういったことが回避できるようなヒントがいただけたらなぁと考えた次第です。

関連するQ&A

  • PL/SQLでmdb(Access)ファイルへの書き込みは可能?

    あまりPL/SQLに関して知識がないので 可能なのかを教えていただきたいのですが、 例えば、 Oracleのテーブルデータ(例:メッセージテーブル) をローカルの空のMDBファイルへ丸ごとコピー といった処理をVBで行っているのですが、 毎回Insertを発行しているために とても処理に時間がかかっています。 (もともとこれ自体無謀なんですが・・・) そこでPL/SQLではバルク処理?といった 高速処理もあるようで、 このVBのかわりにPL/SQLで出来ないものだろうか・・・ と単純に思ったのですが、 PL/SQLでこういったコピー処理っていうのは 可能なんでしょうか?? ご存知の方、教えていただきたいです。 よろしくおねがいします。

  • CSEでDB接続しようとすると...

    今回お聞きしたいことは、CSEを使ってのDB接続方法についてです。 さきほど、つみきWEBサイトよりCSEをダウンロードし、 MySQLを起動させた後、さっそくCSEを使ってDB接続を試みました。 しかし接続はされず、アプリケーションが終了してしまいました。 原因を探そうとしましたが、いったいどこをどう見てよいのやらわからず。。。途方に暮れている最中です。 終了の際ウィンドウが表示され、以下のメッセージが出力されました。 ”SQL開発環境アプリケーションは動作を終了しました。” その後、問題が発生したため、プログラムが閉じられます、という内容が書かれており、有無を言わさず終了させられてしまいました。 DB名やサーバ名を変更しても、同様の現象が発生します。 申し訳ありませんがご存じの方があれば、ぜひご教授お願いいたします。

  • PL/SQLの平行処理について

    PL/SQLで処理が長時間になるプログラムがあり、 そのプログラムを4回実行する必要があります。 時間短縮のために平行で処理ができるかネット等で調べたのですが、 どうもできそうにない(解決方法を見つけることができなかった)ので質問させていただきました。 複数のプロシージャを一つのメインプロシージャから平行して実行させることは、可能でしょうか。 ORACLEのバージョンは、 10.2.0.1.0 です。

  • VB6でのPL/SQLの実行について

    現在VB6(SP6)でORACLEのデータベースに接続後、プロシージャを実行してOUTのパラメータを取得したいと思ってプログラムを作っております。 ORACLEへの接続はいろいろ調べてできたのですが、プロシージャの実行(呼び出し)のしかたがわからず困っております。 PL/SQL(プロシージャ名"TEST_DATA") out1 = TEST(OUTパラメータ1) out2 = これはテストです。(OUTパラメータ2) VB6(SP6) Dim OraSession As OraSession Dim OraDatabase As OraDatabase Dim OraDynaset As OraDynaset Dim P1 AS String Dim P2AS String '接続処理 Set OraSession = CreateObject("OracleInProcServer.XOraSession") Set OraDatabase = OraSession.OpenDatabase("TEST", "TEST/TEST DB_DEFAULT) OraSession.BeginTrans 'ここでPL/SQLを実行して、パラーメタを取得したいです。 '取得したパラメータをセット P1 = パラメータ1(TEST) P2 = パラメータ1(これはテストです。) OraSession.CommitTrans '結果表示 Call MsgBox(P1 & "結果" & P2) ご教授のほどをお願いいたします。

  • Transact-SQLでストアードプロシージャ・関数内でのみ有効なモジュールは作れますか?

    SQL Server 2000のTransact-SQLで、ストアードプロシージャ あるいは関数内でのみ有効なモジュール(OracleのPL/SQL で言うところのサブプログラム)は作れますか? もし可能なら、その方法をご教授下さい。 よろしくお願いします。

  • ストアドプロシージャに渡された引数の参照方法

    コンパイル済のVB6のプログラムからストアドプロシージャをCALLして いるのですが、実際にどのような値を渡しているのかを調べなければなりません。 VB6の開発環境があれば容易いのですが、現在実行環境しかない為ORACLE側での 調査が必要です。 全てのプロシージャに出力ロジックを追加すれば良いのですが、 数が多すぎて対応に困っております。 ツールや方法論等につきまして、どなたかご存知でしたらご教授頂けると助かります。 環境は以下の通りです。 Client: WindowsXP SP3 VB6で作成したEXE Server: Linux(Red hat linux) ORACLE 11g Standard PL/SQLで作成したStoredProcedure ちなみに、JdeveloperやOracle SQL Developerも調べて見たのですが、 お恥ずかしながら、今一理解が出来ませんでした。

  • VB6 + OO4O プロシージャの実行&複数行を受け取る方法

    VB6 + OO4O プロシージャの実行&複数行を受け取る方法 現在、VB6でOracleデータベースを操作しようと試みている最中で、 OO4Oで接続しています。 (表現誤っているかもしれません。。。) Oracleは今回初めてで、今まではSQLserverだったのですが、 SQLserverで、  1.ストアドを実行(パラメータあり)  2.レコードセット(複数行)を受け取る  3.ループで全件処理   ・・・ というような処理をしていました。 たとえば、あるテーブルの、ある条件に一致したレコード(複数あり)を全件取得 など。 「引数を渡してストアドプロシージャを実行し、複数行を結果として受け取る」ということがしたく、 Oracleでどのように実現させるかを調べてみたのですが、 「SQL文を記述し、受け取る」  例)strSQL = "select * from tbl"    Set OraDynaset = OraDatabase.CreateDynaset(strSQL, 0) というようなサンプルしか見つけられませんでした。 where句で条件を記述すれば同じなのかもしれませんが、 そういったこまごました記述をストアドプロシージャに記載しておき、 呼び出す際はパラメータだけ指定する、ということを想定しています。 ストアドを実行するサンプルは複数見つけたのですが、戻り値が1つのみか、戻り値なしのもので、 複数行を結果として受け取るようなサンプルが見あたりませんでした。 ストアド(PL/SQL)も作成してみたのですが、 単純に  select * from TBL; とするとエラーで、  select * BULK COLLECT INTO vTBl from TBL;  for i in 1 .. vTBl.count loop   -- 全レコードの項目「name」を表示する。   dbms_output.put_line(vTBl(i).name);  end loop; というように1件1件処理させていく方法しか見つけれませんでした。 Oracleのストアドは、今までのSQLServerの考え方はいけないのでしょうか? 調べるとしたら、どのような単語で調べたらよろしいでしょうか? 「VB6」「oo4o」「複数行」「プロシージャ」など、いろいろ努力はしたつもりなのですが。。。 ご指導よろしくお願いいたします。

  • cseデータ閲覧時に文字化け

    cseからodbc経由でmysqlに接続しています。 select文発行時の結果が、全角の文字データが??で表示され、正しく見ることができません。 また、cseから以下のようなsqlを発行するとエラーが発生してしまいます。 insert into myaddress values('168-0063','ああ',current_timestamp(),now(),current_date(),1234567,125) エラーメッセージ SQL実行中に以下のエラーが発生しました。 エラーコード:1366 [MySQL][ODBC 3.51 Driver][mysqld-5.0.37-community-nt]Incorrect string value: '\x82\xA0\x82\xA0' for column 'address' at row 1 SQLステータス:S1000 mysqlのプロンプトでデータを見ると全角文字列は文字化けすることなく 表示されます。 解決方法が解らず困っています。 ご存知の方がいらっしゃいましたら、宜しくお願いします。 動作環境は以下です。 wincse: ver 1.59 mysql :5.0.37 myodbc:3.51

  • Oracle8iの使用方法について

    今回、初めてOracleを扱うことになりました。 やることは、PL/SQLのプログラムを作成、 テストです。 現在、PL/SQLのプログラムを作成しました。 これから後の作業で使用するツール(画面)が よくわからないので教えてください。 1.コンパイル SQLPLUSで、ファイルを開いて、「@ファイル名.sql」で コンパイルでいいのでしょうか? WorkSheetでも出来ると聞いたのですが、 どのツールが便利でしょうか? 2.テスト 作成したPL/SQLのプログラムを実際 試す場合、SQLPLUSの実行でいいのでしょうか? 実際のプログラムの内容は、 あるファイルを読みこんで、テーブルのデータを 更新する、といったものなんですが・・・ ★その他質問 1)CSEというソフトをダウンロードしたのですが、 これは、Accessのように使えるんですか? テストで使うデータは、Accessのように、 CSEで値を入力すればいいんでしょうか? データは一般的にどのツールで作成するのが いいのでしょうか? 2)オブジェクトブラウザというのは、なんのことでしょうか? 3)他に、Oracleで使用するメジャーなツール がありましたら、教えてください。 以上、初歩的な質問で申し訳ありませんが よろしくお願いします。

  • テキストファイルクリア .net2005 VB

    VB初心者です。よろしくお願いたします。 現在 .net2005 VBでPL/SQLの処理結果を「log.txt」に出力しておりますが、処理をするたびに、テキストファイルの下へどんどん追加されます。 そこで、画面上からログクリアボタンを押下すると、「log.txt」の中身が初期化されるようにしたいと考えて降ります。 どうすればよいか、サンプルのロジックを教えて頂けませんでしょうか?