解决oracle sql语句性能问题——收集和维护统计数据-爱代码爱编程
所谓统计数据,前述文中也提到过,它们是数据库优化器赖以产生SQL语句最优执行计划的依据。以这些统计数据为基础,优化器通过内置的模型、算法等,计算出全部或候选执行计划的成本(Cost),通过比较每个执行计划的成本,选出成本最低的执行计划,也就得到了SQL语句打算采用的执行计划,最终为节省系统资源消耗奠定了稳定、可靠的基础,优化器是数据库系统中最重要、最核心的
代码编织梦想
所谓统计数据,前述文中也提到过,它们是数据库优化器赖以产生SQL语句最优执行计划的依据。以这些统计数据为基础,优化器通过内置的模型、算法等,计算出全部或候选执行计划的成本(Cost),通过比较每个执行计划的成本,选出成本最低的执行计划,也就得到了SQL语句打算采用的执行计划,最终为节省系统资源消耗奠定了稳定、可靠的基础,优化器是数据库系统中最重要、最核心的
关于表分区的概念和机制等基础理论,读者可参照前文中相关内容。值得强调的是,表分区技术绝对是海量数据环境解决问题的一件利器,通过合理的应用表分区技术,不但可以极大的提升SQL语句的性能,同时,还可以很大程度上方便数据的管理和维护。目前,各关系库较高版本均支持这一功能,并随着版本的升级不断得以增强和完善。其中,几款商用库表分区技术最为成熟,应用起来也更加强大和
1. 合理使用索引 索引对关系库SQL调优来说,其重要性怎么强调也不会过分。为何这么说呢?因为对SQL调优来讲,最终目的就是通过减少SQL语句对系统资源的消耗来达到优化的目的,而索引又是缩减SQL语句资源消耗的最主要手段。当然,你也可以说,还可以通过为SQL语句分配更多资源来达到优化的目的,但这不是SQL调优手段的主流,拼资源也更不是传统关系
9.1. 分析Cost方法 9.1.1. 方法说明 SQL调优(SQL TUNING),就是在SQL语句执行计划中,发现浪费大量系统资源的节点,然后,想办法降低该节点对系统资源的消耗,以使其不再浪费系统资源。那么,SQL语句执行计划中,衡量系统资源的标准是什么呢?Oracle优化器结合各种统计数据等信息,通过CBO内部算法,计算所有或部分候选执行计划的
要掌握SQL调优技术,就需要能读懂SQL语句的执行计划,要想读懂SQL语句的执行计划,不仅需要准确理解SQL语句执行计划中各操作及其含义,还需要准确理解SQL语句执行计划中各数据项的含义。本书第7章中,已经对SQL语句执行计划中各个操作的含义做了详尽的阐述,本章中,我们将对SQL语句执行计划中各常见数据项进行详尽说明和解释。 8.1. 执行计划数据项
7. 排序相关操作 该类操作和SQL语句执行计划中的排序操作相关。根据不同的具体SQL语句及其他相关因素,如下各操作可能会出现于相关SQL语句的执行计划。 1)BUFFER SORT 在会话服务进程内存中对某个行源数据进行排序或其他相关操作,该操作最早出现于Oracle 9.0.1版本。该操作具体如图7-1中节点3所示。 图7-1 排序相关操
5. 分区相关操作 该类操作与SQL语句执行计划中分区表操作相关。根据不同的具体SQL语句及其他相关因素,如下各操作可能会出现于相关SQL语句的执行计划。 1)PARTITION RANGE ALL 对范围分区(RANGE PARTITION)表的所有分区进行子操作。该操作具体如图5-1中节点1所示。 图5-1 分区相关操作PARTITIO
一条SQL语句的执行计划,可能会包括多个步骤,为了方便分析和讲解执行计划,我们将这些步骤称为执行计划的节点(Node)。每个节点又包含诸多信息,其中,最核心的信息莫过于节点中的操作(Operation),例如:TABLE ACCESS FULL,HASH JOIN等,节点中其他信息也都是围绕其中的操作。本书通篇统一上述命名方法,不再解释和赘述。我们进行S
所谓存储架构,这里是指Oracle数据库磁盘空间组织、管理和使用相关的逻辑设计及实现等方面内容。更具体一点,就是讲Oracle数据库是如何组织、分配、管理和使用磁盘文件内的存储空间的。Oracle数据库包括各种文件,而这些文件的设计和实现肯定各不相同,这里我们主要讲解数据文件相关的设计和实现等内容,这也是Oracle存储层面的核心原理和机制。 1. 块