数据库里面不到3万条数据
用了嵌套查询,一共查询了2个表。
用gridview控件分页显示的数据。现在出现的问题是:
1、每次翻页,速度都有点慢,翻页速度和刚打开这个页面的速度差不多(个人感觉翻页应该速度快点)
2、打开这个页面的时候,iis的应用池迅速增长到了260mb左右
3、多次翻页之后,页面卡住,然后显示出错信息:应用池超过最大数。应用池设置并没有限制内存使用和虚拟内存使用大小。请问大家有什么办法?
是不是必须得优化?优化的话应该怎么优化?
用了嵌套查询,一共查询了2个表。
用gridview控件分页显示的数据。现在出现的问题是:
1、每次翻页,速度都有点慢,翻页速度和刚打开这个页面的速度差不多(个人感觉翻页应该速度快点)
2、打开这个页面的时候,iis的应用池迅速增长到了260mb左右
3、多次翻页之后,页面卡住,然后显示出错信息:应用池超过最大数。应用池设置并没有限制内存使用和虚拟内存使用大小。请问大家有什么办法?
是不是必须得优化?优化的话应该怎么优化?
解决方案 »
- 用asp.net制作类似百度文库的代码
- 下载文件的问题,文件的内容是下载的时候生成的 100分
- Web程序调用超时,直接查询分析器执行只用几秒
- 求一个简单的socket程序的代码
- .net水晶报表的使用
- ~~~~~~~~~請教asp.net中Split的使用方法?~~~~~~~~~~~
- 如何在后台类中直接接受confirm及prompt返回的结果?
- 为什么点一打不执行,之后执行,那里错了:Button1.Attributes.Add("onclick", "javascript:if(document.all('TextBox1').value==''){alert(
- 关于参数传递的超级简单的问题
- 除了brinkster还有哪个站点提供免费空间?BRINKSTER又出问题了,而且数据库常连接不上
- 关于在VS2008中marquee的动态显示
- 散分分享:SvnHostFckeditor,支持代码高亮和图片水印功能的fckeditor
数据库读取用的SqlDataSource控件,然后在SqlDataSource里面设置了嵌套查询视图。
如果是SQL SERVER 2K的话,找个分页存储过程,分页读取。
如果是2.5K的话,好象有个返回指定行数的东东./
最近学习 .net 才发现的这个问题请大家教教我怎么解决,谢谢了
希求高手解答,而不是泛泛而谈
因为gridview有内嵌分页功能,所以楼主对内嵌实际的运行机制很不了解,而且不知道怎么自己根据内嵌弊端自己修改解决...
不然将永远不能从"答案"中得到答案
不知道gridview自带分页有什么弊端。现在显示数据等一切都正常,打开页面之后,每次翻页,应用池就会增长大概30mb
连续翻页5次以后,就会卡住,然后提示应用池超时,并且达到应用池最大。代码里面仔细检查过了,
每个conn结束后都有 conn.close() 和 conn.dispose()
每个dr 结束后也加上了 dr.close() 和 dr.dispose()
可是问题依旧,还是出现应用池问题。还有个问题就是,自己写的代码,可以conn.close()和conn.dispose()来释放资源,
gridview使用SqlDataSource控件来打开的,怎么释放资源?
出现这种问题,是不是和这个有关?请大家帮忙。
此页面的情况是什么,读取大量数据库?有没有死循环?
准确的说,初次打开这个页面,应用池大小增长大概50mb
然后每次翻页,应用池都每次增长大概50mb
偶尔有时候资源瞬间自动释放,应用池恢复正常大小,但是大多时间应用池是一直增大。
连续翻页大概5次,应用池就卡住了,然后提示:
超时时间已到。超时时间已到,但是尚未从池中获取连接。出现这种情况可能是因为所有池连接均在使用,并且达到了最大池大小。开始打开页面的时候,程序一切正常,就是速度感觉有点慢,
用gridview显示,数据读取用的SqlDataSource
cs里面定义了嵌套查询方法,等于一共读取了两个表。
读取的主表不到3万条数据,副表没统计有多少数据。这个页面要实现的功能,比如说
我在此论坛注册了用户,注册信息一个表
然后我在论坛发帖,发帖一个表
现在这个页面要统计,
显示此论坛的所有注册用户,并且显示每个用户发了多少帖子。cs里面每次打开数据,结束后都用了 close和dispose
其他的也不知道应该怎么做了。
2.你可以用存储过程
多用using语句
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:conn %>"
SelectCommand="SELECT * FROM [larchives] ORDER BY [user_id] DESC"></asp:SqlDataSource>写了个方法,嵌套第二个表
public static string xiangpian(string xiangpian)
{
SqlConnection conn = db.conn();
SqlCommand select = new SqlCommand("select count(id) from pho where user_id=" + xiangpian, conn);
conn.Open();
SqlDataReader dr = select.ExecuteReader();
if (dr.Read())
{
return dr[0].ToString();
dr.Close();
dr.Dispose();
}
else
{
return "0";
dr.Close();
dr.Dispose();
}
conn.Close();
conn.Dispose();
}
dr.Dispose();
return dr[0].ToString(); return 应该写在最后,可简化为:
conn.Open();
int rsCount = 0; //返回值
using (SqlDataReader dr = select.ExecuteReader())
{
if (dr.Read())
{
rsCount = (int)dr[0];
}
}
conn.Close(); onn.Open();
int rsCount = 0; //返回值
object result = select.ExecuteScalar();
if (result == null)
rsCount = 0;
else
rsCount = int.Parse(result.ToString());
conn.Close(); //其实可以不用判断 dr.Read() 和 if (result == null)
//因为select count() 总会返回一行结果
http://www.code-studio.net/CSView.aspx?aid=244
SQL Server 2000通用分页查询存储过程
EXEC SP_CURSOROPEN @Handle OUTPUT, @Sql ,@scrollopt=1,@ccopt=1, @rowcount= @Total OUTPUT
EXEC SP_CURSORFETCH @Handle, 16, @_Index, @Size
EXEC SP_CURSORCLOSE @Handle 上面的语句执行后会返回两个结果,第一个是表结构信息,可能会用不到,第二个是实际分页后的数据。
@Sql 是任一个查询性质的Sql,楼主可以参考使用。