统计信息中保存有列选择度、数据量等大量信息,因此基于规则的优化器可以更灵活地创建执行计划。extent是由相关联的数据块构成的逻辑单位。否则,会因表的random access造成表扫描的平均成本增高。排序操作成本并非用于访问对象数据的成本,而是用于排序已提取数据的成本。若使用以特定列为标准排序的索引提取数据时,可以减少额外的排序操作成本。要了解SQL语句实际应访问的对象范围程度才能计算实际成本,这是非常重要的概念。......
2023-11-01
基于规则是指根据条件语句的syntax预先确定条件范围(selectivity)并以此为基础制定执行计划。以下为RBO预先对性能定义规则的项目。由于条件是号码越小性能越好,会赋予高优先顺位。
1) RBO的 RULE
(1) ROWID的单个行访问。
(2) CLUSTER JOIN的单个行访问。
(3)使用 unique-key、primary-key的HASH cluster key的单个行访问。
(4)由unique-key、primary-key创建的unique INDEX的单个行访问。
(5) CLUSTER连接 。
(6) non unique HASH cluster key。
(7) non unique cluster key(索引化的Cluster-Key)。
(8) NON UNIQUE 组合索引。(www.chuimin.cn)
(9)单一列索引的等效搜索。
(10)在有限范围内搜索已构建索引的列(BETWEEN、LIKE、<、AND、> 、= 表达式)。
(11)无限制搜索已构建索引的列(≥ 、≤表达式)。
(12)排序—合并连接。
(13)已构建索引的列的MAX、MIN。
(14)已构建索引的列的 ORDER BY。
(15)全表扫描。
2) RBO中的 SQL调优
创建连接语句的执行计划时,RBO对所有可能的连接顺序以指定的access path优先顺序为标准,尽量少执行FULL-TABLE SCAN,同样尽量少执行SORT-MERGE操作。反之,优先查找返还单个行条件较多的连接顺序。条件相同时,将从FROM子句的右侧表向左选择 driving(外部)表。WHERE子句按从下往上的顺序处理,事实上只在 ANDEQUAL处理五个以上的索引时才使用该规则。此时,从底部选择用于五个条件子句的索引作为AND-EQUAL处理对象。若两个执行计划的优先顺序完全相同,RBO只能选择在行缓存内先发现的执行计划。即意味着用于查询的执行计划可能会受到索引或其他对象创建顺序的影响(选择最近创建的索引)。所以在RBO下调优SQL的方式主要有变更SQL语句的方式和调整索引构成的方式。
有关数据库性能管理与调优的文章
统计信息中保存有列选择度、数据量等大量信息,因此基于规则的优化器可以更灵活地创建执行计划。extent是由相关联的数据块构成的逻辑单位。否则,会因表的random access造成表扫描的平均成本增高。排序操作成本并非用于访问对象数据的成本,而是用于排序已提取数据的成本。若使用以特定列为标准排序的索引提取数据时,可以减少额外的排序操作成本。要了解SQL语句实际应访问的对象范围程度才能计算实际成本,这是非常重要的概念。......
2023-11-01
在制定由优化器执行的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语句,其质量和完成度对整个系统的性能具有极大的影响。应在分析执行计划后选择性地使用HINT,最好不超过全部SQL语句的20%。因为如果过多地使用HINT,发生索引重置等变更事项时会加重应用程序的修改负担。如果未生成适当的索引用于优化器制定最佳执行计划,那么无论怎样调优应用程序的逻辑也无法达到满意的性能。......
2023-11-01
通过持续的调优工作和监测可以找到运行中应用程序的最佳值。此时,UNIX内核的内存不易减少,需要有效地调优数据库内存区域,使用更少内存发挥相同水平的性能。如果内核内存使用约100 MB,并发用户为30名,每个Oracle进程的内存为 10 MB,假定 sort_area_size为 1MB,按以下公式计算出430 MB。100 MB+30×=430 MB因此,物理内存为1 GB的系统,可分配大约600 MB的SGA使用。......
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
系统调优大致分为硬件系统结构和 O/S、DBMS、应用程序等三个层次,各层次之间具有密切的关联性。以下原则性的DBMS性能调优步骤可以达到最佳效果。虽然该内容基于若干Oracle DBMS,但其实并不需要考虑具体的DBMS制造商。DBMS的内存分配量要在不引起分页和交换的范围内调整。在 DBMS性能调优的具体对象中,instance、storage management、数据 I/O、SQL access等是最重要的部分。对于Oracle DBMS,可通过v $sysstat、v $sqlarea等性能视图,收集用于性能评价的DB分析信息。......
2023-11-01
实例已启动意味着数据库系统运行所需的后台进程已启动,并且处于“确保内存可用于数据处理”的状态,这种实例的调优将成为DBMS性能调优的重要基础。1) DBMS 内存 区域——SGASGA 是作为实例启动时确保控制器信息保存和数据处理空间的内存区域,存在于实例访问的所有进程共享的内存区域中。SGA相关调优的基准基本以命中率评价为主,通过适当地调整相关参数,将实际运行反映到评价结果中。......
2023-11-01
为根据不同情况使用适当的索引,要学习各种类型的索引。因为只有明确了解表和索引的概念才能轻松解决复杂的内容。创建索引抽屉时,应考虑偶有发生的损益分歧点,考虑是否创建。总体来说,索引是用户使用SQL语句查找时为提高查找速度而创建的对象。但若创建太多索引,购买新书或废弃时,会产生额外的维护费用。这是由于添加或删除书籍时应更新现有的索引抽屉。......
2023-11-01
相关推荐