Oracle数据库使用、时间优化

最近半个月的时间学习了Oracle数据库的使用,刚刚接触这一块,需要访问的数据量大概有90万,程序完成第一版的时候,程序执行一次的时间大概要四个小时,显而易见:时间太久,无法满足使用要求。于是我们组长提出时间优化。

时间优化想到的有两个方面:1、Oracle数据库使用方面。2、程序计算方面通过添加约束条件。最终在这两个方面都取得了优化,现在程序运行一次只需要2分钟。可以说是改善非常大!下面分享一下

  • 第一部分

数据库在使用之前首先要做的是数据库的连接,不同的数据库的连接稍有不同。

SQL语句的使用在开始这个项目之前,组长就让我接触学习过,但是当时理解的不够彻底,通过这次有了一个比较好的理解:首先如果我们使用SQL plus进行操作的话,就比较简单,登录到数据库之后,直接输入SQL语句即可。如下:

SELECT PEOPLE 进入时间 FROM GSM.普通用户记录表 WHERE 进入时间<180801000000000 AND 进入时间>180701000000000;

 如果我们在VS中写的话,就有些不同了:

string data = "SELECT DISDINCT PEOPLE FROM GSM.普通用户记录表 WHERE 进入时间>" + starttime +"AND 进入时间 <" + endtime;

程序运行之后,data给到数据库的语句其实就是上面我们输入到SQL plus中。

  • 第二部分

第一周完成了程序的编写,但是时间远远超出预期,于是第二周开始了时间优化的漫漫长路。时间优化推荐几篇博客:Oracle数据库时间优化   Oracle数据库时间优化2 。虽然在Oracle数据库优化的Blog中都不推荐使用子查询,但是我这里情况比较特殊,因为需要查询两次,于是通过思考,想出一种子查询的语句,将两次查询改成了一次 查询,由于数据量的原因,还是很大程度上改善了时间消耗。

DISTINCT   COUNT(*)  ORDER BY 尽量少使用。

同时,发现在对UI进行操作的时候会耗费大量的时间资源,因此我尽量减少输出,只显示最后的结果。

dataGridView、Console 应该尽量少使用。

以上,仅仅记录学习过程!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值