精品推荐
通过分析SQL语句的执行计划优化SQL(一)
日期:2008年5月18日 作者: 查看:[大字体
中字体 小字体 ]
应用设计人员需要在设计阶段设置应用的性能期望值。然后在设计和开发期间,应用设计人员应考虑哪些Oracle 特性可以对系统有好处,并使用这些特性。 通过良好的系统设计,你就可以在应用的生命周期中消除性能调整的代价和挫折。图1-1图1-2说明在应用的生命周期中调整的相对代价和收益,正如你见到的,最有效的调整时间是在设计阶段。在设计期间的调整能以最低的代价给你最大的收益。 图1-1 在应用生命周期中调整的代价 图1-2 在应用生命周期中调整的收益 当然,即使在设计很好的系统中,也可能有性能降低。但这些性能降低应该是可控的和可以预见的。 调整目标 不管你正在设计或维护系统,你应该建立专门的性能目标,它使你知道何时要作调整。如果你试图胡乱地改动初始化参数或SQl 语句,你可能会浪费调整系统的时间,而且无什么大的收益。调整你的系统的最有效方法如下: l 当设计系统时考虑性能 l 调整操作系统的硬件和软件 l 识别性能瓶颈 l 确定问题的原因 l 采取纠正的动作 当你设计系统时,制定专门的目标;例如,响应时间小于3秒。当应用不能满足此目标时,识别造成变慢的瓶颈(例如,I/O竞争),确定原因,采取纠正动作。在开发期间,你应测试应用研究,确定在采取应用之前是否满足设计的性能目标。 当你正在维护生产库系统时,有多种快速有效的方法来识别性能瓶颈。不管怎样,调整通常是一系列开销。一旦你已确定了瓶颈,你可能要牺牲一些其它方面的指标来达到所要的结果。例如,如果I/O有问题,你可能需要更多内存或磁盘。如果不可能买,你可能要限制系统的并发性,来获取所需的性能。然而,如果你已经明确地定义了性能的目标,那用什么来交换高性能的决策就变的很容易的,因为你已经确定了哪些方面是最重要的,如过我的目标为高性能,可能牺牲一些空间资源。 随着应用的越来越庞大,硬件性能的提高,全面的调整应用逐渐变成代价高昂的行为,在这样情况下,要取得最大的投入/效率之比,较好的办法是调整应用的关键部分,使其达到比较高的性能,这样从总体上来说,整个系统的性能也是比较高的。这也就是有名的20/80原则,调整应用的20%(关键部分),能解决80%的问题。 在设计和开发系统时作调整 良好设计的系统可以防止在应用生命周期中产生性能问题。系统设计人员和应用开发人员必须了解Oracle的查询处理机制以便写出高效的SQL语句。“第2章 有效的应用设计”讨论了你的系统中各种可用的配置,以及每种配置更适合哪种类型的应用。“第5章 优化器”讨论了Oracle的查询优化器,以及如何写语句以获取最快的结果。 当设计你的系统时,使用下列优化性能的准则: l 消除客户机/服务器应用中不必要的网络传输。-- 使用存储过程。 l 使用适合你系统的相应Oracle服务器选件(例如,并行查询或分布式数据库)。 l 除非你的应用有特殊的需要,否则使用缺省的Oracle锁。 l 利用数据库记住应用模块,以便你能以每个模块为基础来追踪性能。 l 选择你的数据块的最佳大小。 -- 原则上来说大一些的性能较好。 l 分布你的数据,使得一个节点使用的数据本地存贮在该节点中。 调整产品系统 本节描述对应用系统快速、容易地找出性能瓶颈,并决定纠正动作的方法。这种方法依赖于对Oracle服务器体系结构和特性的了解程度。在试图调整你的系统前,你应熟悉Oracle调整的内容。
复制本页网址和标题,发送给你QQ/Msn的好友一起分享
上一篇:mysql 4.1采用了新验证方法后的认证问题
下一篇:通过分析SQL语句的执行计划优化SQL(二)
相关文章:
相关软件: