日期:2014-05-18  浏览次数:20467 次

100分求ASP.net的性能问题解决方案
是这样的,一个娱乐类的站点,需要在个人首页里显示出最新的内容,其中包括了BLOG、相片、留言、社区发帖等资料。

我现在使用的是通过一个类,逐次去调用相关内容并绑定,我感觉这种效率很差,因此来请教各位前辈效率比较高的解决方案。

以下为调用方式。

用户首页的调用代码:

//绑定好友
dbcon.getUserFriend(userid,   true,   FriendDr);
//绑定相册
dbcon.selectPageList( "photoSubject ",   "subjectid ",   " ",   1,   5,   "picPath,subjectid,subjectName ",   "subjectType   =1   and   userid= "   +   userid.ToString(),   2,   xcDr);
//绑定留言
dbcon.selectPageList( "leavewords   a   left   join   users   b   on   a.userid=b.userid ",   "id ",   " ",   1,   5,   "a.replyCon,a.userid,a.username,a.updateTime,a.content,b.faceURL ",   "memberID= "   +   userid.ToString(),   2,   LeaveWordDr);
//绑定博客文章
dbcon.selectPageList( "blog ",   "logid ",   " ",   1,   4,   "logfile,topic,logtext ",   "ishide=0   and   passcheck=1   and   isDel=0   and   authorid= "   +   userid.ToString(),   2,   BlogDr);
//绑定论坛发帖
dbcon.selectPageList( "bbs ",   "id ",   " ",   1,   4,   "Title,Content,id,boardid ",   "parentid=0   and   boardid   not   in(444,240)   and   userid= "   +   userid.ToString(),   2,   bbsDr);


dbcon里的分页调用程序如下:

//调用通用的分页程序
public   static   void   selectPageList(string   tables,   string   primaryID,   string   sort,   int   currentPage,   int   pageSize,   string   fields,   string   whereStr,   int   SortType,   Repeater   myDr)
        {
                SqlConnection   myCon   =   new   SqlConnection(defConnString);
                SqlCommand   myCmd   =   new   SqlCommand( "SP_Pagination ",   myCon);
                myCmd.CommandType   =   CommandType.StoredProcedure;
                myCmd.Parameters.Add( "@TableName ",   tables);
                myCmd.Parameters.Add( "@FieldList ",   fields);
                myCmd.Parameters.Add( "@PrimaryKey ",   primaryID);
                myCmd.Parameters.Add( "@Where ",   whereStr);
                myCmd.Parameters.Add( "@Order ",   sort);
                myCmd.Parameters.Add( "@SortType ",   SortType);//排序方式。1为按主键asc   2为desc   3为按order参数中的多个参数的排序
                myCmd.Parameters.Add( "@RecorderCount ",   1000);
                myCmd.Parameters.Add( "@PageIndex ",   currentPage);
                myCmd.Parameters.Add( "@PageSize ",   pageSize);
                myCmd.Parameters.Add( "@TotalCou