欢迎来到天天文库
浏览记录
ID:9416944
大小:55.50 KB
页数:4页
时间:2018-04-30
《sqlserver查询效率优化》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、SQLServer查询效率优化>>教育资源库 查询效率分析: 子查询为确保消除重复值,必须为外部查询的每个结果都处理嵌套查询。在这种情况下可以考虑用联接查询来取代。 如果要用子查询,那就用EXISTS替代IN、用NOTEXISTS替代NOTIN。因为EXISTS引入的子查询只是测试是否存在符合子查询中指定条件的行,效率较高。无论在哪种情况下,NOTIN都是最低效的。因为它对子查询中的表执行了一个全表遍历。 建立合理的索引,避免扫描多余数据,避免表扫描! 几百万条数据,照样几十毫秒完成查询. 机器情况 p4
2、:2.4 内存:1G os:ssqlserver2000 目的:查询性能测试,比较两种查询的性能 SQL查询效率stepbystep --setp1. --建表createtablet_userinfo(useridintidentity(1,1)primarykeynonclustered,nickvarchar(50)notnulldefault'',classidintnotnulldefault0,edatetimenotnulldefaultgetdate()) go --建索
3、引createclusteredindexix_userinfo_classidont_userinfo(classid)go --step2.declareiintdeclarekintdeclarenickvarchar(10)seti=1e)values(nick,k,getdate())seti=i+1end --耗时08:27,需要耐心等待 --step3.selecttop20userid,nick,classid,efromt_userinfot_userinfoorderbyuseridasc)
4、 --耗时8秒,够长的 --step4.selecta.userid,b.nick,b.classid,b.efrom(selecttop20a.useridfrom(selecttop900020useridfromt_userinfoorderbyuseridasc)aorderbya.useriddesc)ainnerjoint_userinfobona.userid=b.useridorderbya.useridasc --耗时1秒,太快了吧,不可以思议 --step5efromt_userinfot_u
5、serinfoefrom(selecttop20a.useridfrom(selecttop90000useridfromt_userinfowhereclassid=1orderbyuseridasc)aorderbya.useriddesc)ainnerjoint_userinfobona.userid=b.useridorderbya.useridasc --查询分析器显示不到1秒.>>>>这篇文章来自..,。
此文档下载收益归作者所有