thomassun 发表于 2004-06-04 09:30

开发优质高效的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進行索引查找了。

thomassun 发表于 2004-06-04 09:41

开发优质高效的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由优化器決定。

noloness 发表于 2012-05-04 16:31

最近用了一种方法让我们程序的运行时间减了一半,没想到居然是楼主提到的其中一种,不得不顶一下。

yulihua49 发表于 2012-06-09 19:38

本帖最后由 yulihua49 于 2012-06-09 19:40 编辑

xxchen 发表于 2004-05-26 16:39 static/image/common/back.gif
开发优质高效的INFORMIX数据库应用程序
    INFORMIX数据库是一被广泛应用的关系型数据库,如何提高其应用 ...
你还没有提到用绑定变量提高性能的问题。
ORACLE非常强调这个,可以减少解析语句的开销,INFORMIX没有这个要求吗?尤其是在OLTP系统。
早年用的INFORMIX,至今对它情有独钟,但很多年来都没有再用了。

qiansi0001 发表于 2012-06-13 13:29

感谢!新手学习!

shenhuawd 发表于 2012-09-10 15:57

學習了謝謝樓主分享!
页: 1 [2]
查看完整版本: 开发优质高效的INFORMIX数据库应用程序(转)