1

レンダリングに270秒かかるリピーターがあり、実際にはすべてのブラウザーがクラッシュします。データを取得するSQLには約10秒かかります。Evalを削除して、速度が少し上がるかどうかを確認したかったのですが、正しい構文に問題があります。私は15万件のレコードを扱っているので、これによって実際にパフォーマンスが向上するかどうかは疑問です。GridViewまたは他のコントロールはより高速ですか?LINQ to SQLを使用するとパフォーマンスが向上しますか?Evalのコードは次のとおりです。

<%#Eval("Name")%>

やっています:

<%# ((DataRowView)Container.DataItem)["Name"]%>

しかし、上記は機能しません。DataRowViewを式として使用できないと表示されます

また、ページングが含まれていないことも指摘しておきます。

4

1 に答える 1

1

どちらEvalかを使用するかContainer.DataItem、同じものであるため、違いはありません。このSOを見てください。

データの表示時にブラウザがクラッシュする場合は、結果として得られるhtmlまたはjavascriptがブラウザでレンダリングされすぎていることが原因です。Evalこれはサーバー側で実行されるため、ブラウザのクラッシュの根本的な原因ではないことに注意してください。

パフォーマンスを向上させ、クラッシュを回避するために、ページングを使用することをお勧めします。本当にページングを使用できない場合は、ユーザーにcsvファイルをダウンロードしてExcelまたはPDFファイルで開くように依頼してはどうでしょうか。

パフォーマンスを向上させるためにLinqtoSQLを使用することに関しては、ストアドプロシージャまたは動的SQLと比較していると思いますか?ストアドプロシージャは常に最高のパフォーマンスを提供しますが、動的sqlまたはlinq式(またはコンパイルされたlinq)がsqlサーバーにキャッシュされると、sprocに比べてそれほど遅くはありません。

于 2012-06-02T07:14:55.753 に答える