一条select语句引起的瓶颈问题思考

酸甜苦辣是生命的富有,赤橙黄绿是人生的斑斓。低头走路只看到大地的厚重却忽略了高空的高远;抬头走路,只看到高空的广阔,却忽略了脚下的艰辛与险峻。
情境还原: 公司一项目新上线,刚上线的第2天,在后台发现数据库服务器与IIS服务器的网络IO出现瓶颈,1GB的网络带宽,占用了70%-100%,也就是每秒传输数据700MB-1GB,数据库使用内存高达21GB。 IIS服务器CPU使用率时常爆至80%-90%,导致网站频频出现连接超时。 原因:晚上只好暂时关闭网站,进行服务器维护,作全面的检查跟踪,发现是一句Select语句导致:
Select * From Table1
这条语句,语法是没问题的,但在应用上出了问题。Table1存储的是10多万行数据,表数据每天都会上万的增长。
为了统计总行数,频频调用这语句,每秒刷新不低于1000次。
也因此导致网络出现瓶颈。 解决:后面把Select语句改成

Select Count(*) from Table1
即可解决问题,网络 IO数据马上降至10MB以下,数据库使用内存也保持在预计范围12GB。 看似非常简单的问题,其实不然。解决这问题,所花的时间周期是6小时,检查问题使用1小时,修改代码使用5小时。

到此这篇关于一条select语句引起的瓶颈问题思考就介绍到这了。唯一的出路还是学习。更多相关一条select语句引起的瓶颈问题思考内容请查看相关栏目,小编编辑不易,再次感谢大家的支持!

您可能有感兴趣的文章
SQLServer中的SELECT会阻塞SELECT吗

探讨selectin在postgresql的效率问题

sqlserver中Selectcount(*)和Count(1)的区别和执行方式

Selectcount(*)、Count(1)和Count(列)的区别及执行方式

sql语句插入结果为select和值混合示例