zoukankan      html  css  js  c++  java
  • asp.net调用oracle存储过程

    oracle内的存储过程是通过游标返回结果集的

    DataTable dt = new DataTable();
                OracleParameter[] paras = new OracleParameter[5];
                paras[0] = new OracleParameter("p_StartTime", OracleType.Char);
                paras[0].Value = StartTime;
                paras[1] = new OracleParameter("p_EndTime", OracleType.Char);
                paras[1].Value = EndTime;
                paras[2] = new OracleParameter("P_SelectStr", OracleType.VarChar);
                paras[2].Value = SelectStr;
                paras[3] = new OracleParameter("p_SubStation", OracleType.Char);
                paras[3].Value = SubID;
                paras[4] = new OracleParameter("io_cursor", OracleType.Cursor);
                paras[4].Direction = ParameterDirection.Output;
                dt = DBHelper.ExecuteTable("datacheck_handcheck.dc_handcheck_apsel", CommandType.StoredProcedure, paras);
                return dt;

     讓ODP.NET查詢快10倍的小密技-FetchSize

                    var dr = cmd.ExecuteReader();
    
                    //指定FetchSize,每次讀取2000筆
    
                    dr.FetchSize = dr.RowSize * 2000;
    
                    var count = 0;
    
                    while (dr.Read())
    
                        count++;

    我驚呆了!快了10倍,這麼多年來,居然不知道有這招?而FetchSize在單筆資料量大、筆數龐大的場合,最能展現威力。在本例中,RowSize約1K,1萬筆資料量約10MB,原本128KB要讀78次,修改FetchSize後只需讀6次,產生10倍的速度差異。

    未來大家使用ODP.NET讀取大量資料如遇效能不佳,加入一行FetchSize設定就可能脫胎換骨,可多加利用。

  • 相关阅读:
    C++中的指针和数组
    windows系统下JDK1.6环境变量配置
    Java Reflection (JAVA反射)
    转载:cin深入分析(下) – cin的错误处理
    OpenGL总结
    OpenGL纹理
    c/C++内存分配
    转载:cin深入分析(上) – cin输入操作处理
    c++中string的用法
    OpenGL颜色
  • 原文地址:https://www.cnblogs.com/wangjunwei/p/3928512.html
Copyright © 2011-2022 走看看