WITHtAS(SELECT*,ROW_NUMBER()over(orderbyCommentDateDesc)ASssfrom(SELECTid,userid,date,CommentDate,mediaurl,mediatype,content,locationdec,contenttype,messagetype,location.Latlatitude,location.LonglongitudeFROMMessageWHERElocation.STIntersects(geography::STPointFromText('POINT('+@P1+''+@P2+')',4326).STBuffer(@P3))=1And(contenttypein(1,2,8,9,7,6))UNIONALLSELECTid,userid,date,CommentDate,mediaurl,mediatype,content,locationdec,contenttype,messagetype,location.Latlatitude,location.LonglongitudeFROMMessageWHEREContenttype=4)A)SELECT*FROMtWHEREssBETWEEN21AND40当记录大于70万条之后很慢,其中Contenttype=4和geography查询是必须,contenttype1,2,8,9,7,6是不确定的查询参数。
2 回答
眼眸繁星
TA贡献1873条经验 获得超9个赞
题主太放任SQL接管一切了。这么写好了完全甩手交给SQL服务器去做,程序对查询的中间过程就失去了很多介入和控制的机会,恐怕不是好事。(看着就头痛……排了下版,估计会有错误请轻拍)
添加回答
举报
0/150
提交
取消