首页新闻找找看学习计划

有一台服务器上 执行DataBind() 的时候耗时非常长! 同样的程序在另一台 服务器上表现正常。几乎不耗时

0
悬赏园豆:20 [已解决问题] 解决于 2013-10-16 10:48

加了stopwatch 发现耗时只在 repeat.DataSource=数据源 ;repeat.DataBind();这两步 居然耗时 40多秒,数据只有50条,在另一台服务器上正常;

repeat控件中没有banding任何事件。  数据绑定 用的是 Eval 方式。

想请教一些思路。。。

包拯的主页 包拯 | 初学一级 | 园豆:9
提问于:2013-10-15 15:36
< >
分享
最佳答案
0

检查下是不是异常,比如连接出错。

try..catch抓了异常却没抛出的话,程序看着运行下去了。却很耗时。

比如创建连接。有次我就加个测试的地址忘记删掉,正式用时连接不到这个测试地址,程序出异常卡了30秒。但过后一样正常工作。

 

-------------------------

收获园豆:7
北落师门α | 初学一级 |园豆:17 | 2013-10-15 16:04
其他回答(10)
0

不知道,给我个园豆呗。

收获园豆:4
若雪封尘 | 园豆:463 (菜鸟二级) | 2013-10-15 15:38

你这也太明目张胆了……

回答题目:楼主检查一下引用,特别是在.net framework 4.0及以上框架的情况下,无效的引用可能会在某些情况下增加开销。

支持(0) 反对(0) 飞扬的尘埃 | 园豆:1318 (小虾三级) | 2013-10-15 16:53
0

是远程的数据库端口吗?

收获园豆:2
````` | 园豆:14268 (专家六级) | 2013-10-15 15:40

数据读取 只需要几百毫秒  监控这个了的。 数据读取正常

支持(0) 反对(0) 包拯 | 园豆:9 (初学一级) | 2013-10-15 15:41

 Stopwatch sp1 = new Stopwatch();
            sp1.Start();
            rpt.DataSource = dt;
            rpt.DataBind();
            sp1.Stop();
            Label2.Text += string.Format("耗时:{0}毫秒", sp1.ElapsedMilliseconds); 居然耗时 40多秒

支持(0) 反对(0) 包拯 | 园豆:9 (初学一级) | 2013-10-15 15:43

@包拯: 估计是远程连接网络不稳定。重启下远程数据库看下。本地的应该不会这么慢的。

支持(0) 反对(0) ````` | 园豆:14268 (专家六级) | 2013-10-15 15:46

@imfunny: 是内网的数据库,ping 了 机器没有  丢包现象, 而且数据已经拿到了啦。

支持(0) 反对(0) 包拯 | 园豆:9 (初学一级) | 2013-10-15 15:47

@包拯: 这个问题还真没遇到过。内网数据库应该很快连接。实用net start把远程的服务给重启下

支持(0) 反对(0) ````` | 园豆:14268 (专家六级) | 2013-10-15 15:49

@imfunny: 数据源 应该没有问题的。 

支持(0) 反对(0) 包拯 | 园豆:9 (初学一级) | 2013-10-15 15:59

@imfunny: 

数据已经获取到了, 存放在 DataTable 中,repeat.DataSource=dt;  这个时间 应该是 控件绑定和渲染时间。

支持(0) 反对(0) 包拯 | 园豆:9 (初学一级) | 2013-10-15 15:59

@包拯: 绑定时间应该不需要那么长的。那个操作也是相当快的。

支持(0) 反对(0) ````` | 园豆:14268 (专家六级) | 2013-10-15 16:00

@imfunny: 理论上是的,但是 从stopwatch的 监控来看 这两步占据了 很长时间,

支持(0) 反对(0) 包拯 | 园豆:9 (初学一级) | 2013-10-15 16:03

@包拯: 那就自己构造一个datatable然后绑定下看看是不是还是这个时间,如果不是了 就知道问题了。

支持(0) 反对(0) ````` | 园豆:14268 (专家六级) | 2013-10-15 16:05
0

Just重装系统!!!

收获园豆:1
许你一世幸福 | 园豆:82 (初学一级) | 2013-10-15 15:42
0

Eval有一些转换,装箱? 我和1楼的一样 都是来要分的 

收获园豆:1
二十二号同学 | 园豆:790 (小虾三级) | 2013-10-15 15:44
0

把数据库放到本机试试,ping不丢包不能说明网络没问题

收获园豆:1
dudu | 园豆:41048 (高人七级) | 2013-10-15 15:52

数据已经获取到了, 存放在 DataTable 中,repeat.DataSource=dt;  这个时间 应该是 控件绑定和渲染时间。

支持(0) 反对(0) 包拯 | 园豆:9 (初学一级) | 2013-10-15 15:56
0

这是绑定时间么,我看是 查数据+构建集合+控件绑定+渲染 时间

收获园豆:1
李永京 | 园豆:3114 (老鸟四级) | 2013-10-15 15:53

数据已经获取到了, 存放在 DataTable 中,repeat.DataSource=dt;  这个时间 应该是 控件绑定和渲染时间。

支持(0) 反对(0) 包拯 | 园豆:9 (初学一级) | 2013-10-15 15:56
0

Stopwatch sp1 = new Stopwatch();
            sp1.Start();
            rpt.DataSource = dt;
            rpt.DataBind();
            sp1.Stop();
            Label2.Text += string.Format("耗时:{0}毫秒", sp1.ElapsedMilliseconds); 居然耗时 40多秒

 

你这个代码打印出来的是40多秒???还是其实是40多毫秒???

收获园豆:1
顾晓北 | 园豆:9520 (大侠五级) | 2013-10-15 16:07

40 000多 毫秒

支持(0) 反对(0) 包拯 | 园豆:9 (初学一级) | 2013-10-15 16:10
0

每个单句输出一次,看具体耗时的语句,记得,千万别断点。

收获园豆:2
幻天芒 | 园豆:36522 (高人七级) | 2013-10-15 16:16

....这个是部署在服务器上的 网站,没法断点吧。。。难道在服务器上 装个VS。。。。

支持(0) 反对(0) 包拯 | 园豆:9 (初学一级) | 2013-10-15 16:22

@包拯: VS 支持远程调试的,虽然我也没用过。。。等会我帮你找下那个资料。一会发你

支持(0) 反对(0) 北落师门α | 园豆:17 (初学一级) | 2013-10-15 16:37

@包拯:我只是想确定是哪句最耗时而已,先确定语句,再针对性找原因了。 

支持(0) 反对(0) 幻天芒 | 园豆:36522 (高人七级) | 2013-10-15 17:16

@幻天芒: 感谢! 已解决。

支持(0) 反对(0) 包拯 | 园豆:9 (初学一级) | 2013-10-15 17:58
0

werwerwerrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrasdasd 

lu200852 | 园豆:214 (菜鸟二级) | 2013-12-05 16:01
0

程序员的干货店 | 园豆:68 (初学一级) | 2014-03-29 21:23
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册