2011-11-07 20 views
1

SQL Serverからデータを取得するためにSqlDataReaderを使用するアプリケーション用の高性能なデータ取得/記憶域クラスを作成しています。SQL Serverのデータ形式

好奇心の渦中に、私はSQLサーバーからデータがどのような形で入ってくるのかを知りたかったのです。キャラクター?バイナリ?他のフォーム?

残念ながら、私は私のオフィスで盗聴をすることはできません。私はこの答えが見つかると思っています。

EDIT:この質問の目的は、データ構造内に配置する前にできるだけ操作を行わないように、SQLサーバーからデータを取得する形式を決定することでした。

この質問は、a previous question of mineに関するもので、データ形式を文字列に変換することの違いがパフォーマンスに大きな影響を与えることがわかりました。

答えて

3

フォーマットはTabular Data Stream Protocol Specificationに記載されています。プロトコルとワイヤ形式はほとんど関係がないと言われています。転送速度が非常に高いデータを検索すると、間違った経路に深入りしてしまいます。

データアクセスが最適化されていること、最も重要なのは、データモデルが適切に設計されており、予想されるワークロード(つまり重要なクエリのインデックスをカバーしている)

ます(例えば、データベースに保存されたメディアファイルを。)データの大きなチャンクを取得した場合、SqlCommandクラス、すなわちSequentialAccess行動フラグを使用するには、いくつかの具体的な方法があります:

がための方法を提供しますが大きなバイナリ値を持つ列 を含む行を処理するDataReader行全体をロードするのではなく、 SequentialAccessを使用すると、DataReaderはデータをストリームとしてロードできます。 は、GetBytesメソッドまたはGetCharsメソッドを使用して、読み取り操作を開始するためにバイト の場所を指定し、返されるデータを に限定したバッファサイズを指定できます。

この使用方法の例については、Download and Upload images from SQL Server via ASP.Net MVCを参照してください。

+0

素晴らしい情報、ありがとう! – ChandlerPelhams

関連する問題