多LeftJoin语句优化 本帖最后由 ChargeForward 于 2011-05-25 00:37:36 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 顶个 睡了 Zzz... 商品表的 pid 建聚集索引. 你能先在主表中where一下再去left join么? 把这 改为 or 试试或存在的那个条件试试where pid in(@pid1,@pid2,@pid3,@pid4...) 先在product中where那16条记录出来,并在pid中建聚集索引,看看性能是不是能好点select * from(select * from product where pid in (@pid1,@pid2,@pid3,@pid4...))a left join table on a.pid = table1.pid..... 这7张表先使用inner join (t1,t2,t3,t4,t5,t6,t7),再右连接 product表试试或者7张表使用inner join (t1,t2,t3,t4,t5,t6,t7)连接成一个子查询,再右连接product表 另外一个想法,将其它7张逻辑上有关联的表的查询与关联先建一个视图,然后将product 与视图关联即可,在视图上也可以建索引,比如视图中的pid 提个思路:根据传入的16个pid,先从Product表中生成记录到临时表,给临时表的pid主键设置聚集索引,其他需要用到的字段分别设置非聚集索引。按你的需求,临时表只有16条记录。然后用这张临时表去和其他7张表left join查询。 也是建议先16条记录到临时表。然后随便怎么join都不会慢 SQL语句查询每5分钟的流量,分多分少请热心朋友帮个忙 急!急!急!sql 安装问题 sql语句,如何一行转多行 关于数据仓库和关系型数据库的问题,请大家赐教 【求助】更新完SQL2005SP3后IIS出现问题 面试常问的SQL题目,请各抒己见 sql2005正则表达式建立索引查询仍然很慢 又是SQL配置的问题??真烦!!望各位大力兄帮帮小弟!! Sql Server70的数据库恢复 如何通过SQL语句修改系统时间(SQL server) 这个存储过程怎么就错了 关于sql server存储过程的奇怪返回值@@error 问题
where pid in(@pid1,@pid2,@pid3,@pid4...)
看看性能是不是能好点
select * from
(select * from product where pid in (@pid1,@pid2,@pid3,@pid4...))
a left join table on a.pid = table1.pid.....
或者7张表使用inner join (t1,t2,t3,t4,t5,t6,t7)连接成一个子查询,再右连接product表
将其它7张逻辑上有关联的表的查询与关联先建一个视图,
然后将product 与视图关联即可,
在视图上也可以建索引,比如视图中的pid
根据传入的16个pid,先从Product表中生成记录到临时表,给临时表的pid主键设置聚集索引,其他需要用到的字段分别设置非聚集索引。按你的需求,临时表只有16条记录。
然后用这张临时表去和其他7张表left join查询。