
外文翻译--数据在ASP.NET中绑定的表现实证研究.docx
32页附件 1:外文资料翻译译文数据在ASP.NET 中绑定的表现实证研究 Web应用程序 托尼·斯托扬诺夫斯基,马尔科,和伊万沃立诺夫 信息学,欧洲大学,斯科普里,马其顿共和国摘要开发 Web 应用程序时,大多数开发人员使用 ASP.NET 服务器控件的默认属性 ASP.NET Web 应用程序通常使用服务器控件来提供动态网页和数据绑定服务器控件来显示和维护数据库中的数据虽然默认的属性允许用于快速创建可行的应用程序,创建一个高性能,多用户,以及可扩展的 Web 应用程序,需要仔细配置的服务器控件及其使用增强定制代码在提供普遍需要的功能在数据驱动的 ASP.NET Web 应用程序,如分页,排序和筛选,我们的实证研究评估了各种技术方法的影响:在 Web 服务器控件自动数据绑定,数据分页和Web 服务器上的排序,分页和排序的数据库服务器上,索引和非索引数据库中的列; 聚集与非聚集索引该研究观察到的各种技术 approaches.Index 术语之间显著的性能差异 - Web 应用程序,可扩展性,数据库访问1.介绍在过去的几年中,我们正在观察的 Web 应用程序这是一个后果因素:零客户端安装,服务器,功能强大的开发工具,不断增长的用户群等。
此外,竞争和快速变化和不断增长的用户为 Web 应用快速发展的需求微软的 Visual Studio ( MVS )是当今的主流网络应用程序开发环境 MVS 提供了许多机制,以支持 ASP.NET 应用程序的快速开发大多数开发人员倾向于默认的 ASP.NET机制:页面缓存,在 HTTP (会话,饼干,隐藏的 HTML 控件等) ,数据管理,以及 ASP.NET 服务器控件它可以说是最显著推动者的引进已发展快速发展虽然这些机制和 ASP.NET 服务器控件可以显著降低应用程序的“上市时间” ,同时他们可以减少 Web 应用程序的性能和可伸缩性的是影响 Web 应用程序的响应时间的因素分析是一个活跃的研究领域[ 1 ] 在本文中,我们证明,以提高 Web 应用的性能和可扩展性添加自定义程序逻辑到 ASP.NET 服务器控件的重要性这里我们把重点放在数据绑定机制,也就是所使用的机制,以保持和显示数据其他机制,如数据更新, PAG 缓存,数据缓存,状态管理等,都留给未来的工作在这里,我们讨论了以下研究问题: 这是寻呼机制的影响响应时间? 什么是指数对响应时间的影响排序和分页的结果什么时候 这是响应时间的依赖数据库记录数? 什么情况下,当它是更好地使用 ASP.NET 服务器控件?什么时候最好使用自定义存储过程获取,分类和 分页的结果?我们的论文的概要如下。
在第 2 节,我们在解释数据的基础知识在ASP.NET 应用程序结合,如何分页 用于切割的开支用于获取和显示 数据和排序的一些字段中的数据在第 3 节 我们解释我们的测试环境和 测试方法测试环境是起诉测量各种 ASP.NET 的响应时间 它实现各种方法,数据页 抓取和显示第 4 节中,我们将解释 结果从试验在第 5 节总结了纸并概述进一步研究数据绑定在 ASP.NET 中的应用当使用像 GridView 控件 ASP.NET 数据绑定控件显示数据库中的数据,最快的方法是将数据绑定控件绑定一个数据源控件,该控件连接到数据库并执行查询当使用这种情况下,数据源控件自动从数据库服务器[2]得到的数据,并在数据绑定控件中显示它数据源控件从数据库服务器获取数据的页面生命周期的 Page.PreRender 事件发生后[3]Figure 1. Communication between a data-bound control and a database through a data-source control这是一个用于在数据 sourcecontrol 束缚与数据库中的代码" SelectCommand="usp_autoDataBinding" SelectCommandType="StoredProcedure"/>Following code connects a GridView control with the data-source control.…显示在数据绑定控件中的数据的另一种方法是让在页面比如 LoadEvent 的数据,将其存储在一个数据集对象,然后将数据绑定控件绑定到数据集。
我们不expectsignificant 两种情况之间的差异在执行时间,因为缓慢的原因的响应时间(显著量传输的数据,没有使用数据库索引等)存在于这两种情况下面的代码显示在 GridView 控件如何填充在页面 Load 方法SqlConnection connection = new SqlConnection(connString);SqlCommand cmd = new SqlCommand("usp_autoDataBinding", connection);cmd.Connection = connection;cmd.CommandType = CommandType.StoredProcedure;DataSet ds = new DataSet();SqlDataAdapter sda = new SqlDataAdapter(cmd);sda.Fill(ds);DataView dv = new DataView(ds.Tables[0]);dv.Sort = orderBy;GridView1.PageIndex = pageNumber;GridView1.DataSource = dv;GridView1.DataBind();The variables orderBy and pageNumber are taken from the query string (explained in Section 3). Following stored procedure is used to query the data from the databaseCREATE PROCEDURE [dbo].[usp_autoDataBinding]ASBEGINSELECT * FROM testTableEND代码 1。
查询返回的所有数据从一个数据库当有大量的记录中的网页来显示,这是一种常见的做法,以显示记录只有有限数量的(记录的页面) ,并允许用户通过记录的页面浏览,即用“数据分页“ 数据绑定控件如 GridView 可以使用自动提供的机制,在数据绑定和数据源控件的排序和分页[ 2 ] 首先,数据源控件获取数据库中的所有数据(见代码 1 ) ,然后将 ASP.NET 数据绑定控件负责将数据集进行排序并显示只有少数的记录足以装满一个页面例如,一个数据集可以包含数百万条记录,而这些记录只有 10 一个网页显示这种方法提出了两个问题:(一)大量数据库服务器和Web 服务器(在一个多服务器部署方案是占主导地位的生产环境)之间传输的数据; ( ii)并无显著消耗 CPU 和内存资源,以大型数据集进行排序显然,这些问题对性能和这些问题的冲击伸缩性显著的负面影响可以通过减小通过网络发送的数据量,以及减少资源的消耗被减少人们需要编写自定义 SQL 存储过程的排序,并且仅返回将要显示在网页的记录因此,网络的消耗减少,并且在数据库服务器获取的责任进行排序和页的记录有很多方法可以实现一个存储过程,可以页面和结果进行排序我们使用下列操作之一:CREATE PROCEDURE [dbo].[usp_selectGridViewOrderByID]@pageNumber int,@PageSize int = 10ASDECLARE @Ignore intDECLARE @LastID intIF @pageNumber > 1BEGINSET @Ignore = @PageSize * @pageNumberSET ROWCOUNT @IgnoreSELECT @LastID = ID from testTable ORDER BY ID ASCEND ELSEBEGINSET ROWCOUNT @PageSizeSET @LastID = 0ENDSET ROWCOUNT @PageSizeSELECT * FROM testTable WHERE ID > @LastID ORDER BY ID ASC代码 2。
它支持自定义数据排序和分页 SQL 存储过程此存储过程在逻辑上划分的纪录从成大小的记录页面,并返回该记录页面与页码记录由该存储过程的现场ID解释在字段ID使用索引和索引的类型极大地下令:聚集或非聚集[4]通过使用索引的数据结构,我们可以显著提高需要获取信息的预期取决于下列参数的响应时间主要区别时间: 记录在数据库中数 当分页和排序是由 ASP.NET 完成,或在 SQL 存储过程 数据库索引 不同的部署方案 这些方案基于先前的参数将在我们的测试环境中进行测试测试方法对于我们的测试环境中,我们使用惠普 550 笔记本采用以下特点: 处理器:英特尔(R)酷睿(TM)2 双核处理器 T5470@1.60 GHz 的 内存:2.00 GB 操作系统:Windows 7 专业版 32 - 位 Internet 信息服务(IIS)版本 7.5.7600.16385 Visual Studio 2010 旗舰 SQL Server 2008 速成版(仅使用 1GB 内存) 对于测试环境,我们建立了一个网页 应用程序有三个网页 - 一个用于每个 数据绑定,分页和排序的方法 在第 2 节所述。
测试数据库,命名为 testdatabase 有一个名为 TestTable 的一个表该 数据库中有五个字段表中的记录是填充了随机的值网页使用 GridView 控件来显示从数据库返回的数据每个网页使用不同的机制来绑定 GridView 控件与数据,并进行排序和页面的数据排序字段和页号被传递到网页中的 HTTP 请求的查询字符串我们还创建了发送 HTTP 请求到IIS Web 服务器一个 Windows 应用程序对 HTTP 请求的查询字符串中包含一个随机选择的页号,以及排序字段在测试环境中的 HTTP 请求我们感兴趣的是处理 Web 服务器上的 HTTP 请求所需的时间请求的页面查询数据从 SQL Server 表我们使用 ASP.NET 跟踪,以确定何时在页面生命周期的某些事件发生时,也就是说,起点和终点在页面处理启动定时器在Page_Init 事件和结束定时在 Page_SaveStateComplete 事件,这是Page_PreRender 事件之后当请求被发送到 ASP.NET ,翻动书页从查询字符串获取变量,因此选择哪个存储过程使用网页是负责记录在一个文本文件中的响应时间,而这些时间测量后分析。
第一页使用自动数据绑定( ADB) 页面包含一个 GridView 控件,分页和排序允许的控制填充了一个存储过程从数据库中获取所有记录作为代码1,第二页填充 GridView 控件具有相同的存储过程调用的第一个页面,但这次我们填充 GridView 控件在 Page_Load 事件处理程序,而不是 Page_preRender 事件第三页之后,会使用一个自定义的存储过程(见代码 2)查询结果该存储过程对结果进行排序的 SQL 服务器,并且只返回将在该网页显示出来的记录主要结果在图 3 - 图 5 中,我们表明的结果时,该数据表具有 1.000.000 记录每一个数字代表前面提到的网页之一,并在每一页有三种类型的结果,这取决于哪个字段被用来对结果进行排序此时,表 TestTable 的无指数每个网页和相应的排序和。
