WEB开发网
开发学院数据库DB2 最快的 Informix DBA:他们是如何做到的? 阅读

最快的 Informix DBA:他们是如何做到的?

 2009-11-14 00:00:00 来源:WEB开发网   
核心提示: 一些最快的竞赛者还修改了其他 ONCONFIG 参数,包括 PHYSBUFF、LOGBUFF、DIRECT_IO、VP_MEMORY_CACHE_KB 和 CLEANERS,最快的 Informix DBA:他们是如何做到的?(3),很难确定它们的作用有多大,但最快的 DBA 发现其中一些参数能

一些最快的竞赛者还修改了其他 ONCONFIG 参数,包括 PHYSBUFF、LOGBUFF、DIRECT_IO、VP_MEMORY_CACHE_KB 和 CLEANERS。很难确定它们的作用有多大,但最快的 DBA 发现其中一些参数能极大提高速度。我还比较关注哪些参数未被更改。可能是时间不够,但没有人修改过 read-ahead 参数 RA_PAGES 和 RA_THRESHOLD,也没有人修改过 index-cleaning 参数和 BTSCANNER。

Informix 模式更改

我故意在数据库的两个表中使用了非常大的列:客户表中的 CHAR(2000) 列和账单表中的 CHAR(1000) 列。但是,这些空间通常都被浪费了。在客户表中,大约只使用了 100 个字符,而账单表中的字符都没有使用过。这不仅浪费空间,还造成表溢出了 2 KB 分页,从而导致大多数缓冲 Thrashing 非常高的缓冲流通率。有许多解决方案可解决此问题,其中之一是修改表并将这些列转换为 LVARCHAR 列。此更改减少了在基准测试期间读取和写入的缓冲数量,并且可能对总体性能造成了最大的影响。

一些 DBA 还对模式进行了另一项修改,即将账单表的索引创建工作移动到插入了所有数据之后进行,而不是在插入数据之前。这样可以更快地载入没有索引的表,并且创建的索引会更加紧凑和优化。此外,在 IDS 11.50 中,建立索引会对表自动执行 UPDATE STATISTICS HIGH,这将为 Informix 查询优化器提供关于表的更好的信息。一些 DBA 在客户表上添加了额外的索引,这有助于基准测试中的最后一项查询操作。

SQL 优化

基准测试包括两条针对账单的 INSERT 语句和三条 UPDATE 语句。UPDATE 语句还包含一些子查询。在基准测试流程结束时,它执行了两条带 Group By 从句的 SELECT 语句,用于检查数值。最后两条语句生成的数值需要与预期结果相吻合;这正是我们验证基准测试是否成功完成的方式。为增加难度,我还在 SQL 中添加了一些多余的、不必要的代码。

经过精心规划,我认为认为整个流程可以使用一条 INSERT 语句再加上一到两条 UPDATE 语句便可完成,但没人注意到这一点。但是,一些较快的 DBA 确实发现了 SQL 语句中存在一些没有用的代码,并从基准测试流程中删除了这些代码。

敬请期待 IOD 2009

开展这次竞赛是非常有趣的,所有 Informix DBA 参与者都发挥了自己的智慧和创造力。我们在此恭喜获胜者!上一期文章中(ibm.com/developerworks/data/dmmag /archive.html)已经宣布了他们的获奖。详细名单请访问我们的网站:www.advancedatatools.com/Informix /index.html。

我们在 2009 年 7 月 18 日至 9 月 30 日举办另一项竞赛,即 Fastest Informix DBA Contest II。在 10 月份的 IBM Information On Demand 2009 global Conference 上,我们将为竞赛者举行一次网络讨论会和 Birds of a Feather 会议 —— 请访问 Advanced Data Tools 网站(如上)了解更多信息。希望能见到您。

上一页  1 2 3 

Tags:最快 Informix DBA

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接