您现在的位置是:网站首页> 编程资料编程资料
一条select语句引起的瓶颈问题思考_MsSql_
2023-05-26
431人已围观
简介 一条select语句引起的瓶颈问题思考_MsSql_
情境还原:
公司一项目新上线,刚上线的第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小时。
公司一项目新上线,刚上线的第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小时。
相关内容
- sql server 入门语句总结_MsSql_
- Sql Server中一个表2个字段关联同一个表(代码解决)_MsSql_
- SQL Server利用bcp命令把SQL语句结果生成文本文件_MsSql_
- sql not in 与not exists使用中的细微差别_MsSql_
- 存储过程配合UpdateDaset方法批量插入Dataset数据实现代码_MsSql_
- SQL里面用自定义Split()完成个性化需求_MsSql_
- Sql Server:多行合并成一行,并做分组统计的两个方法_MsSql_
- 将备份的SQLServer数据库转换为SQLite数据库操作方法_MsSql_
- SQLSERVER对索引的利用及非SARG运算符认识_MsSql_
- SQLSERVER记录登录用户的登录时间(自写脚本)_MsSql_
