逍遥一派 发表于 2015-1-16 22:29:23

ASP.NET编程:ASP.NET怎样举行功能优化成绩(1)

也许唯一可以让世人留恋Java的理由就剩下它的王牌——跨平台。1、SqlDataRead和Dataset的选择

  Sqldataread长处:读取数据十分快。假如对前往的数据不需做大批处置的情形下,倡议利用SqlDataReader,其功能要比datset好良多。弱点:直到数据读完才可close失落于数据库的毗连

  (SqlDataReader读数据是疾速向前的。SqlDataReader类供应了一种读取从SQLServer数据库检索的只进数据流的办法。它利用SQLServer的本机收集数据传输格局从数据库毗连间接读取数据。DataReader需实时显式的close。可实时的开释对数据的毗连。)

  Dataset是把数据读出,缓存在内存中。弱点:对内存的占用较高。假如对前往的数据需做大批的处置用Dataset对照好些能够削减对数据库的毗连操纵。长处:只需毗连一次便可close于数据库的毗连

  *一样平常情形下,读取大批数据,对前往数据不做大批处置用SqlDataReader.对前往数据大批处置用datset对照符合.对SqlDataReader和Dataset的选择取决于程序功效的完成。

2、ExecuteNonQuery和ExecuteScalar

  对数据的更新不必要前往了局集,倡议利用ExecuteNonQuery。因为不前往了局集可免却收集数据传输。它仅仅前往受影响的行数。假如只需更新数据用ExecuteNonQuery功能的开支对照小。

  ExecuteScalar它只前往了局会合第一行的第一列。利用ExecuteScalar办法从数据库中检索单个值(比方id号)。与利用ExecuteReader办法,前往的数据实行天生单个值所需的操纵比拟,此操纵必要的代码较少。

  *只需更新数据用ExecuteNonQuery.单个值的查询利用ExecuteScalar数据绑定的选择

3、数据的绑定DataBinder

  一样平常的绑定办法<%#DataBinder.Eval(Container.DataItem,"字段名")%>用DataBinder.eval绑定不用体贴数据来历(Dataread或dataset)。不用体贴数据的范例eval会把这个数据工具转换为一个字符串。在底层绑定做了良多事情,利用了反射功能。正由于利用便利了,但却影响了数据功能。来看下<%#DataBinder.Eval(Container.DataItem,"字段名")%>。当于dataset绑准时,DataItem实在式一个DataRowView(假如绑定的是一个数据读取器(dataread)它就是一个IdataRecord。)因而间接转换成DataRowView的话,将会给功能带来很年夜提拔。

  <%#ctype(Container.DataItem,DataRowView).Row("字段名")%>

  *对数据的绑定倡议利用<%#ctype(Container.DataItem,DataRowView).Row("字段名")%>。数据量年夜的时分可进步几百倍的速率。利用时注重2方面:1.需在页面增加<%@Importnamespace="System.Data"%>.2.注重字段名的巨细写(要出格注重)。假如和查询的纷歧致,在某些情形下会招致比<%#DataBinder.Eval(Container.DataItem,"字段名")%>还要慢。假如想进一步进步速率,可接纳<%#ctype(Container.DataItem,DataRowView).Row(0)%>的办法。不外其可读性不高。

  以上的是vb.net的写法。在c#中:<@%((DataRowView)Container.DataItem)["字段名"]%>

  对检察页面每一个实行历程形态最复杂的举措:其页面的trace属性为true便可检察细节。

1、利用存储历程:

  1、功能方面:存储历程供应了很多尺度sql言语中所没有的初级特征。其传送参数和实行逻辑表达式的功效,有助于使用程序计划者处置庞大义务。别的,存储历程存储在当地服务器上,削减了实行该历程所需的收集传输宽带和实行工夫。(存储历程已对sql语句举行了预编译,以是其实行速率比在程序里实行sql语句快良多)

  2、程序布局方面:从程序的可扩大性看,利用存储历程会对程序今后的修正带来便利。好比数据库的布局改动了,只需修正绝对应的存储布局,和程序中的挪用部分便可。这部分不属于本文切磋局限,属于程序布局计划方面。以是不在此睁开。

  3、程序平安性:利用存储历程可制止SQLInjection打击。

2、查询语句的优化(针对sqlserver2000)

  良多人只为目标写出sql语句,而不思索sql语句的实行效力。在这我只供应一优化表按次的办法,(sql语句的优化和准绳将会在我的sqlserver2000进修条记中专题会商)

  对sql语句实行效力可用sqlserver2000的查询剖析器来检察语句的实行历程。

  优化表按次:一样平常情形下,sqlserver会对表的毗连作出主动优化。比方:selectname,nofromAjoinBonA.id=B.idjoinConC.id=A.idwherename=’wang’

  只管A表在From中先列出,然后才是B,最初才是C。但sqlserver大概会起首利用c表。它的选择准绳是相对该查询限定为单行或多数几行,就能够削减在其他表中查找的总数据量。尽年夜多半情形下,sqlserver会作出最优的选择,但假如你觉察某个庞大的联合查询速率比估计的要慢,就能够利用SETFORCEPLAN语句强迫sqlserver依照表呈现按次利用表。如上例加上:SETFORCEPLANON…….SETFORCEPLANOFF表的实行按次将会依照你所写的按次实行。在查询剖析器中检察2种实行效力,从而选择表的毗连按次。

  *利用SETFORCEPLAN选择表联合按次
我觉得很重要,一般所说的不重要应该指的是:你学好一种以后再学另一种就很容易了。(因为这样大家可能有一个错觉就是语言不是很重要,只要随便学一种就可以了,其实不是这样的。

若相依 发表于 2015-1-19 14:51:12

以上是语言本身的弱点,在功能方面ASP同样存在问题,第一是功能太弱,一些底层操作只能通过组件来完成,在这点上是远远比不上PHP/JSP,其次就是缺乏完善的纠错/调试功能,这点上ASP/PHP/JSP差不多。

小魔女 发表于 2015-1-25 10:37:25

弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于它所造成的出错几率是远远得不偿失的。

小妖女 发表于 2015-2-2 21:42:28

那么,ASP.Net有哪些改进呢?

飘飘悠悠 发表于 2015-2-8 07:11:24

代码逻辑混乱,难于管理:由于ASP是脚本语言混合html编程,所以你很难看清代码的逻辑关系,并且随着程序的复杂性增加,使得代码的管理十分困难,甚至超出一个程序员所能达到的管理能力,从而造成出错或这样那样的问题。

乐观 发表于 2015-2-24 23:16:14

Servlet却在响应第一个请求的时候被载入,一旦Servlet被载入,便处于已执行状态。对于以后其他用户的请求,它并不打开进程,而是打开一个线程(Thread),将结果发送给客户。由于线程与线程之间可以通过生成自己的父线程(ParentThread)来实现资源共享,这样就减轻了服务器的负担,所以,JavaServlet可以用来做大规模的应用服务。

谁可相欹 发表于 2015-3-7 13:52:22

asp.net最主要特性包括:◆编程代码更简洁◆网站可实现的功能更强大◆运行效率高◆节省服务器的动作资源

简单生活 发表于 2015-3-15 07:32:04

JSP/Servlet虽然在国内目前的应用并不广泛,但是其前途不可限量。

活着的死人 发表于 2015-3-21 21:22:48

ASP.Net和ASP的最大区别在于编程思维的转换,而不仅仅在于功能的增强。ASP使用VBS/JS这样的脚本语言混合html来编程,而那些脚本语言属于弱类型、面向结构的编程语言,而非面向对象。
页: [1]
查看完整版本: ASP.NET编程:ASP.NET怎样举行功能优化成绩(1)