私のアクセスデータベースには700レコードあり、すべてのレコードには50個のフィールドがあります。クエリの速度は非常に高速ですが、ODBCクエリをC#で使用するPHPのODBCクエリを使用します。以下:あなたが処理する必要があるよりも、あなたのアプリケーションのためのより多くのデータを選択しないでください助けC#ODBCクエリは非常にゆっくりです
答えて
ため
m_conn = new OdbcConnection("DSN=real");//This DSN set by through the windows control panel,ODBC manager,system dsn
m_conn.Open();
string sqlstr="select * from table1 where id = 1";
OdbcCommand selectCMD = new OdbcCommand(sqlstr, m_conn);
OdbcDataReader myreader;
myreader = selectCMD.ExecuteReader();
if (myreader == null)
return null;
string s =myreader["field"].ToString();//here,execution speed is very slow,why?
感謝。
明細select * from table1 where id = 1
はすべてのフィールドを選択しています。 field
という名前のフィールドのみが必要な場合は、selectステートメントをselect field from table1 where id = 1
に変更します。
データベース構造に関する追加情報を提供した場合、私はより多くの助けになるかもしれません。
ここにいくつかの提案があります。私は、このコードに何度もアクセスしていることを推測しています。これは、遅さが入ってくる場所です。これは、接続を正しく処理したり閉じたりしていないことが原因です。以下はusing句でリファクタリングされたコードであり、呼び出しの後にDisposeの使用を強制します。
また、アスタリスクを使用する代わりに、列の名前を指定すると、クエリを最適化するのに役立ちます。
最後に、変数が1つだけの場合は、探している値を1つ戻し、呼び出しをExecuteScalar()
呼び出しに変更するように変更することを検討してください。
// Consider specifying the fields you are concerned with
string sqlstr="select * from table1 where id = 1";
using (var m_conn = new OdbcConnection("DSN=real"))//This DSN set by through the windows control panel,ODBC manager,system dsn
using (var selectCMD = new OdbcCommand(sqlstr, m_conn))
{
m_conn.Open();
using (var myreader= selectCMD.ExecuteReader())
{
if (myreader == null)
return null;
string s =myreader["field"].ToString();
}
}
あなたの応答に感謝します。上記のコードは私によって単純化されています。私はシングルステップブレークポイントデバッグを使用します。約10秒後にこのステートメントでスタックします。
string s = myreader ["field"] ToString();
、この速度は想像以上に遅いです。私のシステムのためですか?私のシステムはwin7 64ビットです。 –上記のコードを試してみましたか?特にselect文を "table1からフィールドを選択"に変更してみてください。アクセスは非常に高速なdbではなく、フィールドを指定すると間違いなくdbに役立ちます。 –
はい、試しました。 SELECTステートメント: "テーブル1からフィールドを選択"非常に高速です。私はVS2010のMFCを試しました。それはまた非常に遅いです。したがって、私はこれはWindowsシステムのODBCドライバの問題だと思う。 –
- 1. SqlBulkCopy *非常に*ゆっくりとAzureのSQLとC#
- 2. RenderTexture to Texture2Dは非常にゆっくりです
- 3. UIMenuControllerは非常にゆっくりと応答します
- 4. SqlClient.SqlDataAdapter.Update()は非常にゆっくり実行されます
- 5. AngularJS、ファセット検索が非常にゆっくりです
- 6. 機能は、私は、ストアドプロシージャでこのクエリを持っている私のクエリは非常にゆっくりと
- 7. GridSplitterが非常にゆっくり動く
- 8. JQGrid非常にゆっくりと展開/折りたたむ
- 9. 非常にゆっくりと動作するフラッシュ
- 10. UIAlertViewが非常にゆっくりと表示されます
- 11. GridViewが非常にゆっくりとスクロールします
- 12. PHPメールが非常にゆっくり送信されます
- 13. ネイティブエクスポビルディングが非常にゆっくりと反応する
- 14. ノックアウトJSリスト選択非常にゆっくり
- 15. C#が非常にゆっくりと実行されているSQLiteデータベース
- 16. php-cgiがウィンドウ上で非常にゆっくり走っています
- 17. JavaはWindows上でファイルを非常にゆっくり読み込みます
- 18. コードはGoogle App Engine内で非常にゆっくり実行されます
- 19. 非常にゆっくりとしたフィルターcoulderであっても
- 20. ファイルGoogle Chromeのでは非常にゆっくりと入力ダイアログ開口部
- 21. Postgresqlはネットワーク経由でクエリ結果を非常にゆっくりと送信しています
- 22. AjaxのJavascriptは非常にゆっくり読み込まれます
- 23. 隠れた行で非常にゆっくりと動作するシート
- 24. Windows上のバグをPrecise64で非常にゆっくり実行する
- 25. tabBarアプリがiPhoneデバイスで非常にゆっくりと起動する
- 26. Membaseは非常にゆっくりと作業を開始しました
- 27. はゆっくり
- 28. .append()非常にゆっくりと画像を画像に添付します。
- 29. vmware上のピラミッドサーバが非常にゆっくりと応答します
- 30. Wordpress:私のWordpressページが非常にゆっくり実行されます
下のマイデータベース構造:
私はこれにすべてのフィールドを必要とするが、私は、PHPのODBC-クエリで同じクエリ文をテストし、その速度は非常に高速です。 –