1、避免不必要的执行操作
2、关闭不必要的Session状态
3、注意使用Server Control 不必要时可以不使用Server Control
4、不必要时可以关闭ViewState
5、不要用Exception控制程序流程
try {
result = 100 / num;
}
catch (Exception e) {
result = 0;
}
6、只读数据访问不要使用DataSet 使用SqlDataReader代替DataSet
7、关闭ASP.NET的Debug模式 web.config里的debug要为false,并且dll文件编译是要生成为release版本的
8、使用ASP.NET Output Cache缓冲数据
9、对大量使用的很少更新的数据进行数据缓冲
9、尽量使用存储过程数据访问
10、页面能静态的就不要动态
11、能用JS实现的效果都用JS实现,能在客户端实现的就减少回发
12、转向用Server.Transfer,不用Response.Direct
13、ADO.NET对象在一次使用过程中不要重复打开创建,尽量使用一个Connection、一个Command、一个DataReader,并且记得不再调用数据库数据时马上关闭、释放
14、数据集采用要多少给多少,杜绝不分字段不分页
15、能不用DataSet/DataGrid就不要使用
16、运行在win2003企业版上
==========================================
希望进来的朋友谈谈你在提高效率方面的感想,并希望继续补充
我个人认为系统的效率是必须要时时考虑的,不能忘记。
2、关闭不必要的Session状态
3、注意使用Server Control 不必要时可以不使用Server Control
4、不必要时可以关闭ViewState
5、不要用Exception控制程序流程
try {
result = 100 / num;
}
catch (Exception e) {
result = 0;
}
6、只读数据访问不要使用DataSet 使用SqlDataReader代替DataSet
7、关闭ASP.NET的Debug模式 web.config里的debug要为false,并且dll文件编译是要生成为release版本的
8、使用ASP.NET Output Cache缓冲数据
9、对大量使用的很少更新的数据进行数据缓冲
9、尽量使用存储过程数据访问
10、页面能静态的就不要动态
11、能用JS实现的效果都用JS实现,能在客户端实现的就减少回发
12、转向用Server.Transfer,不用Response.Direct
13、ADO.NET对象在一次使用过程中不要重复打开创建,尽量使用一个Connection、一个Command、一个DataReader,并且记得不再调用数据库数据时马上关闭、释放
14、数据集采用要多少给多少,杜绝不分字段不分页
15、能不用DataSet/DataGrid就不要使用
16、运行在win2003企业版上
==========================================
希望进来的朋友谈谈你在提高效率方面的感想,并希望继续补充
我个人认为系统的效率是必须要时时考虑的,不能忘记。
try {
result = 100 / num;
}
catch (Exception e) {
result = 0;
}
为什么呢????
2减少消耗内存
3减少server control解释成html的时间
4减少传递时增加的隐藏数据,同时也减小传输文件
5为什么非让它撞南墙再回头
6SqlDataReader效率高于DataSet
7正是版本不应用Debug
8Output Cache缓冲的页听说比静态也还快(直接从内存输出连文件都不用读)
9同样的数据,预先拿出来,放到内存总比在数据库或文件中快吧
9存储过程是数据库预先优化和编译的
10动态的需要先解释啊
11办一件事,故意让你来回跑上几趟,你乐意吗?
12Response.Direct需要先回到客户那里报个到
13本来你手中有个笔,可是写字时你却先放下,再换一个
14要枝给树
15我认为DataGrid过于花哨,DataSet用来缓存数据很好,经常要换的话就浪费了
16win2003企业版是集成.NET的操作系统
12、转向用Server.Transfer,不用Response.Direct
这两条需要重新讨论吧?(持保留意见,^_^)
try {
result = 100 / num;
}
catch (Exception e) {
result = 0;
}
为什么呢????
==================》(献丑了)
因为try{}catch(Exception e) {}会占用资源。
而象这个例子,明显可以通过判断来避免错误出现,只要num != 0 这个语句就不会出问题。
所以可以这样写。
if( num != 0 )
result = 100 / num;
else
result = 0;
try {
result = 100 / num;
}
catch (Exception e) {
result = 0;
}因为.net Exception handling的开销是比较大的,而且我们也不知道它内部到底作了哪些处理,如果换成对num作if判断开销就小很多了
7、关闭ASP.NET的Debug模式 web.config里的debug要为false,并且dll文件编译是要生成为release版本的我每次给客户的dll都是release的,但是web.config中的Debug没有改成false,能否解释这个配置的详细作用?
12、转向用Server.Transfer,不用Response.ReDirect
---------------------------------------------------------------
Server.Transfer 发生在服务器端,客户端是不知道的,所以,没有 B/S 的交互,节省资源Response.ReDirect 实际在 B/S 之间进行两次交互,同时, 在IIS的Perform上,可以看到,Redirect操作,实际是引发一个 Exception 的,对IIS性能也有降低
不过,Server.Transfer 只能转向到 同目录的页面,而且在 ASP.NET中, 不能转向静态页面。
但是 它可以 保留上页面的所有数据,如FORM,PARAM 等
"能不用DataSet/DataGrid就不要使用",这些恰恰是大大提高开发速度的地方啊。有时候也要适当为自己想想呢。
Server.Transfer可以转向不同目录的页面
Server.Transfer可以转向静态页面
但是Server Control却会带来很多的好处,比如保留状态等。当然有些时候还是要用 htmlControl的。
try时能不用就不用的,因为它会明显增加系统的反应时间(在抛出异常的时候)。
不是只有DataSet呀,还有DataTable 、DataRow呀,都是可以用的呀。DataReade只在函数内部使用的好,用完后要显式 close()才行。
但是,如果你用htmlControl的话,往往要加上 runat=server ,那么加上这一句后,系统又要做些什么操作呢?总不能什么都不做吧。
============
你有些误解,如果不用Server Control 尽量也不要用htmlControl 而是直接用html,也就是能直接使用html的就不要再麻烦系统负责解析了。
对于 Server.Transfer,请改用 Server.Execute 方法。
=======
不太理解,
一查到的帮助是:获取 DataSet 的副本,该副本包含自上次加载以来或自调用 AcceptChanges 以来对该数据集进行的所有更改。
提交自加载此 DataSet 或上次调用 AcceptChanges 以来对 DataSet 进行的所有更改。
说明必须是通过该数据集修改的数据,如果不是呢?
=====
令开求助贴
http://community.csdn.net/Expert/topic/4145/4145995.xml?temp=.4990198
我用Response.Redirect 或 Server.Transfer 时没有出现ThreadAbortException
=========
对于 Server.Transfer、Server.Execute 方法
Server.Execute 使用另一页执行当前请求对于当前请求
Server.Transfer 终止当前页的执行,并使用指向一个新页的指定 URL 路径来开始执行此新页。
====
请问如果我不需要另一页继续当前的请求用哪个好?
-------------------------------------------------------------------
楼主的这句话我是赞成的。但是,到底用多少个Connection、Command、DataReader不是你说了算的,是计算机说了算的。
放大到一个类里
不明白啊!!
Response.Direct(url,true);有什么不好?请赐教......
很多事情不能太绝对了 因项目而异
========================================================
可以把Connection、Command、DataReader放大到一个类里,我也是这么用的。
在一次使用过程中可能需要多次连接数据库,获取数据
那么在Open是创建Connection、Command,读取数据使用一个公共DataReader
在完成一项读取工作后,如果还要访问数据库不要关闭数据库,不释放资源
jsyhello这条不对。你还没理解连接池的概念。在.net里面,应该尽量晚的打开连接。尽早的关闭连接。
如果还要访问数据库,也要关闭,等用的时候再打开。
这个说法不是很认同..那么你如何捕捉错误...并存入某些错误日志..仅仅靠你的那个If判断么?
当然.我说的意思在再对数据库操作的时候.
如果错误是预知的,不要用Exception控制程序流程
如果错误不可预知,不用Exception控制错误还能用什么?
"在网络状态较好的情况下,Redirect(url)方法效率最高!!
Server.Transfer方法和Server.Execute方法最灵活!!
Server.Execute方法占用资源最多. "
看你的具体情况吧……灵活点比较好。