通过持续的调优工作和监测可以找到运行中应用程序的最佳值。此时,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
学习数据库调优时若忽略索引(index),本书内容的一半就已足够。索引是 SQL调优中必需的重要存在。而且如果不正确地使用索引,可能会对性能、资源等许多部分产生不良影响。因此准确地理解和正确地使用索引这把双刃剑,才能获得优秀的性能。为此,请仔细阅读以下事项:
(1)了解索引和表的数据结构和访问形式。
(2)了解B*树索引结构和数据生成、访问时I/O的发生形式。
(3)为根据不同情况使用适当的索引,要学习各种类型的索引。
因为只有明确了解表和索引的概念才能轻松解决复杂的内容。关系型数据库的表和索引与实际生活中发生的数据管理方法非常相似例如图书馆管理图书。(www.chuimin.cn)
(1)表:看作是图书馆的书柜。书籍不会按任何顺序保管,而是按请求符号整理(实际上图书馆资料的请求符号管理方法是先分成大类,再在下面分成小类,以此对资料进行保管)。也可考虑按类别保存表,但要预先计算各类别所需书柜的数量,因此很不方便。
(2)索引:可以视作为了告知在图书馆查找书籍的人书籍位置的独立索引抽屉。按作者名查找书籍的情况较多时,以作者名顺序创建索引抽屉;按书籍名称查找书籍的情况较多时,按书籍名称顺序创建索引抽屉;按书籍类别查找书籍的情况较多时,则按书籍类别顺序创建抽屉。创建索引抽屉时,应考虑偶有发生的损益分歧点,考虑是否创建。
总体来说,索引是用户使用SQL语句查找时为提高查找速度而创建的对象。与在图书馆的众多书籍中快速方便地查找想要阅读的书籍相同。但若创建太多索引,购买新书或废弃时,会产生额外的维护费用。这是由于添加或删除书籍时应更新现有的索引抽屉。因此,应考虑访问表的各种类型和频繁程度,制定适当的索引策略是优化整个应用程序速度的重要因素。
有关数据库性能管理与调优的文章
通过持续的调优工作和监测可以找到运行中应用程序的最佳值。此时,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
为解决此问题设计了IOT索引。IOT因为已在索引中添加了表结构,读取索引便能完成所有操作。IOT表面上来看是表,实际上是以主关键字为根据的索引,需要将主关键字作为前提条件使用。 IOT的索引行包含索引关键字值和non-key值。 IOT的索引中没有ROWID信息。普通表和IOT表的差别主要有以下几点:普通表以ROWID区分行,IOT以PK区分行。 IOT无法设置unique限制条件。 IOT比普通表节省存储空间。 IOT必须生成 primary key。......
2023-11-01
1)例子(一)正确使用SQL的例子(一)如图5-12所示。因此B.ORDD = : TrDay或B.ORDD = : WorkDay的扫描范围较窄,使用索引时响应速度非常快。在这种情况下,优化器使用OR从内部分为两个SQL语句并各自使用索引,再将执行结果合并为一个结果。图5-13正确使用SQL的例子(二)问题:连接的两个表的条件中决定扫描范围的条件是"AND SUBSTR LIKE : IN_org_cd AND SUBSTR < 600000"。因此可按以下方法变更条件公式并使用相应索引。......
2023-11-01
图5-14考虑索引生成标准从根本上来说创建索引是为了加快查找速度。但如果创建特定索引,反而会对整体执行性能造成不良影响。因此为确定特定表的索引构成,需要调查访问表的SQL的访问模式,并基于调查结果做出综合性的判断。此外,添加索引时最好计算查找负载量减少和DML负载量增加造成的大致损益。因此生成两个索引对整个系统较为有效。......
2023-11-01
图5-5部分范围处理使用例子(二)以下是从两个表中分别提取生日和工资的SQL语句。为删除重复数据使用了UNION,因此无法执行部分范围处理。图5-6部分范围处理使用例子(三)按特定表的列顺序排序并显示多个表的连接结果时,如果要使用部分范围处理,可从以下两个方法中选择一个使用:在In-line view中对要排序的表进行 ORDER BY并用作 driving table以执行NESTED LOOP JOIN。......
2023-11-01
HASH JOIN是突出SORT MERGE JOIN优点并弥补其缺点的连接方法。该连接是对连接的对象表应用 HASH函数进行合并的方法。其特征是不仅只使用 HASH JOIN,而且提供通过并行处理大容量数据的最佳解决方案。但不建议在OLTP等状况下使用,因为HASH JOIN已为大容量处理进行优化,会占用大量系统资源。不会受JOIN条件(链路)索引有无的影响。2)使用标准由于链路使用HASH Key,因此仅用于EQUI-JOIN。在执行计划中成为HASHING对象的表始终在最前面,但如果是OUTER JOIN则完全相反。......
2023-11-01
SORT MERGE JOIN指各自访问两侧表的处理范围后逐一扫描排序结果,同时使用连接条件进行合并的方式。通过SORT MERGE JOIN引导调优的情况几乎不存在,但可能对减少RANDOM ACCESS、大容量处理对象集有效。以下将介绍SORT MERGE JOIN的其他特征以及能保证良好性能的情形。通常NESTED LOOP JOIN对待处理数据量较少的在线应用程序更为有效,因此请勿随意使用SORT MERGE JOIN。......
2023-11-01
实例已启动意味着数据库系统运行所需的后台进程已启动,并且处于“确保内存可用于数据处理”的状态,这种实例的调优将成为DBMS性能调优的重要基础。1) DBMS 内存 区域——SGASGA 是作为实例启动时确保控制器信息保存和数据处理空间的内存区域,存在于实例访问的所有进程共享的内存区域中。SGA相关调优的基准基本以命中率评价为主,通过适当地调整相关参数,将实际运行反映到评价结果中。......
2023-11-01
相关推荐