一条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小时。

时间: 2024-09-30 19:41:36

一条select语句引起的瓶颈问题思考_MsSql的相关文章

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

情境还原: 公司一项目新上线,刚上线的第2天,在后台发现数据库服务器与IIS服务器的网络IO出现瓶颈,1GB的网络带宽,占用了70%-100%,也就是每秒传输数据700MB-1GB,数据库使用内存高达21GB. IIS服务器CPU使用率时常爆至80%-90%,导致网站频频出现连接超时. 原因:晚上只好暂时关闭网站,进行服务器维护,作全面的检查跟踪,发现是一句Select语句导致: Select * From Table1 这条语句,语法是没问题的,但在应用上出了问题.Table1存储的是10多万

sql去除重复记录问题,要求只用一条select语句

问题描述 sql去除重复记录问题,要求只用一条select语句 我有个表,有些记录属于部分重复,像根据时间去掉重复记录比如这个表: t1 t2 小明 2015-06-25小明 2015-09-21小红 2015-03-01小花 2015-03-01小白 2015-03-01 里面的小明那条记录,我只想保留2015-09-21这条最新的记录. 麻烦的是,我只能用一条select语句,不能把另一条记录删掉.求解 解决方案 SELECT a.* FROM table1 a WHERE NOT EXIS

select语句-先查询然后再绑定到GridView的一条Select语句如何写

问题描述 先查询然后再绑定到GridView的一条Select语句如何写 求帮助,先查询然后再绑定到GridView的一条Select语句如何写 解决方案 http://msdn.microsoft.com/zh-cn/library/system.web.ui.webcontrols.gridview(v=vs.110).aspx 解决方案二: 我写成这样了,哪些要改 ""select T_PhoneInfo.IDT_PhoneInfo.Brand AS ID productNumb

从一条select语句看Oracle数据库查询工作原理

假如,我们现在利用Select语句从数据库查询数据,Oracle数据库是如何运作的呢?从中我们可以领悟到什么呢?下面,就结合一条简单的select语句,看看Oracle数据库后台的运作机制.这对于我们之后的系统管理与故障排除非常有帮助. 第一步:客户端把语句发给服务器端执行. 当我们在客户端执行select语句时,客户端会把这条SQL语句发送给服务器端,让服务器端的进程来处理这语句.也就是说,Oracle客户端是不会做任何的操作,他的主要任务就是把客户端产生的一些SQL语句发送给服务器端.虽然在

Sql Server如何通过函数操作返回一条Select语句查询后的临时表

SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE FUNCTION dbo.csjcsj() RETURNS TABLE AS RETURN ( SELECT * from xx ) GO 这是创建代码,执行代码如下: select * from csjcsj() 当然,也可以传参数! 更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/database/SQLServer/ 以上是

《SQL初学者指南(第2版)》——2.1 一条简单的SELECT语句

2.1 一条简单的SELECT语句 在SQL中,数据的检索可以通过SELECT语句来完成.无需太多解释,我们来看一条最简单的SELECT语句的示例: SELECT * FROM Customers 和所有的计算机语言一样,在SQL中,有些单词是关键字.这些单词有特殊的意义,而且必须以特定的方法来使用.在这条语句中,单词SELECT和FROM是关键字.关键字SELECT表示我们开始编写一条SELECT语句.关键字FROM用来表示从哪个表中检索数据,表名紧跟在FROM之后.在这个示例中,表名是Cus

《SQL初学者指南(第2版)》——2.6 预览完整SELECT语句

2.6 预览完整SELECT语句 本书大部分内容都与本章所介绍的SELECT语句相关.从第3章到第15章,我们将扩展这条SELECT语句,不断引入新的特性,直到你了解和理解SELECT的全部潜力和功能.这里,我们只是简单介绍了SELECT语句如下的这个部分: SELECT columnlist FROM table 为了不留悬念,我们先来预览一下完整的SELECT语句,并且简单介绍一下其各个不同的组成部分.包含了全部子句的.完整的SELECT语句如下所示: SELECT columnlist F

sql2005-求大神帮忙看看怎么写这条sql语句,毕设遇到瓶颈了

问题描述 求大神帮忙看看怎么写这条sql语句,毕设遇到瓶颈了 这是我的论坛的帖子信息表 create table tiezi ( tieziid int not null primary key identity(1,1), userid int , tztitle varchar(20) not null, tzcontent varchar(200)not null, tztime datetime not null, tztop varchar(1), hfnum int ) 这是帖子的回

SQLServer中SELECT语句的执行顺序

今天在写一条语句的时候,在查询分析器里边执行 要用10s,换用另外一种写法只用少于1s的时间,同事说是因为Sql句语执行顺序的原因.之前看过一点相 关的书,有一点印象,到网上找了资料,学习下. 逻辑查询处理步骤 复制代码 代码如下: (8)SELECT (9)DISTINCT (11)<TOP_specification> <select_list> (1)FROM <left_table> (3) <join_type> JOIN <right_ta