数据库访问缓慢或者超时,重启后正常

王者永乐 2011-12-03 12:12:05
我们公司的服务器 平时网站访问挺快的 但是每天会出现几次查询缓慢甚至超时情况 cpu使用率不高
重启后问题会有显著好转 过几个小时又出现这样情况
出现问题的时候远程连接服务器操作非常缓慢,甚至重启都需要一定的时间, 任务管理器显示cpu在30左右
是有死锁的原因么

在日志里面记录了一些异常信息(由于输入参数非法),我把这些异常对应的ip封掉后就不出现这情况了,
但是搜索引擎的收录开始降低,把ip解封 搜索引擎的收录恢复 网站异常情况也出现
这些ip有些是网上说的蜘蛛ip 但是我不明白 蜘蛛是模拟用户行为查询网站的
为什么会出现非法参数呢
...全文
568 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
王者永乐 2011-12-13
  • 打赏
  • 举报
回复
dbcc 修复了数据库 并且将数据库文件更改了磁盘位置 然后重建了所有的索引 仅仅好了一天 一天后问题依旧

[Quote=引用 23 楼 charles_y 的回复:]

parentid上面建索引,这个索引包含guid,看看速度有改善吗?

为了优化查询速度,可以优化数据表,建立两个冗余字段,比如level1ID,level2ID.

针对于不同的查询需要建立不同的索引,百万以上的表没有索引遇到频繁的查询就会很吃力了,死掉很正常。
[/Quote]
charles_y 2011-12-04
  • 打赏
  • 举报
回复
搞不懂了,有可能问题出在你的数据库,sql语句有问题吗?

索引有问题吗?用sp_who 看看有等待的操作吗?

不过看你描述,机器重启都比较慢等的,又不像是数据库的问题,看看机器是不是在经过紧张工作后过热了,自动降频了?
王者永乐 2011-12-04
  • 打赏
  • 举报
回复
不错的网站啊,不过我们是做虚拟物品交易的,呵呵。
昨天封了ip没有异常,晚上的时候我把百度的123.125.71段解封了,三小时后我就又悲剧了
不过很奇怪啊,如果是资源没有释放或者代码没有优化,应该是一直缓慢或者渐渐的缓慢,
但是我们这个情况属于突然性就死掉了,是不是被攻击了啊
[Quote=引用 15 楼 charles_y 的回复:]
引用 14 楼 wangzheyongle 的回复:

会不会是都用的dataset 内存用完了? 物理内存4G 没有做过破解 一般使用都在2.2G
卡的时候会在2.5左右

能力有限 希望指点啊
引用 11 楼 charles_y 的回复:
如果仅仅是因为一秒钟3次就受不了了,那网站还是有问题。

内存使用情况你自己可以监视到的啊,跟dataset应该关系不大吧。

做电子……
[/Quote]
charles_y 2011-12-04
  • 打赏
  • 举报
回复
parentid上面建索引,这个索引包含guid,看看速度有改善吗?

为了优化查询速度,可以优化数据表,建立两个冗余字段,比如level1ID,level2ID.

针对于不同的查询需要建立不同的索引,百万以上的表没有索引遇到频繁的查询就会很吃力了,死掉很正常。
charles_y 2011-12-04
  • 打赏
  • 举报
回复
你自己想啊,这个跟百度蜘蛛能有什么关系呢?蜘蛛不过模拟用户行为罢了。

如果你的系统连这点浏览量都支持不住,那人稍微多一点不一样瘫痪吗
王者永乐 2011-12-04
  • 打赏
  • 举报
回复
索引暂时只有默认的主键索引
查询语句 估计下面这个目录分类会慢点吧 不过子叶总共才不过四百

where = string.Format("select GUID from GameCategory where ParentID in (select GUID from GameCategory where ParentID in (select GUID from GameCategory where ParentID in ('{0}')))", twostringhtml);

数据量不算太大 最多的表才百万条

但是 这一切跟百度蜘蛛有关么, 还是那个疑问,如果是百度蜘蛛的频繁查询引起缓慢 应该是一直缓慢或者是逐渐缓慢吧 但是我们网站的情况是突然缓慢 慢的要死啊
[Quote=引用 20 楼 charles_y 的回复:]
1 你的索引建的合理吗?合理的索引可以大大的提高查询速度

2 你使用的查询语句复杂吗?是不是关联关联在再关联呢?如果是这样的话,你可能需要优化你的sql 语句。

3 你的数据库大吗,有几千万甚至几亿个记录的大表嘛?如果是这样的话,你需要升级你的系统硬件
[/Quote]
charles_y 2011-12-04
  • 打赏
  • 举报
回复
1 你的索引建的合理吗?合理的索引可以大大的提高查询速度

2 你使用的查询语句复杂吗?是不是关联关联在再关联呢?如果是这样的话,你可能需要优化你的sql 语句。

3 你的数据库大吗,有几千万甚至几亿个记录的大表嘛?如果是这样的话,你需要升级你的系统硬件
王者永乐 2011-12-04
  • 打赏
  • 举报
回复
不知道怎么看索引有没有问题,dbcc 数据库的时候会提示有一个错误 由于各种原因 没有修复

但是 这个原因 和前面所说的各大搜索引擎有关系么

[Quote=引用 17 楼 charles_y 的回复:]
搞不懂了,有可能问题出在你的数据库,sql语句有问题吗?

索引有问题吗?用sp_who 看看有等待的操作吗?

不过看你描述,机器重启都比较慢等的,又不像是数据库的问题,看看机器是不是在经过紧张工作后过热了,自动降频了?
[/Quote]
王者永乐 2011-12-04
  • 打赏
  • 举报
回复
正常的时候数据库没有问题 出问题的时候操作数据库会一直提示查询超时

机器重启慢 可能我没有解释清楚

因为网站数据查询超时的时候我再远程连接服务器操作的时候会很慢(cpu和内存正常,这里我暂时考虑是带宽不够,如果被攻击的话) , 重新启动的速度还是比较快的
[Quote=引用 17 楼 charles_y 的回复:]
搞不懂了,有可能问题出在你的数据库,sql语句有问题吗?

索引有问题吗?用sp_who 看看有等待的操作吗?

不过看你描述,机器重启都比较慢等的,又不像是数据库的问题,看看机器是不是在经过紧张工作后过热了,自动降频了?
[/Quote]
快乐的小二兔 2011-12-03
  • 打赏
  • 举报
回复
优化吧。。
一定是打开方式不对
charles_y 2011-12-03
  • 打赏
  • 举报
回复
既然是外部引起的,是不是网络的问题呢,带宽被这几个异常的ip占完了?
charles_y 2011-12-03
  • 打赏
  • 举报
回复
内存呢?
charles_y 2011-12-03
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 wangzheyongle 的回复:]

会不会是都用的dataset 内存用完了? 物理内存4G 没有做过破解 一般使用都在2.2G
卡的时候会在2.5左右

能力有限 希望指点啊
引用 11 楼 charles_y 的回复:
如果仅仅是因为一秒钟3次就受不了了,那网站还是有问题。
[/Quote]
内存使用情况你自己可以监视到的啊,跟dataset应该关系不大吧。

做电子商务的?一次也就取出和显示20几条商品吧,要不了多少内存。

还有,不会是我抓取的吧......,我最近在做商品搜索,一般会开20-50个线程抓取数据,但因为家里的网速慢,所以影响不了网站的运行,即使是小的网站。

我的网站放在我个人笔记本上面,欢迎指教:http://114.94.137.208/ok
王者永乐 2011-12-03
  • 打赏
  • 举报
回复
会不会是都用的dataset 内存用完了? 物理内存4G 没有做过破解 一般使用都在2.2G
卡的时候会在2.5左右

能力有限 希望指点啊
[Quote=引用 11 楼 charles_y 的回复:]
如果仅仅是因为一秒钟3次就受不了了,那网站还是有问题。
[/Quote]
王者永乐 2011-12-03
  • 打赏
  • 举报
回复
刚才看了以下IIS的日志 眼都看花了啊
百度蜘蛛大部分都是在访问商品页面 这个页面设计数据库的地方我都有看
从我的角度出发 感觉不出有什么问题
[Quote=引用 11 楼 charles_y 的回复:]
如果仅仅是因为一秒钟3次就受不了了,那网站还是有问题。
[/Quote]
王者永乐 2011-12-03
  • 打赏
  • 举报
回复
监视过一段时间 没有太大的异常
在查询缓慢前 await command 的状态会增多 然后再过一段时间活动监视器就会超时
只能等待重启
[Quote=引用 10 楼 longxun_chen 的回复:]
监视你数据库的连接吧
管理——》活动监视器,如果没有异常,就检查访问数据库的代码。
sqldatareader,sqlconnection是否没有关闭等。
[/Quote]
charles_y 2011-12-03
  • 打赏
  • 举报
回复
如果仅仅是因为一秒钟3次就受不了了,那网站还是有问题。
longxun_chen 2011-12-03
  • 打赏
  • 举报
回复
监视你数据库的连接吧
管理——》活动监视器,如果没有异常,就检查访问数据库的代码。
sqldatareader,sqlconnection是否没有关闭等。
王者永乐 2011-12-03
  • 打赏
  • 举报
回复
这个 分页肯定是做过了 平时网站运行正常 一旦把这些Ip解封 不出三小时 肯定死掉

另外问一下 百度和其他搜索引擎有必要一秒钟抓取三次页面么
[Quote=引用 8 楼 findcaiyzh 的回复:]
听起来好像是dos攻击,我也没有遇到过类似的。
但是读到过一片文章提到过,查询数据库不要返回太多记录,最好分页。防止数据库过载。

听起来和你的现象挺像的。
[/Quote]
宝_爸 2011-12-03
  • 打赏
  • 举报
回复
听起来好像是dos攻击,我也没有遇到过类似的。
但是读到过一片文章提到过,查询数据库不要返回太多记录,最好分页。防止数据库过载。

听起来和你的现象挺像的。
加载更多回复(4)

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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