java提高系统性能_提高系统性能的方法 - javaEasy的个人页面 - OSCHINA - 中文开源技术交流社区...

针对我们在第一节中介绍的可能

影响数据库性能的几种因素

,除了可以使用上面所说的通过修改 SQL 语句的结构和所使用的运算符的手段来提高数据库系统性能外,我们还有其它多种手段来达到提高数据库系统性能的目的,下面我们将介绍其中的四种用

来提高系统性能的方法:

1.经常使用 COMMIT 或 ROLLBACK 命令

事务提交命令 COMMIT 将事务运行的结果写回表中,同时也表示事务的完成。在事务操作结果被写回目标表之前,SQL 语句执行的中间结果被保存在系统中的保留区中, 只有等到 COMMIT 命令发出, 保留区中的 SQL 操作的结果才可以被写入目标表中,

然后清除保留区中的内容。而 ROLLBACK 命令是用来在不更新目标表的情况下清除保留区中的内容。 我们在执行一个数据库系统的批处理事务时,必须要了解什么时候应该执行数据提交命令 COMMIT,或者需要使用 ROLLBACK 命令来清除系统保留区中存储的 SQL 语句操作的中间成果。如果执行批处理事务时,一直不发出 COMMIT 和 ROLLBACK 命来清空保留区,在长时间的批处理事务过程中,系统保留区中保存的 SQL 语句操作的中间结果就将不断累积,直到没有空闲的保留区为止。这时数据库系统就会停止批处

理事务的运行,并且还禁止其它新的事务的处理。

可见,如果没有养成经常使用 COMMIT 或 ROLLBACK 命令的编程习惯,很可能会严重影响数据库系统的性能。

2.协调用户处理和批量事务处理

发生在数据库系统内部的事务处理的类型是影响数据库系统和 SQL 语句性能的主要因素之一。事务处理有两种类型:用户输入和成批装入。 “用户输入”一般是指用户输入 INSERT、UPDATE 和 DELETE 等命令组成 SQL语句。最终用户则使用前端工具,如各种应用程序来和数据库进行交互。我们在优化数据库性能时,主要考虑的是对最终用户的事务进行优化处理。我们在处理最终用户的事

务时,要考虑到并发用户的数量,并发用户的数量越大,数据库系统性能下降的可能性越大。 “成批装入”是指一次成批地执行访问数据库系统的事务命令。例如,某个用户要一次向数据库中输入非常大量的记录,又不想手工完成这个任务,就可以创建一个批处

理来完成该工作。

最终用户的事务处理和成批装入处理对大多数数据库来说是很重要的。但是这两种类型的处理若一起使用,数据库系统可能会遇到严重的性能问题,所以,我们应该尽量将这两种类型的处理分开使用。例如,当并发用户的数量很多且活动比较频繁时,就不

应该再对数据库进行大量数据的批量装载,否则,原本很忙的数据库系统就会变得更慢了。大批量数据的装载要在事先计划好,避免将其安排在数据库正常使用的时间。 大批量的数据装载还带来另外一个问题,就是:用户处理过程与批量数据处理过程竞争系统资源时,用户处理过程总是落于下风。当批处理过程锁住某个表后,其它用户将不能够对表进行访问,他们的访问操作将被拒绝,直到批处理过程释放该表。而很多批处理过程的处理时间相对用户可能的等待耐性来说都相当长,所以,批处理过程应该

尽量安排在系统资源较多的时候。

3.删除批量装载中使用的索引

使用索引不是一定就能提高系统性能,相反,在某些情况下使用索引,特别是大量使用索引会降低数据库系统的性能。之前我们就说过,当 SQL 语句需要操作的对象就是整张表的绝大部分或者是所有记录,又或者,表的规模很小时,使用索引就会降低数据库系统的性能。因为在这两种情况下,建立索引,然后每次都参照索引来访问记录反而不如直接访问表中的记录来的快,降低了语句的执行效率。

批量装载会影响表中绝大部分的数据,所以它属于不该使用索引的第一种情况。如 果在进行批量装载数据时使用索引就会大大减慢数据装载的执行速度,因此我们说,要加快批量数据装载的速度,就需要删除原有的索引。但是,为了不影响批量数据装载结

束后的其它将进行的数据库操作,我们还要恢复索引。为此,我们需要按下面的步骤来处理批量数据装载中的索引:

(1) 删除适当的索引;

(2) 执行批量装载数据的任务;

(3) 重建表的索引。

4.动态环境与表和索引的重建

数据库系统的“动态环境”是指一个经常处于变化的大的数据库系统的状态。这里所说的变化是指该数据库经常进行批量数据更新和日常的事务处理。数据库处于动态环境会加重系统的负担。数据库数据经常性的更新操作和大容量的变化会导致系统中出现

大量的碎片。如果不对这些碎片进行控制,就会影响系统的性能。

数据库管理员 DBA 的职能包括控制数据库系统中的表和索引的大小。表和索引的大小对 SQL 语句的性能会产生很大的影响,如果能很好地规划表和索引的大小,就可以在数据库中的数据的不断变化中有效控制碎片的产生。以下是关于调整关系数据库系统的表和索引以进行碎片整理的基本步骤:

(1) 确认已经备份了表和索引;

(2) 删除已备份的表和索引;

(3) 在新分配的系统空间中重新建立表和索引;

(4) 将备份的数据恢复到新建的表和索引中;

(5) 有必要的话,可以对索引进行修改;

(6) 根据需要可以重新授予用户在表上拥有的权限;

(7) 将原始数据和索引完全恢复到新表中后,对新表进行备份,然后才可以删除原

始表。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值