Oralce中的成本评估机制解析
2009-05-18 13:15:12 来源:WEB开发网三、通过取样来统计数据。
在统计学中,往往会利用取样来节省统计的时间。这在Oracle数据库中也被得到了充分的应用,毕竟如果要对全部数据进行统计需要耗费比较多的时间。在Oracle数据库中通过检查相关的数据样本并对其取样来收集需要的统计数据。这个样本可能是动态的,也可能是静态的。样本数据与查询在同一个事物处理中发生,可以与并行运行结合使用。因为Oracle数据库中的并行执行体系结构允许任何SQL语句以任何等级的并行度去执行。为了得到具有代表性的样本与比较准确的统计数据,Oracle数据库会根据需要自动去获取相关的样本。但是为了避免一些不良样本对其造成的负面影响,Oracle数据库管理员仍然有不少的工作要做。如在把服务器投入到生产用之前,要对数据库中的数据进行清空作业。把数据库中的数据,包括日志信息等等全部删除。也就是说,在投入运行之前,数据库已经是干净的。在设计过程中因为测试所产生的一切信息都应该删除。
四、选择合适的优化模式。
在数据库初始化的过程中,数据库管理员不仅可以选择合适的成本模式,而且还可以选择合适的优化模式来影响优化程序的选择。在Oracle数据库中,提供了两种不同的优化模式。这两种优化模式分别为返回查询结果前N行时间的最小化与返回全部数据时间的最小化。返回查询结果前N行时间的最小化优化模式是指获得返回结合最先几行的最佳反应时间,这个不仅仅跟数据库有关,而且还跟应用程序的设计有关。返回全部数据时间的最小化的优化模式是指获得最佳的吞吐量。
那么数据库管理员该如何选择这两种优化模式呢?笔者的下面这些建议虽然不能说“放之五湖四海皆准”,但是至少大家可以拿来进行参考。
一是在一些事务性的数据库中,最好采用返回查询结果前N行时间最小化优化模式。因为在事务处理系统中,虽然时间的推移,其数据会越来越多。但是用户平时要用到的数据可能是最新的一些记录,如最近半年或者一年的记录。而不需要全部的记录。为此采用这种优化模式的话,可能会取得比较好的效果。
二是数据库如果用来做决策支持系统或者数据仓库中,则最好采用返回全部数据时间最小化优化模式。因为在这些应用下,用户出于统计或者其他的目的,往往需要用到表中的全部记录。此时在选择优化模式的时候,更应该关注数据库系统的吞吐量。所以在这些应用中,采用返回全部数据时间最小化优化模式比较适合。因为这种优化模式,可以提供最佳的吞吐量,能够满足数据库系统对整表数据统计的需要。
三是需要注意,采用返回查询结果前N行时间最小化优化模式的时候,不仅跟其返回数据的多少有关,而且还跟应用系统的设计与操作系统有关。如同一个数据库系统(含有同样的数据与架构),部署在不同的操作系统上(硬件配置相同)或者不同语言开发的应用系统上,其效果不经相同。为此在采用这种优化模式的时候,往往还需要获得系统工程师的帮助,通过调整系统配置来改善这种优化模式的效果。当数据库管理员苦苦想不出该如何改善数据库性能的时候,这个就非常有用。
更多精彩
赞助商链接