公司材料出库记录表 数量记录大概50多万条记录 经常查询某个器件出库记录 很消耗数据库cpu资源 下面是搜索某个器件sql语句,请大家帮忙看下怎么优化一下
select cl_class,cl_num,cl_ren,cl_date,(select cl_name from clid where cl_class=clchu.cl_class) as cl_name from clchu where (select cl_name from clid where cl_class=clchu.cl_class) like '%搜索的某个器件%'说明下:
cl_class 是材料编号;cl_num 是材料出库数量;cl_ren是材料出库人;cl_date 是材料出库时间;cl_name是材料名称(材料名称是从clid表中获取的); clid 是材料名称编号表里面有 cl_class,cl_name 材料编号对应材料名称; clchu是材料出库表 我从sql跟踪查看器里执行这个sql语名很消耗cpu资源 请大家帮忙看有好的解决办法和优化方案 谢谢大家了
select cl_class,cl_num,cl_ren,cl_date,(select cl_name from clid where cl_class=clchu.cl_class) as cl_name from clchu where (select cl_name from clid where cl_class=clchu.cl_class) like '%搜索的某个器件%'说明下:
cl_class 是材料编号;cl_num 是材料出库数量;cl_ren是材料出库人;cl_date 是材料出库时间;cl_name是材料名称(材料名称是从clid表中获取的); clid 是材料名称编号表里面有 cl_class,cl_name 材料编号对应材料名称; clchu是材料出库表 我从sql跟踪查看器里执行这个sql语名很消耗cpu资源 请大家帮忙看有好的解决办法和优化方案 谢谢大家了
解决方案 »
- 关于js查找上一个兄弟节点的问题?
- 帮小弟看下这段代码:gridview模板列绑定dropdownlist出问题了~~~
- 这个问题解决不了,下面的就做了,在线等
- 求教个简单问题!!!!!!!!
- 用.net2005编辑网页能向Dreamweaver一样好用吗?
- 关于asp.net移动web应用的开发
- ********哪位兄弟做过网上转帐的*********
- 谁有上传的图片自动加上水印的代码.
- 怎样把写如数据库的图片在网页 的任意位置输出
- ★★请问如何改变DataList中TextBox的值
- 【求助】我想让文本框只能输入数字的正则怎么写?我有代码如下:
- GridView如何让两列合并显示(将两列的header和内容分别在同一列中显示)?
把表clid 和表clchu 关联一下 用left join 关联查询
另外最后的匹配条件 '%搜索的某个器件%'最好去掉前面一个“%”(如果不影响结果)
select clid.cl_class,
clid.cl_num,
clid.cl_ren,
clid.cl_date,
clid.cl_name
from clchu,clid
where 1=1
and clid.cl_class=clchu.cl_class
and clid.cl_name like
'%搜索的某个器件%'
select cl_class,cl_num,cl_ren,cl_date,clid.cl_name
from clchu join clid on clid.cl_class=clchu.cl_class
where clid.cl_name like '%搜索的某个器件%'
你的那个子查询居然写了两遍,按SQL的执行顺序来说,也就执行了两遍
大表的关联很耗性能,建议使用临时表,先根据名字查出你要的数据,再关联信息表得到结果~
c.cl_num,
c.cl_ren,
c.cl_date,
cd.cl_name
from clchu c
INNER JOIN clid cd
ON c.cl_calss=cd.cl_class
where cd.cl_name like '%搜索的某个器件%'
select clid.cl_class,
clid.cl_num,
clid.cl_ren,
clid.cl_date,
clid.cl_name
from clchu,clid
where clid.cl_class=clchu.cl_class
and clid.cl_name like
'%搜索的某个器件%'
数据量不大,这样就可以了