本帖最后由 yangbenmu1988 于 2012-11-30 02:15:09 编辑
$sqls="select
oop.id,oop.parent_product_id,oops.one_pro_id,oop.imei,oop.pur_price,oop.sal_price,sum(oops.one_pro_status_code_id) as one_pro_status_code_id,oop.vendor_sal_price,oop.product_id,oc.co_c_name
from
oa_one_pro_status as oops
left outer join
oa_one_pro as oop
on oop.id=oops.one_pro_id
left outer join
oa_company as oc
on oop.co_id=oc.id
where
oops.post_time<$time
group by
oops.one_pro_id order by sum(oops.one_pro_status_code_id)
";
//on oop.id=oops.one_pro_id 这里是一对多
$sql="select
oop.id,ce.cs_name,cp.rule_order
from
oa_one_pro oop
left outer join
cs_pro cp
on oop.product_id = cp.pro_no
left outer join
cs_element ce
on cp.ele_id=ce.cs_id
order by cp.rule_order asc
";
//oop.product_id = cp.pro_no这里也是一对多,在组拼cs_name得到产品名称
//最终通过两个sql里的oop.id相同来合并两个sql里的数据,没写在一起是由于会产生多对多的情况。
//最终要的数据是$sql里的cs_name得到产品名称和$sqls里的所有得到的数据,怎么优化能快些。
另外问问有什么数据库性能测试工具好用,配置简单,不复杂。
------最佳解决方案--------------------------------------------------------
PLSQL里按下F5,看执行计划。通过执行计划可以很方便的看出是否有耗费比较大的全表扫描、建立的索引是否失效、是否有些大数据量的表没有建立相应的索引。通过这些分析可以进一步优化您的SQL。