sql server下的sql查询性能优化,有经验的进

ijwsoft 2011-12-28 09:30:53
小弟前几周在维护老项目时碰到百万级数据,有些sql响应较慢,后来解决了!

打算过几天在月会上给同事们分享一下,我怕自己提出的解决方案太片面,所以集思广益一次,谢谢大家!
...全文
108 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
raymonshi 2011-12-28
  • 打赏
  • 举报
回复
使用 hint
evan2005 2011-12-28
  • 打赏
  • 举报
回复
记着索引一定要过段时间重整,否则索引也没效果了。
LongRui888 2011-12-28
  • 打赏
  • 举报
回复
前段时间,和同事一起优化一段sql语句,一开始运行得10多分钟,后来优化了逻辑速,外加关联提示,提速到3分多钟,再建立索引之后缩短到1分30秒左右,但是当服务器比较繁忙的时候,速度又慢到5分多钟,客户意见比较大,还得继续优化,所以优化是无止境的,呵呵,还得继续努力。
LongRui888 2011-12-28
  • 打赏
  • 举报
回复
另外,改变sql代码的实现逻辑也是一个好办法,多想想逻辑如何实现更好,在关联表时,通过优化逻辑,减少关联表的个数,往往sql server就能省点力,如果只是为了完成任务,不假思索,那么结果往往是运行很慢,最后还是不得不去优化,这个是很大的返工,吃力不讨好。
黄_瓜 2011-12-28
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 keenweiwei 的回复:]

我那只是:建索引,用临时表,改sql语句的写法,改源代码取数据的方式等等。

我觉得也许还有更多更好的解决方案,坐等大牛!
大家分享自己在项目中的1,2个点就行了!
[/Quote]
其实也就这些了,你在实际工作上把性能显著提高了,大家都看在眼里
你组织一下语言,演讲一把,你就火了
LongRui888 2011-12-28
  • 打赏
  • 举报
回复
当数据量比较大的时候,建立索引确实是好办法,如果是存储过程,我觉得可以根据实际情况建立表变量或者临时表,把数据先存在里面,后面再处理。

还有就是像我工作时,虽然主要是报表sql,但是语句比较复杂,很多时候最后的结果是由多个表关联生成的,而这多个表又是由很多其他表关联生产的,这个时候sql server偶尔在关联时,采用了错误的关联算法,那么通过关联提示,强制采用其他更为合适的算法,效率可提高数百倍。
昵称被占用了 2011-12-28
  • 打赏
  • 举报
回复
看blog

小F呢,不是能贴很多的吗
ijwsoft 2011-12-28
  • 打赏
  • 举报
回复
我那只是:建索引,用临时表,改sql语句的写法,改源代码取数据的方式等等。

我觉得也许还有更多更好的解决方案,坐等大牛!
大家分享自己在项目中的1,2个点就行了!
昵称被占用了 2011-12-28
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 beirut 的回复:]
上你的解决方案 让我学习学习
[/Quote]

ijwsoft 2011-12-28
  • 打赏
  • 举报
回复
我那只是:建索引,用临时表,改sql语句的写法,改源代码取数据的方式等等。

我觉得也许还有更多更好的解决方案,坐等大牛!
大家分享自己在项目中的1,2个点就行了!
ijwsoft 2011-12-28
  • 打赏
  • 举报
回复
我那只是:建索引,用临时表,改sql语句的写法,改源代码取数据的方式等等。

我觉得也许还有更多更好的解决方案,坐等大牛!
大家分享自己在项目中的1,2个点就行了!
黄_瓜 2011-12-28
  • 打赏
  • 举报
回复
上你的解决方案 让我学习学习
ijwsoft 2011-12-28
  • 打赏
  • 举报
回复
太郁闷了,刚才发了一次贴,居然来了个“服务器无法响应”!只好再发了一次!
nzperfect 2011-12-28
  • 打赏
  • 举报
回复
其实要想做好T-sql性能调优,前提是必须要了解表和索引的存储方式。
一切关于T-sql的调优,都是基于减少IO.

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧