首页 新闻 赞助 找找看

sqlserver 2008 r2 第一次连接慢得清新脱俗

0
悬赏园豆:100 [已解决问题] 解决于 2016-12-20 22:40

主要症状是在第一次访问网页的时候,需要从数据库读取数据的这个网页需要10~25秒才能打开,有时候甚至会提示超时,第二次就是秒开了,隔一段时间再来打开的话,又会很慢。

下面是服务器配置,微软云国际版亚洲东部,个人使用,所以配置比较低,但以前用512MB RAM都没问题,另外刚刚将虚机的配置上调了一个等级,第一次仍然慢,没有丝毫改观,由此个人感觉主要问题不在硬件上。

那么有人遇到过类似问题的吗?网上搜了很多,也设置了很多东西,没有什么效果。

 

补充一个情况:操作系统是英文版windows server 2008 data center,自己下载安装的中文语言包,后来发现进“组策略”管理的时候不停报错。

问题补充:

更新一下进度:升级了主机的配置,然后开机玩了一会儿,然后降低到原来的配置,问题貌似解决了,很诡异。

MEZW的主页 MEZW | 初学一级 | 园豆:108
提问于:2016-12-20 15:26
< >
分享
最佳答案
0

第二次查询是因为缓存

收获园豆:30
悦光阴 | 老鸟四级 |园豆:2251 | 2016-12-20 19:59
其他回答(6)
0

ef首次加载会慢.

收获园豆:10
吴瑞祥 | 园豆:29449 (高人七级) | 2016-12-20 15:29

已经将ef的dll预编译进去了,另外首次加载不应该这么慢才对。

支持(0) 反对(0) MEZW | 园豆:108 (初学一级) | 2016-12-20 17:54
0

code first?

收获园豆:10
Daniel Cai | 园豆:10424 (专家六级) | 2016-12-20 15:42

db first

支持(0) 反对(0) MEZW | 园豆:108 (初学一级) | 2016-12-20 17:54
1

首次打开网站,不是SQL的问题。是网站自己在建立服务,加载缓存等等。不过一般都在10秒内完成。

收获园豆:15
盟怀部孩 | 园豆:878 (小虾三级) | 2016-12-20 15:55

隔一段时间再来打开的话,是网站没被访问,IIS回收了程序池

支持(0) 反对(0) 盟怀部孩 | 园豆:878 (小虾三级) | 2016-12-20 15:56

另一个没有使用数据库的网站可以秒开。

支持(0) 反对(0) MEZW | 园豆:108 (初学一级) | 2016-12-20 17:55

@蒋坤_MEZW: 没有使用数据库。是不是也没有后台?或者后台处理比较简单。开启速度也会比较快。

支持(0) 反对(0) 盟怀部孩 | 园豆:878 (小虾三级) | 2016-12-20 17:56

@盟怀部孩: 一样是asp.net mvc 4.0,我觉得应该还是数据库这块的问题,要说配置太低其实也可以理解,但以前512MB内存也没问题啊。

支持(0) 反对(0) MEZW | 园豆:108 (初学一级) | 2016-12-20 17:59

@蒋坤_MEZW:后台处理的项目对第一次加载影响很多的。比如你网站里面有加载缓存的功能啊或者有其它的服务啊等等都会影响第一次打开时间

支持(0) 反对(0) 盟怀部孩 | 园豆:878 (小虾三级) | 2016-12-20 18:02
0

1、没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷)  

  2、I/O吞吐量小,形成了瓶颈效应。  

  3、没有创建计算列导致查询不优化。  

  4、内存不足  

  5、网络速度慢  

  6、查询出的数据量过大(可以采用多次查询,其他的方法降低数据量)  

  7、锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷)  

  8、sp_lock,sp_who,活动的用户查看,原因是读写竞争资源。  

  9、返回了不必要的行和列  

     10、查询语句不好,没有优化

收获园豆:5
皇刮 | 园豆:12 (初学一级) | 2016-12-20 16:26

这个看过很多遍了

支持(0) 反对(0) MEZW | 园豆:108 (初学一级) | 2016-12-20 17:57
0

写个 小的demo  直接在服务器本地测试下  就知道是不是数据库问题了

收获园豆:15
程序员编程日记 | 园豆:6 (初学一级) | 2016-12-20 17:14

这个站点就是迁移过来的,以前没有遇到问题,在512MB RAM的Windows server 2008 (64)上都跑过,都可以很快打开。

支持(0) 反对(0) MEZW | 园豆:108 (初学一级) | 2016-12-20 17:56

@蒋坤_MEZW: 在有问题的服务期测试

支持(0) 反对(0) 程序员编程日记 | 园豆:6 (初学一级) | 2016-12-20 18:00

@conan_lin: 也很慢,所以应该就是数据库的问题。

支持(0) 反对(0) MEZW | 园豆:108 (初学一级) | 2016-12-20 18:43
0

根据你的描述我只能做大致的推测:

DB连接通常为:OPEN -->HOLD --> CLOSE

虽然上面看上去是废话,但是要记住一点:记录集在用的时候才OPEN。用完该释放资源就释放资源。

所以建议楼主review下代码,画出持久层的整体流程图,在某些关键的节点OPEN和CLOSE。

收获园豆:15
CaiYongji | 园豆:1267 (小虾三级) | 2016-12-20 21:33
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册