999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Web環(huán)境的數據訪問技術優(yōu)化研究

2010-05-13 08:46:00張志強
現代電子技術 2009年12期
關鍵詞:優(yōu)化方案

張志強

摘 要:在Web應用軟件中,需要利用ADO.NET訪問數據庫中的數據。常規(guī)的數據訪問技術因訪問的數據量較大而需消耗大量的內存空間;同時網絡中的傳輸數據也會因數據量大而占用過多的帶寬,從而使軟件的整體性能降低。為提高軟件性能,對常規(guī)的數據訪問技術進行優(yōu)化研究,提出并設計按頁為單位訪問數據的優(yōu)化方案。因該優(yōu)化方案每次訪問的數據量較小,從而有效地解決了上述問題,在實際應用中有很大的意義。

關鍵詞:Web應用軟件;ADO.NET;數據訪問技術;優(yōu)化方案

中圖分類號:TP393.09文獻標識碼:A

文章編號:1004-373X(2009)12-039-03

Optimization Research of Data Access Technology Based on Web Environment

ZHANG Zhiqiang

(College of Information Science and Technology,Chengdu University,Chengdu,610106,China)

Abstract:In Web applications,it is necessary to access database by using ADO.NET.The conventional data access technology needs to consume a large amount of memory space,because in accessing,a large amount of data is needed.At the same time,in the network,too much bandwidth can be taken up if large amounts of data are transformed,so that the software′s overall performance is lowered.To enhance the performance of software,the paper carries out an optimization research on the conventional data access technology and designs an optimization program according to the data access which takes page as the unit.As the optimization program for each access needs only a small amount of data,the above problems are effectively solved,thus the program can be expected to play an important role in practice.

Keywords:Web application software;ADO.NET;data access technology;optimization program

0 引 言

在使用ASP.NET開發(fā)Web應用軟件的過程中,前臺客戶端經常需要從后臺數據庫中訪問數據,并在客戶端顯示與維護數據。常規(guī)的數據訪問操作是利用ADO.NET從后臺數據庫中訪問數據,填充到數據集(DataSet)中的數據表(DataTable)里,并將DataTable中的數據綁定到控件(GridView)中(實際就是在網絡中傳輸數據)。 當多個客戶端從后臺數據庫中訪問的數據量非常大時,會使DataTable中的數據量很大,在服務器端和客戶端將消耗大量的內存空間存放這些數據;同時當大量的數據在網絡中傳輸時也會占用過多的網絡帶寬,從而降低了整個應用軟件的性能。為了解決上述問題,需要優(yōu)化常規(guī)的數據訪問技術,減少訪問的數據量,從而提高應用軟件的整體性能。

1 數據訪問機制

從后臺數據庫中訪問數據是利用ADO.NET數據庫訪問接口技術實現數據的讀寫。ADO.NET的前身是ADO(ActiveX Data Objects),它是Microsoft.NETFramework的主要數據庫訪問技術,為用戶建立Web應用軟件提供了統(tǒng)一、一致的數據庫接口。在Visual Studio.NET開發(fā)環(huán)境下,利用該技術,采用C#開發(fā)語言實現基于Web環(huán)境的數據庫訪問操作。ADO.NET 是為基于消息的 Web 應用軟件而設計的,通過支持對數據的松耦合訪問,可減少與數據庫的活動連接數目(即減少了多個用戶爭用數據庫服務器上的有限資源的可能性),從而實現最大程度的數據共享。ADO.NET 還通過對分布式應用程序的基本對象DataSet,支持基于 XML 的持久性和傳輸格式,以實現最大程度的數據共享。DataSet是一種關系數據結構,使用 XML 進行訪問、寫入或序列化。ADO.NET中的DataSet使得生成要求應用層與多個 Web 站點之間進行松耦合數據交換的應用軟件變得很方便。

ADO.NET提供兩種數據訪問模式;一種為連接模式(Connected),與原來的ADO相兼容;另一種為非連接模式(Disconnected),這是ADO.NET中所提供的新技術。對于非連接模式,有許多優(yōu)點,可以有效地減少數據庫的連接數,降低為維護數據庫的連接而帶來的開銷,從而可以提高軟件的性能和規(guī)模。因此很多數據庫的訪問操作都采用非連接模式來完成,這也是常規(guī)數據訪問技術所采取的方式。

非連接模式的數據訪問機制主要是從后臺數據庫中訪問數據,并填充到DataSet中的DataTable對象里。然后將DataTable對象中的數據綁定到客戶端界面的數據表示控件上進行數據顯示與維護。常用的數據表示控件有GridView控件、DataList控件等。ADO.NET非連接模式下數據訪問操作的應用結構如圖1所示。

圖1 非連接模式的數據訪問機制

2 常規(guī)的數據訪問技術

如果后臺數據庫系統(tǒng)是SQL Server 2000或SQL Server 2005,常規(guī)數據訪問技術的實現是通過SqlDataAdapter對象執(zhí)行SQL語句來訪問數據庫中的數據,并填充到DataSet中的DataTable里。最后將DataTable中的數據綁定到GridView表中顯示與維護。實現的代碼如下:

SqlConnection con = new SqlConnection("Data Source=zzq;Initial Catalog= keyanIN;Persist Security Info=True;User ID=sa;Password=123;Pooling=true");

//建立數據庫連接對象,數據庫為SQL Server 2005,User ID為設置登錄數據庫的用戶名,

//Password為登錄數據庫的密碼,pooling=true表示打開連接池。

string s = "select * from stu";//執(zhí)行SQL語句訪問數據

SqlDataAdapter da = new SqlDataAdapter(s,con);

DataSet ds = new DataSet( );//建立數據集對象

da.Fill(ds,"student"); //填充數據到數據表student中

GridView1.DataSource = ds.Tables["student"].DefaultView;

GridView1.DataBind( );//將數據表student的數據綁定到GridView1控件

為了保證連接字符串的安全性,在實際應用中連接字符串不能出現在網頁程序中,其在Web.config文件中設置;然后利用代碼完成連接字符串的讀取,并建立SqlConnection連接對象。在Web.config文件中設置連接字符串的方式如下(conn為連接字符串名):

讀取連接字符串并建立連接對象的方式如下:

SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["conn"].ConnectionString);

當一頁無法顯示完數據時,需要考慮分頁技術來完成多頁的數據顯示,采用的方法很多,例如:利用GridView控件的自動分頁技術完成分頁操作。以這種常規(guī)技術訪問數據時,當訪問的數據量很大時,DataTable中的數據會很多,需要更多的內存空間來存儲數據;將DataTable中的數據綁定到控件中顯示時,因傳輸大量數據而占用更多的網絡帶寬,從而使系統(tǒng)的整體性能降低。要改變這種狀況,采用優(yōu)化的數據訪問技術,降低每次從數據庫中訪問的數據量,從而可有效地降低內存空間的消耗和所占網絡的帶寬。

3 優(yōu)化的數據訪問技術

優(yōu)化訪問技術的主要目的是降低從數據庫中訪問的數據量。按頁為單位訪問數據庫中的數據是一個很有效的方案。其訪問的數據量遠遠小于訪問所有數據的數據量。每頁的數據量可以動態(tài)地進行調整,以適應實際的需求。實現優(yōu)化技術,需要進行2步操作,第一,確定整個數據量的頁數,以及每頁的數據索引范圍;第二,修改訪問數據的SQL 語句,以每頁的數據索引范圍為單位訪問數據。這樣就可以實現只訪問每頁指定范圍的需求數據,而不是訪問所有的需求數據。實現原理如圖2所示。

圖2 優(yōu)化的數據訪問

下面用一個實例實現優(yōu)化方案。數據庫系統(tǒng)采用SQL Server 2005,數據庫中有3個數據表Unit,Employeer,keyan,分別為學校部門表、員工表、員工科研信息表。按職工姓名查詢其所有科研信息。實現的界面設計如圖3所示。

圖3 界面設計

3.1 分頁技術的實現

3.1.1 數據記錄的獲取

為了計算數據總頁數,需獲取數據記錄的總數,因此設計GetOrdersCount方法,以實現數據記錄總數的獲取。在該方法中,以員工姓名name作為動態(tài)參數進行動態(tài)查詢,并利用SQL語句中的count聚合函數獲取數據記錄總數。

public virtual int GetOrdersCount(string qury )

{ Database d = new Database();

string k;

k = "select count(Unit.Unit_Name) from Employeer,Unit,keyan where Employeer.Unit_ID=Unit.Unit_ID and Employeer.Employeer_ID=keyan.Employeer_ID and Employeer.Employeer_Name=@name";//設計的SQL語句

SqlConnection conn = … //利用前述的技術創(chuàng)建連接對象

conn.Open( );//打開連接

SqlCommand cmd = new SqlCommand(k,conn);

cmd.Parameters.Add("@name",SqlDbType.NVarChar,10);

cmd.Parameters["@name"].Value = qury;

//創(chuàng)建了帶參數查詢的命令對象,以name為查詢參數,qury為具體的查詢值

return (int)cmd.ExecuteScalar();//返回查詢的記錄條數

}

3.1.2 頁數的計算

通過執(zhí)行GetOrdersCount方法獲取數據記錄總數,并設置每頁訪問的數據量(假設每頁訪問10條記錄,每頁的記錄數可以根據需求進行更改),從而計算出數據總頁數。計算總頁數的實現代碼如下所示。

int count = this.GetOrdersCount(qury);// qury為具體的查詢值

int PagesCount = count / 10; // PagesCount為總頁數

int temp = count % 10;

if (temp != 0)

PagesCount++; //最后一頁不足10條記錄,任然為一頁累加到總頁數中

3.2 數據訪問技術的優(yōu)化實現

3.2.1 數據訪問的優(yōu)化設計

在數據訪問層的設計中,由GetData方法實現以頁為單位的數據訪問;該方法根據數據索引范圍對數據庫進行訪問,從而極大地減少了服務器與客戶機之間傳送的數據流量。數據索引范圍由起始索引號和終止索引號組成,其中起始索引號由頁號確定;終止索引號=起始索引號+每頁數據記錄條數。在GetData方法中,以參數startRowIndex為指定的起始索引號,以參數maximumRows為每頁數據記錄條數進行SQL語句的優(yōu)化設計,通過執(zhí)行優(yōu)化的SQL語句,完成指定范圍的數據訪問。

public DataView GetData(int startRowIndex,int maximumRows,string sortExpression,string qury)

{ //查詢指定索引范圍的數據,startRowIndex為起始索引號,maximumRows為查詢的記錄條數 ,sortExpression為對結果的排序條件,qury為查詢值。

string sql = @"with keyanTable as

(select Unit.Unit_Name,Employeer.Employeer_Name,Employeer.Employeer_Degree,Employeer.Employeer_zhicheng,keyan.Keyan_content,keyan.keyan_class,keyan.Declare_time,ROW_NUMBER() OVER(ORDER BY {0}) as RowNumber

from Employeer,Unit,keyan where Employeer.Unit_ID = Unit.Unit_ID and Employeer.Employeer_ID = keyan.Employeer_ID )

select * from keyanTable where RowNumber > {1} and RowNumber <= {2} and keyanTable.Employeer_Name = ‘{3};"; //優(yōu)化后的SQL語句

if (string.IsNullOrEmpty(sortExpression))

sortExpression = "Employeer.Employeer_ID ASC";

sql = string.Format(sql,sortExpression,startRowIndex,startRowIndex + maximumRows,qury);

// startRowIndex起始索引號;startRowIndex + maximumRows為終止索引號

SqlConnection conn = ……//利用前述的技術創(chuàng)建連接對象

SqlDataAdapter da = new SqlDataAdapter(sql,conn);

DataSet ds = new DataSet();

da.Fill(ds,”Information”);

return ds.Tables[“Information”].DefaultView;//返回數據視圖

}

3.2.2 表示層的設計

在客戶端,根據指定頁確定數據索引范圍的起始索引號,起始索引號通過公式:this.GetData(int.Parse(lb2.Text)×10-10計算得出。其中,int.Parse(lb2.Text)為客戶端指定的頁號,10為每頁的記錄數;每頁的數據訪問量以每頁的記錄條數為標準。 將動態(tài)生成的數據索引范圍作為參數執(zhí)行GetData方法,實現按照指定頁的數據索引范圍訪問數據。

string qurystr = TextBox8.Text.Trim();//獲取界面上的查詢值

DataView dv = this.GetData(int.Parse(lb2.Text) * 10 - 10,10,"Employeer.Employeer_ID DESC",qurystr);

// lb2.Text為訪問的頁號值 ,10為每頁的訪問的記錄數

GridView1.DataSource = dv;

GridView1.DataBind( );

4 結 語

對數據訪問技術進行優(yōu)化后,降低了對后臺數據庫的訪問數據量,進而減少了所占內存空間的大小,降低了在網絡中傳輸的數據量。該優(yōu)化方案提高了Web應用軟件運行的性能,在實際使用時有很大的意義。

參考文獻

[1]陳建國.開發(fā)高性能ADO.NET應用程序的探討[J].福建電腦,2007(1):177-178.

[2][美]Glenn Johnson.ADO.NET 2.0高級編程[M].段超,譯.北京:清華大學出版社,2006.

[3]陳永強.SQL Server 2005 Web應用開發(fā)[M].北京:清華大學出版社,2008.

[4]王強,滕剛.微軟培訓教材[Z].2008.

[5]李昕,常革新,崔杰.基于ADO.NET的ASP.NET頁面程序[J].遼寧工程技術大學學報:自然科學版,2006,25(2):250-252.

[6]王磊.基于.NET平臺的數據庫訪問技術[J].福建電腦,2006(12):75-89.

[7]孔延香,李永忠,郭秀峰.ADO.NET數據庫訪問技術研究與實現[J].現代電子技術,2005,28(16):51-52,59.

[8]林平榮.ADO.NET的數據庫訪問技術研究與實現[J].電腦知識與技術,2008,7(1):1 198-1 201.

[9]劉瑩.基于的ADO.NET數據庫訪問技術研究[J].電腦知識與技術,2008,18(2):1 580-1 582.

[10]陳平,池同柱.ADO.NET數據訪問模式選擇及優(yōu)化[J].福建電腦,2007(7):80,72.

猜你喜歡
優(yōu)化方案
淺談業(yè)擴報裝在業(yè)務流程和制度方面的優(yōu)化方案
EPON技術在城區(qū)網絡優(yōu)化中的應用
全站儀在數字繪圖中測量方法優(yōu)化方案
科技資訊(2016年25期)2016-12-27 18:49:50
大學周邊健身房滿意度調查報告
證券行業(yè)信息系統(tǒng)安全運行問題及優(yōu)化
湖北經濟消費結構優(yōu)化研究
中國經貿(2016年20期)2016-12-20 14:06:06
山地光伏電站優(yōu)化方案研究應用與建議
加強施工項目成本管理的思路與對策
科技視界(2016年20期)2016-09-29 13:13:20
淺議超臨界機組節(jié)能改造及運行優(yōu)化方案
淺析多元化電費繳納方式的優(yōu)化探討
主站蜘蛛池模板: 国产美女在线观看| 欧美成人aⅴ| 99re热精品视频国产免费| 国产在线精品美女观看| 福利姬国产精品一区在线| 国产在线观看高清不卡| 国产网友愉拍精品视频| 视频国产精品丝袜第一页| 五月天丁香婷婷综合久久| 伊人网址在线| 午夜综合网| 久久国产精品夜色| 国产一级二级三级毛片| 国产毛片片精品天天看视频| 久久婷婷综合色一区二区| 国产成人永久免费视频| 韩日免费小视频| 中文字幕色站| 色综合a怡红院怡红院首页| 亚洲伊人久久精品影院| 热久久综合这里只有精品电影| 国产精品入口麻豆| 99九九成人免费视频精品 | 91亚洲国产视频| 亚洲第一成年网| 国产麻豆精品久久一二三| 真实国产精品vr专区| 国产高清在线丝袜精品一区| 久久精品最新免费国产成人| 在线观看亚洲精品福利片| 免费观看国产小粉嫩喷水| 国产精品视频a| 亚洲国产清纯| 亚洲天堂视频在线观看| 国产永久无码观看在线| 毛片在线区| 日韩欧美中文在线| 日韩成人在线网站| 国产不卡在线看| 色综合久久久久8天国| 欧美国产三级| 久久一级电影| 久久精品女人天堂aaa| 亚洲综合精品香蕉久久网| 成人一级黄色毛片| 91麻豆国产视频| 无码专区国产精品第一页| 黄片在线永久| 日韩美毛片| 91丝袜乱伦| 欧美一级在线| 香蕉eeww99国产在线观看| 成人中文字幕在线| 欧美啪啪视频免码| 久久亚洲美女精品国产精品| 综合天天色| 中文字幕日韩视频欧美一区| 午夜性刺激在线观看免费| 亚洲成AV人手机在线观看网站| 不卡国产视频第一页| 最新亚洲人成无码网站欣赏网| 亚洲欧美在线综合图区| 久久久国产精品免费视频| 国产女人在线| 欧美精品1区| 国产丝袜丝视频在线观看| 久久伊人操| 国产精品片在线观看手机版 | 国产视频自拍一区| 狠狠色香婷婷久久亚洲精品| 91久久偷偷做嫩草影院电| 日韩黄色精品| 日本免费a视频| 午夜电影在线观看国产1区| 91精品啪在线观看国产91九色| 国产精品无码AⅤ在线观看播放| 福利在线不卡一区| 欧美午夜网站| 91国内在线视频| 国产丰满成熟女性性满足视频| 91亚洲免费| 9999在线视频|