問題タブ [datareader]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
1356 参照

.net - IDataReader からの .NET オブジェクト ハイドレーションのパフォーマンス低下

400 個までのビジネス オブジェクトのリストをハイドレートしようとしていますが、文字列をハイドレートする必要があると、パフォーマンスが非常に遅くなります。400 個のオブジェクトをハイドレートするのに 20 秒以上かかります。

編集

MySQL 5.1 と dotConnect for MySQL v5.0.12 をデータ プロバイダーhttp://www.devart.com/dotconnect/mysql/として使用しています。

問題の原因となっている文字列の種類に絞り込むために、いくつかのベンチマークを行いました。他のアセンブリの読み込みにかかる時間を無視するために、レコード 2 から n までの時間を測定し始めました。

次のコードは、0 ミリ秒で 1 つのオブジェクトをハイドレートします

これも 0 ミリ秒で 1 つのオブジェクトを水和します

ただし、datareader オブジェクトを文字列に変換するとすぐに、平均 53 ミリ秒かかります

私も2本の弦に水分を補給しようとしましたが、1本の弦ほどパフォーマンスを吹き飛ばしませんか?以下は、1 つのオブジェクトをハイドレートするのに平均 57 ミリ秒しかかかりません。

多くの人が上記の構文を使用してビジネス オブジェクトをハイドレートしていることを知っています。これを行うためのより効率的/高速な方法はありますか?

編集 文字列でダ​​イレクトキャストを行う別のテストを行ったところ、同じ遅い速度が生成されました:(キャストを行うためだけに53ms。

0 投票する
3 に答える
344 参照

.net - How To: Use a datareader without a count of records

It seems folks have lost the ability to generate old style COBOL/RPG reports using modern day languages.

I often see code using DataReaders that relies on a count of records. So an additional aggregrate query is present when it need not be.

In most circumstance this code needs to know if there is another record available or not. In other words, tell me if I'm at the last record so I can display a record separator.

A simple algorithm would be as follows:

Please, do not use COUNT(*) or a datatable/dataset when a simple change in algorithm will suffice.

0 投票する
5 に答える
8708 参照

asp.net-mvc - ORMなしでASP.NETMVCを使用する

ASP MVCアプリケーションでは、データベースのクエリに標準SQL(Linq to SQLまたはその他のORMではなく)を使用しています。

データベースの結果をビューに渡し、ビューの結果を繰り返し処理したいと思います。しかし、これを行う方法がわかりません。私が見たすべての例は、いくつかの文字列を渡すか、L2Sを使用しています。ネストされたハッシュテーブルのようなものを渡したいのですが、考えられるのはSqlDataReaderオブジェクトをビューに渡すことだけですが、これは本当に悪い考えのように思えます。

標準のSQLクエリからのデータベース結果をビューに表示するにはどうすればよいですか?本当にLinqまたは他のORMを使用したいのですが、要件により、使用しないように指示されています(理由を聞かないでください、わかりません)。私はこれをVBで行っています。提供されているC#の例を変換するように最善を尽くします。

0 投票する
5 に答える
5119 参照

c# - Stored proc 出力パラメータ + 出力パラメータを返さないことを選択

GetReader を使用して呼び出す 2 つのレコードセットを返すストアド プロシージャがあります。最初を繰り返し、IDataReader.NextResult() を呼び出し、次に 2 番目を繰り返します。

sp の出力パラメーターに値を割り当てますが、リーダーで終了した後に値を確認すると、出力パラメーターは null です。バグのように見えます。私はファッジが好きではないので、選択を使用したくありません。いくつかのスニペット...

...

(この方法または AddOutputParameter() を使用しても同じ結果が得られることに注意してください)

...

...

いくつかの知恵の宝石を楽しみにしています:)

0 投票する
4 に答える
777 参照

tsql - TSQL を実行する SqlDataReader は、TSQL を実行する管理スタジオよりも高速です

管理スタジオでTSQLステートメントを実行し、SqlDataReaderを介して同じクエリを実行すると、後者は前者よりも速く結果を返します...

何らかの理由??

0 投票する
1 に答える
327 参照

c# - 開いているDataReaderを追跡するにはどうすればよいですか?

私は、クライアントが特定のデータソースからデータを取得するために使用できるクラスを作成するように任命されました。たとえば、メインルーチンは次のようになります

Data Access Applicationブロックがこれを行うことは知っていますが、説明しない理由でアプリケーションブロックを使用できません。とにかく、私はいくつかのロジックを借りるつもりです。

ただし、私のタスクのもう1つの部分は、開いているDataReaderを追跡することです。これは、すべての人がリーダーを適切に閉じていることを確認するためだけに必要です。私の計画は、この新しいクラス内にDataReaderのコレクションを含めることでした。これは、GetDataReaderルーチンが呼び出されるたびに追加されます。アプリの実行が終了すると、コードはこのコレクションを通過し、まだ​​開いている各リーダーのファイルに警告を記録します。

だから、私は2つの質問があります:

  1. このデザインに本質的に何か問題がありますか?
  2. とにかく、DataReaderからSQLコマンドを実行することはできますか?これにより、閉じていないリーダーの検索が大幅に簡素化されます。または、この情報を取得するためにリーダーとコマンドのペアを保存する必要がありますか?
0 投票する
1 に答える
916 参照

.net - SQL テーブルに varbinary(max) として保存されている DATA FILE (テキスト) を操作します。

助けを求めており、正しい方向を示す必要があります。誰か助けてもらえますか?

10000 個の数値/データ ポイントを含むデータ ファイル (txt) を用意します。データ ファイルを varbinary(MAX) として SQL テーブルに格納します。

私の目標は、ユーザーの要求に応じてファイルを取得し、数値を折れ線グラフとしてプロット/グラフ化することです。

DataReader で数値を画面に直接表示しても問題はありませんが、数値を DataSet (またはテーブル) に入れてグラフをプロットする方法に行き詰まっています....

アドバイスや方向性を教えてくれる人はいますか?

どうもありがとう。ミリー

0 投票する
6 に答える
928 参照

performance - データベースへの長い旅行を伴うWinformのデータリーダーまたはデータセット?

米国と中国で使用される Winform アプリがあります。SQL Server 2005 データベースは米国にあるため、中国の人々のデータ アクセスは遅くなります。最高のパフォーマンスを得るために、DataReader と Dataset のどちらを使用するかを決定しています。データは、取得時にすぐにビジネス オブジェクトにロードされます。

質問: 離れた場所にあるデータベースからデータを取得するには、どちら (DataReader/DataSet) が優れていますか? DataReader は .Read() ごとにデータベースに戻ることを読んだので、最初から接続が遅い場合は、ここで DataSet を選択することをお勧めしますか?

ありがとう