开发优质高效的INFORMIX数据库应用程序(转)
原帖由 "mywg" 发表:(3)、避免采用MATCHES和LIKE通配符匹配查询
通配符匹配查询特别耗费时间。即使在条件字段上建立了索引,在这种情况下也还是采用顺序扫描的方式。
例如语句:SELECT * FROM customer WHERE zipcode MATCHES “524*”
可以考虑将它改为SELECT * FROM customer WHERE ZipCode<=“524999” AND ZipCode >;=“524000”,则在执行查询时就会利用索引来查询,显然会大大提高速度。
顯然這段未經驗證,在我的Informix ONLINE5.1上,优化器就已經可以對matches index key的Where condition 用适當的index進行索引查找了。
开发优质高效的INFORMIX数据库应用程序(转)
原帖由 "xxchen" 发表:(1)、合理使用索引:where子句中变量顺序应与索引字键顺序相同。
如:create index test_idx on test(bdh, rq, xz)
索引字键顺序:首先是保单号bdh,其次是日期rq,最后是险种xz,所以where子句变量顺序应是where bdh<=“P1234”and rq=“06/06/1999”and xz=“DAA”,不应是where xz=“DAA” and rq=“06/06/1999” and bdh <=“P1234”这样的不按索引字键顺序写法。
(2)、将最具有限制性的条件放在前面,大值在前,小值在后。
如:where colA<=10000 AND colA>;=1 效率高
where colA>;=1 AND colA<=10000 效率低
這一段似乎在講优化器的工作机制:D ,事實上以何順序使用INDEX和你下在Where后的條件的先后根本就無關,INDEX PATH由优化器決定。 最近用了一种方法让我们程序的运行时间减了一半,没想到居然是楼主提到的其中一种,不得不顶一下。 本帖最后由 yulihua49 于 2012-06-09 19:40 编辑
xxchen 发表于 2004-05-26 16:39 static/image/common/back.gif
开发优质高效的INFORMIX数据库应用程序
INFORMIX数据库是一被广泛应用的关系型数据库,如何提高其应用 ...
你还没有提到用绑定变量提高性能的问题。
ORACLE非常强调这个,可以减少解析语句的开销,INFORMIX没有这个要求吗?尤其是在OLTP系统。
早年用的INFORMIX,至今对它情有独钟,但很多年来都没有再用了。 感谢!新手学习! 學習了謝謝樓主分享!
页:
1
[2]