B*树状索引具有树形结构。图3-1B*树原理下面介绍如何使用B*树索引搜索数据。B*树的特征如下:最常用作 Oracle的默认索引。为更好地调优,应充分了解B*树索引的缺点。以下为B*树索引的缺点:在B*树索引中,实际列值也应保存在索引中,因此管理大容量数据时可能会成为负担。 B*树索引的列值选择度良好才能保证性能良好。在B*树Index中,访问相同的表时将并行使用两个以上的索引,因此有许多限制。......
2023-11-01
并不只在运行和使用系统时才需要性能管理。任何系统的分析、设计、开发、测试、操作阶段都需要进行性能管理。此外,以Oracle数据库为基础构建的系统,所有阶段均需要参考数据库相关的内容进行操作。
1)分析阶段
在分析阶段进行分析时需考虑整体性能和稳定性,此时业务流程优化、系统结构(technical architecture)设置、容量计算(capacity)非常重要。在业务流程优化期间,系统进行电算化的同时改善低效率流程,以提高整体性能。系统结构要先考虑事务处理量、稳定性、维护等再确定结构,容量计算要先通过应用分析出待构建业务的事务、并发用户数、数据的增加值等的预期值再进行计算。需要了解的是,并不需要准确地计算出容量,只需使用大致的经验值进行计算即可。开发与过去BMT(Bench Mark Testing)结果类似的系统时,大致的经验可以成为测试资料等宝贵的参考资料。此外,计算容量时最好留出多余的空间。将来开放系统后,相对于空间不足,有多余的空间将更有利于计算出更准确的容量。
2)设计阶段
相比逻辑性设计,在进行数据物理设计时需要考虑与性能相关的操作。以逻辑性设计时导出的ERD(entity relationship diagram)为基础,构建系统结构和性能,并进行物理设计。此时须考虑请求响应时间、分布式数据库环境、并发用户数、数据大小、批量处理等。当然,应用程序设计同样与数据库息息相关,因此设计应用程序时要使其发挥最佳性能。
3)开发阶段
在开发阶段,为有效构思SQL、PL/SQL等,需要提高开发者的能力。此外,开发者对数据库优化的理解并非仅仅是通过SQL得出结果,而是构思可最小化内部处理量的SQL,以便对整个系统的性能产生良好影响。(www.chuimin.cn)
4)测试和运行阶段
最后的测试和运行阶段可执行的操作包括应用程序调优、数据库调优、OS调优等。开发和测试阶段的调优非常重要,足以决定系统开放的成败。开放之前调优得越多,开放后就越稳定。开放系统时,很多客户时常因应用程序完成度、结构上的问题、性能问题等原因而推迟开放系统,这是由于分析和设计阶段未能完美执行。以上介绍了各个阶段需要考虑的调优重点。现在开始介绍开发、测试、运行阶段要考虑的与数据库联动的OS和网络调优。
按项目阶段进行数据库性能管理如图1-1所示。
图1-1 按项目阶段进行数据库性能管理
有关数据库性能管理与调优的文章
B*树状索引具有树形结构。图3-1B*树原理下面介绍如何使用B*树索引搜索数据。B*树的特征如下:最常用作 Oracle的默认索引。为更好地调优,应充分了解B*树索引的缺点。以下为B*树索引的缺点:在B*树索引中,实际列值也应保存在索引中,因此管理大容量数据时可能会成为负担。 B*树索引的列值选择度良好才能保证性能良好。在B*树Index中,访问相同的表时将并行使用两个以上的索引,因此有许多限制。......
2023-11-01
实例已启动意味着数据库系统运行所需的后台进程已启动,并且处于“确保内存可用于数据处理”的状态,这种实例的调优将成为DBMS性能调优的重要基础。1) DBMS 内存 区域——SGASGA 是作为实例启动时确保控制器信息保存和数据处理空间的内存区域,存在于实例访问的所有进程共享的内存区域中。SGA相关调优的基准基本以命中率评价为主,通过适当地调整相关参数,将实际运行反映到评价结果中。......
2023-11-01
对系统的优化是一项重要的工作,同时也是一个复杂的任务。本节将介绍两种性能优化的方式,优化SQL查询和优化数据库服务器。给employee表增加索引后,索引会按编号对行进行排序,当查找记录时,MySQL会先查找索引以找到匹配的记录,找到后程序结束执行。......
2023-10-29
在制定由优化器执行的SQL语句的执行计划过程中,提示为用户提供了可直接进行介入的方法。提示是用户对优化器下达的指示,但优化器可能会忽略不合理的提示。意味着除了RULE和DRIVING_SITE外的所有提示将选择CBO用作优化器。使用Orange Template Browser查看优化器提示如图2-8所示。图2-8Orange Template Browser查看优化器提示单击方框部分图标()、单击最顶端菜单的[View]—[Template Browser]或按快捷键 Alt+F2则会运行[Template Browser]。......
2023-11-01
而重中之重仍然是调优访问数据库SQL语句的方法,因为很少能像SQL调优这样可以在短时间内以低成本得到效果。因此,为了性能考虑,开发者应不遗余力地投入时间和精力进行SQL调优。如果对未优化的SQL进行调优,则计划增设容量的许多企业都无须执行容量增设。大量数据排序的SQL或者大量访问数据块的未优化的SQL,可能会过量地使用内存。就因为这种现象,才会因未优化的SQL而出现磁盘I/O增加的情况。SQL的优化过程必然也涉及索引的优化。......
2023-11-01
统计信息中保存有列选择度、数据量等大量信息,因此基于规则的优化器可以更灵活地创建执行计划。extent是由相关联的数据块构成的逻辑单位。否则,会因表的random access造成表扫描的平均成本增高。排序操作成本并非用于访问对象数据的成本,而是用于排序已提取数据的成本。若使用以特定列为标准排序的索引提取数据时,可以减少额外的排序操作成本。要了解SQL语句实际应访问的对象范围程度才能计算实际成本,这是非常重要的概念。......
2023-11-01
图1-7磁盘I/O瓶颈现象调查最理想的I/O应用就是所有控制器相应的设备都得以均衡使用。图1-10所示为调查Oracle数据库内文件的I/O的SQL。图1-10调查Oracle数据库内文件通过上述分析结果,可采取的措施包括:将 /oracle上数据文件的一部分移至有其他控制器的挂载点,通过移动 RBS、TEMP、USERS中一两个数据文件使 I/O平衡并分散。该操作非一次性操作,分配一次后要重新进行监测,确定 I/O是否分散均衡。......
2023-11-01
基于规则是指根据条件语句的syntax预先确定条件范围并以此为基础制定执行计划。以下为RBO预先对性能定义规则的项目。使用 unique-key、primary-key的HASH cluster key的单个行访问。2) RBO中的 SQL调优创建连接语句的执行计划时,RBO对所有可能的连接顺序以指定的access path优先顺序为标准,尽量少执行FULL-TABLE SCAN,同样尽量少执行SORT-MERGE操作。此时,从底部选择用于五个条件子句的索引作为AND-EQUAL处理对象。若两个执行计划的优先顺序完全相同,RBO只能选择在行缓存内先发现的执行计划。......
2023-11-01
相关推荐