环境:
windows 2003
sql server 2005
.net 2.0现象:
一个在数据库中执行时间不需1秒的存储过程,
到 asp.net 中却要 20 秒,
我尝试过用 SqlDataSource 直接读、用 SqlDataSource 在 CodeFile 中手动读、用 dataReader 通过 SqlHelper 读而不绑定数据,
都是一样的慢。百思不得其解。
请问您遇过这情况吗?
或赐教会是什么原因?
windows 2003
sql server 2005
.net 2.0现象:
一个在数据库中执行时间不需1秒的存储过程,
到 asp.net 中却要 20 秒,
我尝试过用 SqlDataSource 直接读、用 SqlDataSource 在 CodeFile 中手动读、用 dataReader 通过 SqlHelper 读而不绑定数据,
都是一样的慢。百思不得其解。
请问您遇过这情况吗?
或赐教会是什么原因?
解决方案 »
- 求帮助修改代码,用户注册界面
- 请教:数据库来了新数据,怎样编写一个后台程序,实现将数据推到WEB客户端???
- 关于JS,......................
- 关于网上所写的防止刷新页面的代码,...
- asp.net中如何获取页面的背景色值
- 请教一个关于excel里面图片的问题
- 如何利用ADO.net将两个不同的数据库合并,分快用完了,一点小意思,谢谢大家啦!
- 从URL加载XmlDataDocument后显示到datagrid中
- 求“获取网页源代码和网页内的链接”的代码或思路。谢谢!
- 我有A,B两个类在同一个名称空间中,但是在不同的cs文件中,请问B怎么继承A
- 在选定的数据源上未找到名为“Grade_Id”的字段或属性
- 如何制作可对文字进行编辑的Textbox?
和在程序里面执行有很大区别的
不光是asp.net一家的原因
用 SqlDataSource 直接读是在 IDE 中设置,无须代码;用 dataReader 通过 SqlHelper 读而不绑定数据的代码也很短:
protected void Page_PreRender(object sender, EventArgs e)
{
string SQL = "p_Test";
SqlDataReader dataReader = SqlHelper.ExecuteReader(SqlHelper.ConnStr, CommandType.StoredProcedure, SQL, null);
//作为测试,这里什么都没干
dataReader.Close();
}如果屏蔽掉这段代码,执行时间为0.00ms。
你的系统本身有问题,尤其是IIS
dbcc dropcleanbuffers
dbcc freeproccache
如果SQL中执行快,那注意sqldataReaer不要一次性读取大量数据。另外我个人觉得此时,您应该单步调试进去看看为什么哪个操作这么慢
如果数据不要求实时性高。那可考虑将该数据存入缓存