读书人

怎的优化此sql语句

发布时间: 2013-01-19 11:41:36 作者: rapoo

怎样优化此sql语句

select s1,sfzhm ,xm,xb,csrq,''ryzp from page_person where s3=1 and sfzhm in (
select sfzhm from page_czrkgl_jtcy where gridconto in (
select gridconto from page_czrkgl_jtcy where s3=1 and sfzhm='320422196909204606' and hjbh='320400000000'
) and hjbh='320400000000'
)

说明:page_czrkgl_jtcy 表中有405万数据,page_person表中有409万数据,执行起来慢的要死。请问如何优化能快速查出想要得到的结果。
[解决办法]
1.要对sfzhm和hjbh建索引
2.用inner join 取代in ( )操作。
[解决办法]
SELECT  s1 ,
sfzhm ,
xm ,
xb ,
csrq ,
'' ryzp
FROM page_person --409W
WHERE s3 = 1
AND sfzhm IN (/*sfzhm 上建立索引*/
SELECT sfzhm
FROM page_czrkgl_jtcy --405W
WHERE gridconto IN ( SELECT gridconto/*gridconto 上建立索引*/
FROM page_czrkgl_jtcy
WHERE s3 = 1
AND sfzhm = '320422196909204606'
AND hjbh = '320400000000' )
AND hjbh = '320400000000' )

[解决办法]
贴执行计划,看看问题在哪里
[解决办法]

select pp.s1,pp.sfzhm ,pp.xm,xb,pp.csrq,''ryzp
from page_person pp
inner join page_czrkgl_jtcy pc on pp.sfzhm =pc.sfzhm
inner join page_czrkgl_jtcy pj on pc.gridconto=pj.gridconto and pp.s3=pj.s3
on pc.hjbh=pj.hjbh
where pp.s3=1 and pj.sfzhm='320422196909204606' and pc.hjbh='320400000000'


[解决办法]
引用:
引用:
在你的查询界面按ctrl+l,然后把界面下方的图片截图出来我已经取消执行了,5分钟都没查出来,已经没耐心了,下面的是这个:--用户取消了查询。


还是服务器本身的问题,到外网服务器上1秒不到就执行出来了,不知道怎么看的



如果是服务器本身的问题的话,可能是磁盘介质有问题了.

读书人网 >SQL Server

热点推荐