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

ASP.NET大數據分頁效率研究

2016-12-13 07:23:02周端鋒李科峰
長春師范大學學報 2016年10期
關鍵詞:方法

周端鋒,李科峰

(湖南第一師范學院現代教育技術中心,湖南長沙 410205)

?

ASP.NET大數據分頁效率研究

周端鋒,李科峰

(湖南第一師范學院現代教育技術中心,湖南長沙 410205)

大數據分頁顯示是常用的ASP.NET數據顯示方式,不同的多頁數據加載顯示方法的效率有很大的區別。本文分析了數據源、存儲過程、外層查詢指定頁、內層查詢指定頁四種方法的大數據分頁效率,并對翻頁時間、安全性進行初步的比對研究,指出了大數據分頁的最優效率方法。

ASP.NET;大數據;分頁;效率

隨著云計算、物聯網等快速的發展,數據呈現爆炸式的增長,人們正被數據洪流所包圍,大數據的時代已經到來[1]。WEB應用從數據庫中讀取數據,再把這些數據以合適的多頁的方式呈現給用戶。很顯然,不同的多頁數據加載顯示方法需要加載的時間大不相同,且對服務器、網絡及用戶終端的性能要求有很大的區別,因此有必要研究不同的數據分頁技術之間的效率性能差別。

1 運行環境與測試準備

在測試中采用Oracle 10g數據庫,計算機硬件為RAM 3.42G/CPU Intel i5-4590,Windows732位,7200轉硬盤。

建立五張測試表,測試表中有兩個字段及并建立索引,數據量從1000條到1000萬條呈數量級增加。使用PL/SQL語句插入多條數據[2],例如一次插入1000條數據:

Declare i int:=1;Begin loop

insert into zdftest3(id,msg) values(i,’中華...!’);

exit when i=1000;i:=i+1;end loop;end;

2 ASP.NET常用的數據分頁技術

ASP.NET是微軟的一種網站開發技術,具有性能好、可擴展性強及易學易用等特點,現有大量基于ASP.NET技術構架的網站。在顯示大量數據的數據表時一般使用多頁的方式,這種多頁的顯示方式就是分頁技術。在ASP.NET中分頁技術有多種,可以分為:使用SQL語句選出所有記錄再使用內置GridView控件分頁;使用SQL語句選擇當前頁記錄再使用Repeater手工分頁;使用存儲過程分頁由于存儲過程讀取數據算法非常靈活,因此使用存儲過程分頁算法效率也有區別。

2.1 使用控件分頁

在ASP.NET中,最簡單、最常用的數據分頁方法是使用DataSource控件與GridView控件結合進行分頁。使用DataSource可以連接多種數據庫,將讀取數據的PL/SQL語句寫在ASP.NET的窗體頁面之中,支持數據分頁顯示、排序、修改和刪除,普遍適用于初學者。使用Oracle 10g數據庫,控件分頁測試1000條到1000萬條數據,每頁顯示50條數據進行分頁的響應時間,讀取三次取平均值取三位小數,測試結果在表1的方法1中。

表1 數據分頁響應時間 秒

2.2 使用PL/SQL游標存儲過程分頁

使用存儲過程讀取數據,是將查詢語句放到數據庫存儲過程中結合顯式或隱式游標讀取數據,然后使用ASP.NET的內置控件進行分頁顯示。這種方式讀取數據在使用參數查詢時安全性較高,但是讀取速度與直接使用PL/SQL語句沒有本質的區別,在數據量較大時讀取速度低于直接使用SQL語句。

此兩種讀取數據方式在數據量達到1000萬條時報內存溢出錯誤,也就是說,這兩種方法的思路在于一次讀取全部數據再進行分頁顯示,計算機無法處理全部數據并分頁顯示導致錯誤出現。測試結果在表1的方法2中。

2.3 使用Repeater和PL/SQL的rownum讀到指定頁數據(外層查詢)

Oracle數據庫的PL/SQL中使用rownum可以讀取指定的數據,其功能與SQLServer等數據庫中的select top相似。要讀取1萬條數據在某分頁表中以每頁50條數據進行顯示,使用PL/SQL讀取要顯示當前頁的50條數據,結合Repeater進行顯示,使用帶參數的URL指定翻頁參數,根據總頁數及當前頁計算并顯示頁碼。

例如,使用PL/SQL語句讀取第5頁的典型寫法為:select id,msg from (select rownum as rn,id,msg from zdftest4order by id ) where rn>50*4and rn<=50*5,在這里需要按指定的字段進行排序必須使用子句,不使用子句排序會出現結果排序錯誤。

此種方法克服了前兩種方法中的一次讀取全部數據的處理和分頁顯示慢的問題,其核心是使用PL/SQL語句在所有記錄中選取當前頁的數據。使用分頁讀取方式大大節省了讀取數據時間,1000萬條也可以進行數據分頁顯示。測試結果在表1的方法3中。

2.4 使用Repeater和PL/SQL的rownum讀到指定頁數據(內層查詢)

在Oracle優化模式CBO下,可以將外層的查詢推到內層查詢中,大幅提高大數據模式下的查詢效率。與方法3中的外層查詢比較,可以看出內層查詢是從當前頁及當前頁之前頁的數據記錄中讀取當前頁的數據,查詢上限被推送到內層查詢中大大減少查詢結果。

這種內層查詢的典型方法為:Select * from (select id,msg,rownum as rn from(select * from zdftest3order by id )where rownum<=50*5) where rn>50*4。

測試結果在表1的方法4中,表1中的時間為靠近首頁的讀取顯示時間,從1000萬條數據讀取分頁顯示時間來看,較前三種方法響應時間大幅度地減少。

使用內層查詢靠前頁的數據時,內層查詢上限數據小所以查詢速度快,查詢靠尾頁的數據時內層查詢上限數據大導致查詢速度大幅下降。例如每頁顯示50條數據在顯示第1000頁的數據時查詢上限為:rownum<=50*1000,而在顯示第20萬頁的數據時查詢上限為:rownum<=50*200000,因此內層查詢的數據分頁方法有必要測試讀取靠近首頁與靠近尾頁的速度變化值。測試107條/20萬頁數據查詢讀取不同頁的時間取三位小數見表2。

從測試結果可以看出,內層查詢顯示近首頁的分頁數據時比外層查詢快很多,但是顯示近尾頁的數據時響應時間與外層查詢接近,也就是說,內層查詢的最快頁顯示時間是外層查詢的1/40,最慢頁顯示速度與外層查詢相同。很顯然,在顯示20萬頁的數據時,作為用戶來說查看前100頁的數據機會比查看最后100頁數據的機率要大得多,用戶體驗也更優。

表2 內層查詢讀取不同頁的響應時間 秒

3 分頁對比

經過測試四種基本分頁方法可以看出,在數據量達到100萬條或更多時,不同的讀取分頁方式的速度區別非常大。方法1和方法2有相似的響應時間,其實這兩種方法都是用SQL一次讀出所有數據再分頁顯示出來;方法3只是在所有記錄中讀出當前頁的50條數據,較前兩種方法響應時間大幅度減少;方法4的思路是在當前頁及前頁的所有記錄中讀出當前頁50條數據,因此讀取靠近首頁的數據速度幾乎與記錄條數無關,但是靠近尾頁讀取數據速度與方法3相近。

3.1 分頁時間

分頁時間是指用戶第一次加載分頁數據并顯示頁碼所用的時間。可以明顯看出,在大數據分頁時,一次讀取所有數據再進行分頁的時間較長,甚至不能讀出數據;而使用Repeater和PL/SQL的rownum讀到指定頁數據(內層查詢)是最優方案,讀取數據的速度是其它方案的幾倍到幾十倍。

3.2 翻頁時間

翻頁時間是指用戶通過多頁數據顯示的頁碼,從當前頁切換到其它要顯示頁所用的時間。方法1、方法2和方法3所使用的翻頁時間與分頁時間是一樣的,但是第4種方法翻頁時間會隨頁碼的增加而增加,除最后一頁翻頁時間與方法3相近,其它翻頁所用的時間最少,但是用戶加載數據、查看數據大多在前數十頁,無疑方法3的用戶體驗遠遠優于其它方法。因此,從翻頁時間來看,方法3是這四種方案中最好的一種。

3.3 安全性

數據安全是WEB安全的重要要求之一,使用SQL語句讀取數據時可能存在安全漏洞。統計表明,在互聯網的WEB服務器遭受的各類應用層攻擊中,SQL注入占有極大的比例[3]。因此,在使用SQL語句查詢時一定要使用參數查詢而不能使用組裝的SQL語句。如果使用方法2中存儲過程的參數查詢,再結合方法4內層指定頁查詢,才是最快和最安全的查詢方式。

[1]孟小峰,慈祥.大數據管理:概念、技術與挑戰[J].計算機研究與發展,2013(1):146-169.

[2]王海亮.精通Oracle 10g SQL和PL/SQL[M].北京:中國水利水電出版社,2007.

[3]周敬利,王曉鋒,余勝生,等.一種新的反SQL注入策略的研究與實現[J].計算機科學,2006(11):64-68.

Research on the Big Data Paging Efficiency of ASP.NET

ZHOU Duan-feng,LI Ke-feng

(Hunan First Normal University,Changsha Hunan 410205,China)

Paging display is commonly used in ASP.NET,there is a big difference between the different paging display method. In this research,a comparative analysis of paging efficiency with data source,stored procedure,outer query to specified page and inner query to specified page.And also comparative analysis of paging time and paging security,pointed out a best method for big data paging in ASP.NET.

ASP.NET;big data;paging;efficiency

2016-04-25

湖南第一師范學院科研課題資助項目“校園網站數據訪問性能與安全研究”(XYS14N11);湖南第一師范學院科研課題資助項目“基于新媒體環境的移動學習模式研究”(XYS15N07)。

周端鋒(1978- ),男,講師,從事WEB程序研究。

TP311

A

2095-7602(2016)10-0059-03

猜你喜歡
方法
中醫特有的急救方法
中老年保健(2021年9期)2021-08-24 03:52:04
高中數學教學改革的方法
河北畫報(2021年2期)2021-05-25 02:07:46
化學反應多變幻 “虛擬”方法幫大忙
變快的方法
兒童繪本(2020年5期)2020-04-07 17:46:30
學習方法
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
最有效的簡單方法
山東青年(2016年1期)2016-02-28 14:25:23
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
賺錢方法
捕魚
主站蜘蛛池模板: 日韩精品毛片| 中日韩欧亚无码视频| 亚洲高清无码久久久| 欧美一级在线看| 国产成人精品日本亚洲77美色| 另类专区亚洲| 91久久偷偷做嫩草影院| 欧美日韩亚洲综合在线观看| 国产无码高清视频不卡| 日韩成人在线一区二区| 欧美a在线看| A级毛片无码久久精品免费| 国产成人综合亚洲网址| 国产成人一区在线播放| 高清无码手机在线观看| 国产精品美女自慰喷水| 国产v精品成人免费视频71pao| 毛片免费在线视频| 麻豆a级片| 欧美a级完整在线观看| 毛片在线播放a| 国产无遮挡猛进猛出免费软件| 日本黄色a视频| 国产精品视频3p| 国产成人精品日本亚洲| 欧美成人午夜视频| 孕妇高潮太爽了在线观看免费| 2020国产精品视频| 无码中文字幕乱码免费2| 精品成人免费自拍视频| 国产91九色在线播放| 99er这里只有精品| 制服丝袜国产精品| 日本国产精品一区久久久| 国产微拍精品| 亚洲精品中文字幕午夜| 九九久久精品免费观看| av尤物免费在线观看| a免费毛片在线播放| 中文字幕亚洲精品2页| 色综合天天操| 丁香六月激情综合| 亚洲无线视频| 美女潮喷出白浆在线观看视频| 久久综合成人| 视频一区视频二区日韩专区| 国产欧美日韩va| 日本福利视频网站| 国产精品第页| 成人中文在线| 性喷潮久久久久久久久| 99久久无色码中文字幕| 精品乱码久久久久久久| 亚洲国产成人麻豆精品| 日本免费精品| 欧美日韩一区二区在线免费观看| 四虎影视永久在线精品| 婷婷色一二三区波多野衣| 亚洲高清在线天堂精品| 成人毛片免费在线观看| 欧美日韩国产在线人成app| 日韩无码黄色| 毛片久久久| 国产女人在线| 中文纯内无码H| 成年人国产视频| 国产精品毛片一区视频播| 国产精品亚洲专区一区| 亚洲无码A视频在线| 国产高清在线观看91精品| 国产微拍一区二区三区四区| 亚洲午夜国产精品无卡| 欧洲一区二区三区无码| 亚洲欧洲日韩久久狠狠爱| 久久久久青草大香线综合精品| jizz在线免费播放| 亚洲 欧美 偷自乱 图片| 天堂网国产| 不卡的在线视频免费观看| 久久精品91麻豆| 久久国产香蕉| 97在线免费|