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
賺錢方法
捕魚
主站蜘蛛池模板: 欧美精品v欧洲精品| 国产精品尹人在线观看| 久久婷婷六月| 色悠久久久| 天天色综网| 在线观看亚洲精品福利片| 91无码人妻精品一区二区蜜桃| 国产综合日韩另类一区二区| 狠狠亚洲婷婷综合色香| 无码aⅴ精品一区二区三区| 国产久操视频| 巨熟乳波霸若妻中文观看免费 | 国内精品小视频在线| 亚洲国模精品一区| 成人福利免费在线观看| 91福利片| 亚洲综合片| 亚洲精品午夜无码电影网| 丰满人妻久久中文字幕| 国产在线自揄拍揄视频网站| 午夜国产理论| 先锋资源久久| 免费一级毛片在线播放傲雪网| 国产成人亚洲精品色欲AV| 第一区免费在线观看| 精品国产网| 欧美日韩中文字幕在线| 国产精品视频系列专区| 久久午夜夜伦鲁鲁片无码免费| 亚洲资源在线视频| jizz亚洲高清在线观看| 91精品最新国内在线播放| 欧美成人免费午夜全| 97超碰精品成人国产| 一级福利视频| 亚洲国产精品无码久久一线| 国产不卡一级毛片视频| 久久久久亚洲精品成人网 | 国产真实乱人视频| 国模视频一区二区| 黄色在线不卡| 国产视频a| 色一情一乱一伦一区二区三区小说| 欧美精品另类| 日日拍夜夜操| 超薄丝袜足j国产在线视频| 中文无码精品a∨在线观看| 国产高清精品在线91| 青青草原国产av福利网站| 亚洲无码免费黄色网址| 深夜福利视频一区二区| 国产成人91精品免费网址在线| 国产成人亚洲精品无码电影| 国产精品成人一区二区不卡 | 国产精品视频猛进猛出| 五月天久久综合| 国产女人18毛片水真多1| 91麻豆国产在线| 99热这里只有成人精品国产| 国产成人亚洲综合a∨婷婷| 精品伊人久久久大香线蕉欧美| 婷婷99视频精品全部在线观看 | 五月婷婷丁香综合| 国产精品视频免费网站| 91国内在线视频| 久久精品这里只有精99品| 日本人妻丰满熟妇区| 深爱婷婷激情网| 国产精品亚洲综合久久小说| 欧美色视频日本| 亚洲成肉网| 免费无遮挡AV| 精品91自产拍在线| 欧美无遮挡国产欧美另类| 亚洲精品福利视频| 国产乱子伦精品视频| 2022国产91精品久久久久久| 在线观看亚洲天堂| 国产激情影院| 国产精品深爱在线| 不卡午夜视频| 亚洲欧美在线精品一区二区|