曾慶鑫++高永平
摘要:在如今這樣一個(gè)高速發(fā)展,科技發(fā)達(dá),信息流通快速的社會(huì)中。人們的生活變得也越來越方便,交流也越來越緊密,而產(chǎn)生的數(shù)據(jù)也越來越多。因此對(duì)數(shù)據(jù)的統(tǒng)計(jì)、分析就變得至關(guān)重要了。尤其是對(duì)于一個(gè)企業(yè)來說,如何從大量的用戶數(shù)據(jù)中快速提取到有用的信息是現(xiàn)在企業(yè)中最關(guān)心的問題之一。該文將以光伏能源租賃系統(tǒng)對(duì)數(shù)據(jù)統(tǒng)計(jì)與分析為例,來闡述如何從大量的用戶數(shù)據(jù)中更快的統(tǒng)計(jì)出所需信息的方案。該系統(tǒng)是基于.NET框架并結(jié)合SQL Server為數(shù)據(jù)庫下的管理系統(tǒng),通過IC卡來采集用戶使用太陽能的基本數(shù)據(jù),并將這些數(shù)據(jù)存入到數(shù)據(jù)庫中進(jìn)行統(tǒng)計(jì)分析。實(shí)現(xiàn)以賬戶管理、IC卡綁定充值、權(quán)限分配等模塊,以及營業(yè)廳布點(diǎn)的市場運(yùn)行模式。形成了以充值功能和采集、貯存、管理、分析和描述用戶使用太陽能情況的光伏能源租賃管理系統(tǒng)。而一個(gè)性能優(yōu)越的管理系統(tǒng)離不開好的數(shù)據(jù)分析策略,該系統(tǒng)對(duì)不同類別的客戶、卡、設(shè)備以及設(shè)備的用電量、發(fā)電量的數(shù)據(jù)進(jìn)行統(tǒng)計(jì),生成各類統(tǒng)計(jì)的圖和表。采用存儲(chǔ)過程,視圖等方法優(yōu)化統(tǒng)計(jì)過程,使系統(tǒng)的運(yùn)行速度有效的提高。
關(guān)鍵詞:數(shù)據(jù)統(tǒng)計(jì);分布式數(shù)據(jù)共享;響應(yīng)延遲;數(shù)據(jù)綁定;存儲(chǔ)過稱
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2017)04-0004-04
Statistics and Analysis Based on ADO.NET to Optimize
ZENG Qing-xin, GAO Yong-ping
Abstract: In today's society, such as high-speed development, advanced technology and fast information circulation. People's lives have become more and more convenient, more and more close communication. And the resulting data are more and more, so the data statistics, analysis becomes critical. Especially for an enterprise, how to extract from a large number of user data quickly to useful information is now one of the most concerned about the enterprise. In this paper, the energy leasing system for photovoltaic data statistics and analysis, for example, to illustrate how to quickly from a large number of user data in the statistical information needed program. The system is based on. NET framework and SQL Server database management system, through the IC card to collect the basic data of solar energy users, and these data into the database for statistical analysis. To achieve the account management, IC card binding recharge, permissions distribution and other modules, as well as operating room distribution point of the market operation mode. The formation of a recharge function and the collection, storage, management, analysis and description of the user to use solar energy situation of the photovoltaic energy rental management system. And a superior performance of the management system can not do without good data analysis strategy, the system of different types of customers, cards, equipment and equipment, electricity consumption, power generation data statistics, generate various types of statistical charts and tables, And uses the stored procedure, the view and so on the method optimization statistical process, causes the system the movement speed effectively to enhance.
Key words: data statistics, distributed data sharing, response delay, data binding, Storage process
人類對(duì)能源需求的不斷增加,而可用的能源又越來越少。煤、石油等化石能源終有一天會(huì)使用完,所以,可再生能源的發(fā)展,是把握未來的最佳行動(dòng)。發(fā)展可再生能源是大勢所趨。而太陽能是可再生能源中重要的組成部分,以其儲(chǔ)量的“無限性”、存在的普遍性、開發(fā)利用的清潔性以及逐漸顯露出的經(jīng)濟(jì)性等優(yōu)勢,是被全球各個(gè)國家大力提倡發(fā)展使用的可再生能源之一。太陽能的開發(fā)利用不但能解決能源緊缺問題,而且是治理環(huán)境污染和溫室效應(yīng)等問題的有效途徑。但對(duì)于單個(gè)家庭來說,購買太陽能設(shè)備所要發(fā)費(fèi)的費(fèi)用太高,以至于降低了人們想使用太陽能的意愿。我們根據(jù)這一現(xiàn)象,提出了租用太陽能設(shè)備給用戶使用的方案。這一方案不但解決了一個(gè)家庭支付所有費(fèi)用過高的問題,還使得太陽能設(shè)備資源能夠更加合理的分配。
但是,在這一方案中對(duì)于設(shè)備的管理就存在了不可控性。為了解決這一問題,我們開發(fā)了這套太陽能租賃管理系統(tǒng)。并使用IC卡綁定設(shè)備的方法來管理設(shè)備,我們不但可以通過IC卡來檢測設(shè)備狀態(tài),還可以通過IC卡的記錄功能,將用戶使用太陽能設(shè)備的情況存儲(chǔ)下來。為企業(yè)的市場推廣提供有力的數(shù)據(jù)支持。由于我們需要記錄每天的用戶數(shù)據(jù),所以數(shù)據(jù)集合將會(huì)非常大,數(shù)據(jù)儲(chǔ)存量也會(huì)非常的多。因此,一個(gè)好的管理方案就尤為重要了。在早期的統(tǒng)計(jì)方案中由于考慮的因素不全,對(duì)可能遇到的問題認(rèn)識(shí)不是很清。所以導(dǎo)致了系統(tǒng)運(yùn)行緩慢。所以本文會(huì)重點(diǎn)講解系統(tǒng)統(tǒng)計(jì)的優(yōu)化過程。
1 數(shù)據(jù)庫設(shè)計(jì)
通過市場的調(diào)查,我們發(fā)現(xiàn)傳統(tǒng)的租賃方案只是單一的對(duì)用戶進(jìn)行了管理統(tǒng)計(jì),而大量的設(shè)備信息沒有一個(gè)系統(tǒng)的統(tǒng)計(jì)方案。因此,我們對(duì)整個(gè)方案進(jìn)行了分析,提出了構(gòu)造三個(gè)對(duì)象以及建立了各對(duì)象間的關(guān)系模型來對(duì)進(jìn)行管理。分別是用戶,IC卡,太陽能設(shè)備這三個(gè)管理對(duì)象。并根據(jù)實(shí)際的操作和管理需要對(duì)它們建立了對(duì)應(yīng)的關(guān)系模型。對(duì)三個(gè)管理對(duì)象進(jìn)行邏輯分析,并進(jìn)行了邏輯建模,一個(gè)用戶可以擁有多張卡,每張卡只能綁定一臺(tái)設(shè)備,從而使得一個(gè)用戶可以使用多臺(tái)太陽能設(shè)備。在數(shù)據(jù)庫中,為了能夠描述各個(gè)對(duì)象之間的這種邏輯關(guān)系,我們又建立用戶-IC卡聯(lián)系表、IC卡-設(shè)備聯(lián)系表來表達(dá)三個(gè)對(duì)象的關(guān)系。再建立關(guān)系表用來記錄用戶消費(fèi)數(shù)據(jù)以及用戶的太陽能設(shè)備使用情況。由于考慮到分析的結(jié)果必須要準(zhǔn)確、全面,所以采集到的數(shù)據(jù)也必須精準(zhǔn),再結(jié)合套餐充值的情況,記錄太陽能設(shè)備的使用情況的數(shù)據(jù)必然會(huì)非常的多。綜合以上所講。數(shù)據(jù)庫關(guān)聯(lián)設(shè)計(jì)如圖1所示。
2數(shù)據(jù)統(tǒng)計(jì)
2.1統(tǒng)計(jì)方案
通過上述對(duì)數(shù)據(jù)庫設(shè)計(jì)的描述可以知道統(tǒng)計(jì)的主要數(shù)據(jù)有用戶數(shù),IC卡數(shù),太陽能設(shè)備數(shù),用戶消費(fèi)套餐情況以及太陽能設(shè)備的使用情況等。所以,我們?cè)O(shè)計(jì)了5個(gè)模塊分別對(duì)這5個(gè)方面進(jìn)行區(qū)域統(tǒng)計(jì),先選中要統(tǒng)計(jì)的區(qū)域,再選擇要統(tǒng)計(jì)對(duì)象的約束條件。再依次訪問數(shù)據(jù)庫統(tǒng)計(jì)相應(yīng)地區(qū)的數(shù)據(jù)量,然后將該地區(qū)以及所對(duì)應(yīng)的數(shù)據(jù)量綁定到統(tǒng)計(jì)圖中,最后就是將統(tǒng)計(jì)圖顯示。統(tǒng)計(jì)流程圖如圖2所示。
2.2詳細(xì)設(shè)計(jì)采用的主要技術(shù)
因?yàn)樵撓到y(tǒng)是以windows為平臺(tái),基于.NET框架的管理系統(tǒng),所以為了反映不同地區(qū)各種數(shù)據(jù)情況,以及對(duì)各地區(qū)市場規(guī)模的比較以及形勢判斷,我們分別采用了如下技術(shù)。
(1) 數(shù)據(jù)綁定技術(shù)。利用TreeView樹視圖控件綁定地區(qū)分級(jí)結(jié)構(gòu)的地區(qū)數(shù)據(jù)信息,使得管理員能更加清晰地了解區(qū)域分布情況,更有利于對(duì)區(qū)域的選擇統(tǒng)計(jì),而基于TreeView控件的分層結(jié)點(diǎn)性質(zhì)使得遍歷各個(gè)子節(jié)點(diǎn)得到選中區(qū)域的集合操作更加快速和簡單。
(2) 采用.NET框架提供的公共數(shù)據(jù)訪問服務(wù)的ADO.NET類訪問數(shù)據(jù)庫。由于ADO.NET為創(chuàng)建分布式數(shù)據(jù)共享程序提供了大量的組件,并且ADO.NET數(shù)據(jù)訪問模型既提供了保持連接的數(shù)據(jù)訪問形式,又提供了松耦合的、以DataSet對(duì)象為操作目標(biāo)的數(shù)據(jù)訪問形式,使得利用ADO.NET下的Connection,Command,DataAdapter,DataSet等對(duì)象訪問數(shù)據(jù)庫更加容易。因此,將區(qū)域集合中的區(qū)域元素結(jié)合DataSet等對(duì)象將數(shù)據(jù)庫中位于該區(qū)域的用戶數(shù),IC卡數(shù),用戶消費(fèi)套餐情況和太陽能設(shè)備使用情況統(tǒng)計(jì)出來。
(3) Chart柱狀圖控件,以柱狀圖的形式將統(tǒng)計(jì)數(shù)據(jù)顯示出來,使得各種數(shù)據(jù)的變化情況,對(duì)比情況,走勢能更好的、更直觀的表示。
3優(yōu)化
3.1出現(xiàn)的問題
在我們對(duì)系統(tǒng)進(jìn)行測試發(fā)現(xiàn),系統(tǒng)響應(yīng)延遲的問題很嚴(yán)重。以統(tǒng)計(jì)用戶人數(shù)模塊為例,在模擬統(tǒng)計(jì)我國比較發(fā)達(dá)的10個(gè)省及市共70個(gè)市50個(gè)用戶數(shù)時(shí),系統(tǒng)響應(yīng)時(shí)間是40s,也就是說,如果將統(tǒng)計(jì)的地區(qū)擴(kuò)大到全國655個(gè)市,那將要響應(yīng)6min,再加上數(shù)據(jù)的增加,系統(tǒng)的相應(yīng)時(shí)間還將增加。顯然,這對(duì)于一個(gè)數(shù)據(jù)管理系統(tǒng)是致命的,而這個(gè)問題也急需解決。如圖3顯示了系統(tǒng)加載延遲的問題。
3.2問題分析
在統(tǒng)計(jì)方案中,可以了解到通過遍歷樹形圖形成一個(gè)選中的區(qū)域集合來統(tǒng)計(jì)相應(yīng)地區(qū)的用戶數(shù),IC卡數(shù)等統(tǒng)計(jì)信息。所以,我們從約束條件、數(shù)據(jù)訪問、數(shù)據(jù)庫這三方面去分析。
(1) 地區(qū)的約束條件。也就是將選中的統(tǒng)計(jì)地區(qū)形成一個(gè)集合所用的時(shí)間。
(2) 頻繁的數(shù)據(jù)訪問。因?yàn)轭l繁的對(duì)數(shù)據(jù)庫進(jìn)行訪問,而且地區(qū)結(jié)點(diǎn)可能會(huì)有上百個(gè),甚至是成千上萬個(gè),而如此大的集合元素依次對(duì)數(shù)據(jù)庫進(jìn)行訪問從而導(dǎo)致了系統(tǒng)的反應(yīng)時(shí)間大大的減慢了,再加上網(wǎng)絡(luò)延遲,就使得系統(tǒng)響應(yīng)時(shí)間就更長了。所以,從這分析可得,數(shù)據(jù)訪問所用的時(shí)間正是導(dǎo)致系統(tǒng)嚴(yán)重延時(shí)的原因。
(3) 在數(shù)據(jù)庫方面,由于用戶信息表、用戶套餐消費(fèi)表、卡信息表、設(shè)備信息表之間都有一定的關(guān)聯(lián),所以導(dǎo)致SQL查詢語句十分復(fù)雜,使得執(zhí)行起來也就變?yōu)榫徛恕?/p>
3.3解決問題的思路
通過調(diào)查,發(fā)現(xiàn)很多優(yōu)化都是從數(shù)據(jù)庫入手,盡量將表建立的更合理。使得能很好地完成對(duì)數(shù)據(jù)的訪問。但是經(jīng)過測試發(fā)現(xiàn),上述問題分析中的第一個(gè)因素影響還是較小的,主要還是后兩個(gè)因素,且這兩個(gè)因素對(duì)統(tǒng)計(jì)的影響都是比較嚴(yán)重的。所以,解決問題的思路主要是兩點(diǎn):
優(yōu)化數(shù)據(jù)庫。對(duì)數(shù)據(jù)庫進(jìn)行分析,發(fā)現(xiàn)在統(tǒng)計(jì)數(shù)據(jù)時(shí)有很多數(shù)據(jù)項(xiàng)是相同的,這就使得在數(shù)據(jù)庫中就能將它們合并。并將各個(gè)表中所需的數(shù)據(jù)合并成一個(gè)視圖,在創(chuàng)建相應(yīng)的返回?cái)?shù)據(jù)的存儲(chǔ)過程。
減少數(shù)據(jù)的訪問量??梢愿倪M(jìn)對(duì)訪問數(shù)據(jù)庫的方式,讓一次訪問數(shù)據(jù)庫所獲得的數(shù)據(jù)更加合理。這樣就能盡量減少對(duì)數(shù)據(jù)庫的訪問次數(shù),減少訪問周期和網(wǎng)絡(luò)延時(shí),使得系統(tǒng)反應(yīng)時(shí)間大大減小。
3.4優(yōu)化方案
優(yōu)化方案是對(duì)上面提到的解決問題思路的一個(gè)具體的實(shí)現(xiàn)過程,所以優(yōu)化方案還是從上面講到的兩個(gè)方面來去具體實(shí)施:
3.4.1數(shù)據(jù)庫的具體優(yōu)化
3.4.1.1采用的主要技術(shù)
創(chuàng)建視圖。因?yàn)槲覀冊(cè)诮y(tǒng)計(jì)的時(shí)候并不需要所有的屬性信息。因此,我們?yōu)槊總€(gè)在統(tǒng)計(jì)時(shí)會(huì)涉及的表建立一張視圖,視圖中的數(shù)據(jù)可以來這一張表也可以來自多張表,這取決于在統(tǒng)計(jì)時(shí)需要統(tǒng)計(jì)的因素。而視圖是一張?zhí)摫硭⒉皇且詳?shù)據(jù)值存儲(chǔ)集形式存在,它的內(nèi)容是由查詢定義的,并且視圖中的數(shù)據(jù)是在應(yīng)用視圖時(shí)動(dòng)態(tài)生成。所以,視圖的作用就類似于篩選,從而達(dá)到了將數(shù)據(jù)表中重疊的數(shù)據(jù)進(jìn)行疊加的作用。而視圖也是一種安全機(jī)制,使得視圖關(guān)聯(lián)的基礎(chǔ)表更安全。
3.4.1.2具體樣例
以對(duì)統(tǒng)計(jì)用戶數(shù)為例。在用戶信息表上建立一張用戶信息視圖,將其中的用戶名、用戶ID和以管理員信息和用戶地址信息進(jìn)行聚合形成視圖。從而將50條的數(shù)據(jù)聚合為10幾條的視圖數(shù)據(jù)。如圖4顯示創(chuàng)建的視圖
3.4.2數(shù)據(jù)訪問的具體優(yōu)化
3.4.2.1采用的主要技術(shù)
DataSet訪問技術(shù)。因?yàn)镈ataSet是一種可以看作為駐留在客戶端的小型數(shù)據(jù)庫,與特定的數(shù)據(jù)庫無關(guān),讓對(duì)數(shù)據(jù)的操作更方便。我們利用DataSet對(duì)象將視圖中的數(shù)據(jù)一次性全部取出來,再在系統(tǒng)內(nèi)部進(jìn)行統(tǒng)計(jì),使得訪問數(shù)據(jù)庫的次數(shù)大大降低,從而有效地提升了系統(tǒng)的響應(yīng)速度,但根據(jù)之前說的將全部數(shù)據(jù)一次性取出又會(huì)帶來執(zhí)行效率的降低。所以有如下第二個(gè)優(yōu)化技術(shù)。
創(chuàng)建存儲(chǔ)過程,優(yōu)化系統(tǒng)對(duì)數(shù)據(jù)庫訪問的語句。因?yàn)樵趫?zhí)行對(duì)數(shù)據(jù)庫的查詢語句時(shí)是逐條進(jìn)行查詢的,所以有比較復(fù)雜的Transact-SQL程序時(shí)網(wǎng)絡(luò)上會(huì)產(chǎn)生大量的流量,在網(wǎng)速不好的情形下就會(huì)嚴(yán)重影響系統(tǒng)的響應(yīng)速度。因此,儲(chǔ)存過程就成為又一個(gè)解決問題的關(guān)鍵。采用存儲(chǔ)過程將提取視圖的SQL語句在創(chuàng)建時(shí)就對(duì)其進(jìn)行編譯、分析,優(yōu)化后存儲(chǔ)到服務(wù)器中,這樣光伏能源租賃系統(tǒng)需要提取視圖數(shù)據(jù)的應(yīng)用程序時(shí)就可以直接調(diào)用內(nèi)存中的代碼執(zhí)行。這樣就有效地減少了網(wǎng)絡(luò)流量,使得執(zhí)行效率更高。如圖5顯示了優(yōu)化的效果。
3.4.2.2具體樣例
在對(duì)統(tǒng)計(jì)用戶數(shù)據(jù)時(shí),用DataSet訪問技術(shù)、存儲(chǔ)過程一次性的將視圖數(shù)據(jù)返回給系統(tǒng)以數(shù)組的方式存儲(chǔ)下來。因?yàn)樵诳蛻舳松蠈?duì)數(shù)據(jù)進(jìn)行統(tǒng)計(jì)是要比不斷訪問數(shù)據(jù)庫進(jìn)行統(tǒng)計(jì)的速度快得多的,從而達(dá)到“空間”換“時(shí)間”的效果,加快了統(tǒng)計(jì)速度。最后,將原來的40s的響應(yīng)時(shí)間降低到1s以內(nèi),從而使得系統(tǒng)統(tǒng)計(jì)效率有效地提高了。如圖5展示了效果圖。
4 結(jié)束語
在大數(shù)據(jù)時(shí)代的背景下,是需要具有更強(qiáng)的流程優(yōu)化能力去分析和統(tǒng)計(jì)海量、多樣性的信息數(shù)據(jù)。本文講述了如何去實(shí)現(xiàn)數(shù)據(jù)的高效統(tǒng)計(jì)和流程的有效優(yōu)化,充分發(fā)揮了數(shù)據(jù)的價(jià)值。也為企業(yè)的數(shù)據(jù)統(tǒng)計(jì)和分析提供了一個(gè)好的思路。
參考文獻(xiàn):
[1] 毛亮. 我國發(fā)展太陽能光伏發(fā)電的必要性及技術(shù)分析[J].科技傳播,2011(20).
[2] 孟小峰,周龍?bào)J,王珊. 數(shù)據(jù)庫技術(shù)發(fā)展趨勢[J].軟件學(xué)報(bào),2004(12).
[3]喬梅.基于粗糙集和數(shù)據(jù)庫技術(shù)的知識(shí)發(fā)現(xiàn)與推理方法研究[J].天津大學(xué),2005.
[4] 江凌,楊平利,楊梅,袁媛. 基于ADO.NET技術(shù)訪問SQL Server數(shù)據(jù)庫的編程實(shí)現(xiàn)[J].現(xiàn)代電子技術(shù),2014(8).
[5]張建成,李春青. 基于.NET環(huán)境下ADO.NET訪問數(shù)據(jù)庫技術(shù)的研究[J].電腦知識(shí)與技術(shù),2009(22).
[6]李芬,陳正洪,何明瓊,等.太陽能光伏發(fā)電的 現(xiàn)狀及前景[J].水電能源科學(xué),2011,29(12):188-192.
[7]高永平,易萬程,張軍.分布式國防動(dòng)員對(duì)象系統(tǒng)的研究與開發(fā)[J].科技廣場,2005(10):106-108.
[8]Gao Yongping.Design and Implementation of multiple linked lists sharing the same memory[J]. Advaned Materials Research,2013(1):1936-1940.
[9]閆旭,淺談SQL Server數(shù)據(jù)庫的特點(diǎn)和基本功能[J].價(jià)值工程,2012(22).
[10]王愛平,王占鳳,陶嗣干,燕飛飛.數(shù)據(jù)挖掘中常用關(guān)聯(lián)規(guī)則挖掘算法[J].計(jì)算機(jī)技術(shù)與發(fā)展, 2010,20(4):105-108.