【问题标题】:Long response time for loading a grid view from a table in oracle database从 oracle 数据库中的表加载网格视图的响应时间长
【发布时间】:2015-07-22 13:00:21
【问题描述】:

我正在使用 .Net 4.5 Framework 开发 Web 应用程序。我正在从 oracle 数据库中的表中填充网格视图。该表很大,有近 73,000 条记录,每条记录有 5 列。加载表的响应时间约为 4 分钟。我目前正在使用 ADO.Net 的连接架构方法进行填充。我想要一种减少响应时间的方法。

检索代码

 public DataTable RetrieveManufacturerDetails() {
    try {
      OpenDBConnection();
      objDataTable = new DataTable();
      objTrans = objCon.BeginTransaction();
      objCommand = new OracleCommand("SP_GET_MANUFACTURER_DETAILS", objCon);
      objCommand.CommandType = CommandType.StoredProcedure;
      objCommand.Parameters.Add("cManufacturer", OracleType.Cursor).Direction = ParameterDirection.Output;
      objCommand.Transaction = objTrans;
      objDataAdapter.SelectCommand = objCommand;
      objDataAdapter.Fill(objDataTable);
      objTrans.Commit();
      return objDataTable;
    } catch (Exception Ex) {
      objTrans.Rollback();
      throw Ex;
    } finally {
      objCommand.Dispose();
      objCon.Close();
    }
  }

存储过程:

create or replace PROCEDURE SP_GET_MANUFACTURER_DETAILS(cManufacturer OUT sys_refcursor )
AS
BEGIN

  OPEN cManufacturer 
  FOR
  SELECT MANUFACTURE_CODE AS "Manufcode", 
         MANUFACTURE_NAME AS "Manufname", 
         VENDOR_ACCOUNT_GROUP AS "Ktokk", 
         CITY AS "City", 
         POST_CODE AS "Postcode" 
   FROM MATERIAL_MANUFACTURE_INFO ;

END SP_GET_MANUFACTURER_DETAILS;

【问题讨论】:

  • 您能否提供您的代码示例并解释数据库结构?例如,查询是否使用索引字段进行搜索?
  • 73k 5 列记录对于 oracle 来说并不大,正如@GrandMasterFlush 所说,表定义、代码等。
  • 也许尝试不要一次加载所有 73k,请参阅 this post 了解一些想法。
  • 我已经添加了上面的代码和存储过程。抱歉,它没有正确对齐
  • 首先要检查的是延迟是否在数据库查询、数据表填充或将数据表内容添加到网格视图中。我怀疑是网格视图。

标签: oracle gridview datagridview plsql sys-refcursor


【解决方案1】:

我怀疑您的问题是在向数据网格视图添加 73k 行时出现延迟,而不是在数据库检索中。

有了这么多结果,您将需要实现虚拟模式网格视图。这意味着它只加载您可以看到的结果。

用一个简单的实现检查这个链接。

http://www.codeproject.com/Articles/23937/Paging-Data-with-DataGridView-in-VirtualMode

【讨论】:

    猜你喜欢
    • 2014-02-10
    • 2011-12-22
    • 2018-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-06
    • 1970-01-01
    • 2012-06-16
    相关资源
    最近更新 更多