大量のデータ (20000 レコードの SQL クエリ) があり、データグリッドにその量のデータを入力するには 10 分ほどかかります。これが私のグリッドビュー定義です。
<asp:GridView ID="g" runat="server" Height="113px" Width="817px"
BackColor="White" BorderColor="#999999" BorderStyle="None" BorderWidth="1px"
CellPadding="3" GridLines="Vertical" AllowPaging="True" Font-Size="Small"
PageSize="30">
<AlternatingRowStyle BackColor="#DCDCDC" />
<FooterStyle BackColor="#CCCCCC" ForeColor="Black" />
<HeaderStyle BackColor="#000084" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#999999" ForeColor="Black" HorizontalAlign="Center" />
<RowStyle BackColor="#EEEEEE" ForeColor="Black" />
<SelectedRowStyle BackColor="#008A8C" Font-Bold="True" ForeColor="White" />
<SortedAscendingCellStyle BackColor="#F1F1F1" />
<SortedAscendingHeaderStyle BackColor="#0000A9" />
<SortedDescendingCellStyle BackColor="#CAC9C9" />
<SortedDescendingHeaderStyle BackColor="#000065" />
<PagerStyle cssClass="gridpager" HorizontalAlign="Left" />
</asp:GridView>
ご覧のとおり、AllowPaging プロパティを true に設定しました。
これは私がデータをバインドする方法です:
DataSet dts = new DataSet();
OracleDataAdapter oad = new OracleDataAdapter(query, co.conn);
cmd.CommandText = query;
cmd.CommandType = CommandType.Text;
cmd.CommandText = query;
cmd.CommandType = CommandType.Text;
OracleDataReader reader = cmd.ExecuteReader();
oad.Fill(dts);
g.DataSource = dts.Tables[0];
g.DataBind();
どうすればパフォーマンスを向上させることができますか?
データセット (oad.Fill(dts);) を埋めると、完了するまでに 10 分かかります。一度に20000件のレコードを設定したからでしょうか?ユーザーがグリッドビューを改ページしたときに、最初の 30 レコードのみを表示してデータを呼び出す方法はありますか? パフォーマンスを向上させる別の方法はありますか?