开发工具 VS2008 数据库 ORACLE 10g  数据库连接采用 Enterprise Library 4.0 新建的项目只一个页面查询 表中200多条记录,居然用5、6秒钟, 什么原因? 怎么解决啊?

解决方案 »

  1.   

    http://www.qqread.com/oracle/2009/06/b467163.html
      

  2.   

    1.用System.Data.OracleClient,不要用OLEDB
    2.定义参数查询
    3.分页查询数据
    4.nvarchar2对应C#中nvarchar,varchar2对应C#中varchar
    参考FortuneBase
    参考地址www.cnblogs.com/mail-ricklee
      

  3.   

    个人体验:Oracle功能强大,但是想很好的玩转Oracle还是要花不是心思和时间。
             不像SQL SERVER 简单易懂。1,先truncate一遍数据表,再插入一些数据。肯定快了。
    2,建立索引。
    3,查询计划分析一下你的SQL 语句。
    4,检查你代码
      

  4.   

    设置了主键,索引,再说。即使没设置。 我调试用的,一共才200条记录。也不应该那么慢啊。 
    用PL/SQL查非常快的。
      

  5.   

    首先你得判断一下是不是Oracle数据库引起的?
    你把sql语句放pl/sql中执行一下看看,如果是的再从数据库上考虑!
    200条记录我觉得慢的问题更可能出在代码上
      

  6.   

    DataTable ds = new DataTable();
            ds = CD.getDatabySQL("select A_ID,A_T_ID,A_TITLE,A_DETAILS,A_DATE,UPLOADFILE,NAME from ARTICLE left join ARTICLE_TYPE on ARTICLE.A_T_ID=ARTICLE_TYPE.ID order by A_ID desc");
            this.DataList.DataSource = ds;
            this.DataList.DataBind();就这几行代码public DataTable getDatabySQL(string sql)
            {
                Database db = null;
                db = DatabaseFactory.CreateDatabase("Data");
                DbCommand DbCommand = db.GetSqlStringCommand(sql);
                DataSet ds = db.ExecuteDataSet(DbCommand);
                return ds.Tables[0];
            }
    这是返回数据集的函数
      

  7.   

    ARTICLE.A_T_ID=ARTICLE_TYPE.ID 
    ARTICLE表

    ARTICLE_TYPE表要建立主外建关系
      

  8.   

    不要用system.data.oracleclient
    装ODP.NET,这个是ORACLE为.NET提供的专用驱动,
    上WWW.CONNECTIONSTRING.COM找连接字符串,
    我一直这样用,小数据量想都不用想这种问题
      

  9.   


    ORACLE里的左连接不用LEFT JOIN 用加号就可以了
    SELECT A.* FROM TA A,TB B WHERE A.COL1=B.COL1(+)
      

  10.   


    ORDER BY 也是要建索引滴
      

  11.   

    谢了各位,问题根本原因是表中A_DETAILS为clob类型,包含大量数据。 表和数据是别人给我的,我也没注意。