参考 http://www.wangchao.net.cn/bbsdetail_1777115.html
2.select sfe01 from sfe_file,sfp_file where sfe02=sfp01 and sfp04 ='Y' 这里执行超慢
and sfe01 ='WO5-970060'
这末严格的sql,还慢,可以肯定的是系统在遍历整个表,为什么会发生呢,
第一,索引没建好,或没建,象上面的,sfe_file,sfp_file ,sfe02,sfp01必须有索引.
第二.Update Statistics执行有问题,或没执行.
第三.你的大表,数据存储位置有没问题.
注:如果发生遍历整个表的状况,要小心,对数据库是负载很大的.
测试:你提出的三个sql在我的Tiptop 5.0 Infomrix 11.5 Redhat 5.3 测试都没问题,结果立显,
给你我这边的索引建立情况!
索引名称 拥有者 型态 群集索引 列名称
sfe_01 tiptop 重复 否 sfe01
sfe_02 tiptop 重复 否 sfe02
sfe_03 tiptop 重复 否 sfe04
sfe_04 tiptop 重复 否 sfe07
索引名称 拥有者 型态 群集索引 列名称
sfp_01 tiptop 唯一 否 sfp01 set explain on avoid_execute; -- 不用执行sql 只看sql计划
sql statement;
从sql计划中应该能看出来慢的sql没有走索引方式检索
贴出sql计划来看看吧
回复 #1 liuwalker 的帖子
sfe02=sfp01 是两张表一一对应的吗?可以试试,先把其他查询条件放前面。
页:
1
[2]