久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁技術(shù)文章
文章詳情頁

提高DB2 Web程序性能5條規(guī)則(1)

瀏覽:7日期:2023-11-10 19:41:37
速度和可升級性是網(wǎng)絡(luò)開發(fā)重要的性能要求,而且它們也不難達(dá)到。應(yīng)用一些簡單的規(guī)則會提高網(wǎng)絡(luò)應(yīng)用的性能。在本文中,您將了解到使用Borland® C#Builder和IBM® DB2®通用數(shù)據(jù)庫(UDB)8.1開發(fā)快速M(fèi)icrosoft® ASP.NET Web應(yīng)用程序的5條規(guī)則。分析Web應(yīng)用程序的性能需要利用一些手段來檢測每個(gè)操作的性能。為此,我創(chuàng)建了一個(gè)TimeDiff類(見程序清單1),它可以計(jì)算數(shù)據(jù)庫操作的用時(shí)。你可以利用TimeDiff類的檢測結(jié)果作為衡量數(shù)據(jù)庫操作性能的基準(zhǔn),來觀察哪些操作最為有效。我還創(chuàng)建了一個(gè)配合TimeDiff 類使用的LOTSOFRECORDS表(見程序清單2),它包含10,000條記錄,你可以通過對它的操作來觀察不同技術(shù)之間的性能差異。DB2具有內(nèi)部緩沖池,一旦運(yùn)行一個(gè)查詢,內(nèi)部緩沖池啟用,因此二次查詢的速度較快。在檢測查詢速度時(shí),請忽略緩沖池啟用前的結(jié)果而采用啟用后的結(jié)果。程序清單1. TimeDiff類using System;namespace Effeciency{ /// /// 這個(gè)類用于時(shí)間計(jì)算。在例子中, /// 我們將利用它檢測數(shù)據(jù)庫操作的速度, /// 以便作性能上的比較。 ///public class TimeDiff{ DateTime StartTime; DateTime EndTime; public TimeDiff() {} public void Start() { StartTime = DateTime.Now; } public void Stop() { EndTime = DateTime.Now; } public string TimeDifferenceText { get { TimeSpan TimeDifference = EndTime - StartTime; return TimeDifference.ToString(); } }}} 123下一頁 程序清單2. LOTSOFRECORDS的表定義CREATE TABLE "GLENN "."LOTSOFRECORDS" ("KEYCOL" INTEGER NOT NULL ,"COL1" CHAR(50) ,"COL2" CHAR(50) ,"COL3" CHAR(50) ,"COL4" CHAR(50) ,"COL5" CHAR(50) ,"COL6" CHAR(50) ,"COL7" CHAR(50) ,"COL8" CHAR(50) ,"COL9" CHAR(50) ,"COL10" CHAR(50) )IN "USERSPACE1" ;COMMENT ON TABLE "GLENN "."LOTSOFRECORDS" IS 'Table designed to Contain Lots of Records';-- DDL Statements for primary key on Table "GLENN "."LOTSOFRECORDS"ALTER TABLE "GLENN "."LOTSOFRECORDS"ADD CONSTRAINT "CC1058255334652" PRIMARY KEY("KEYCOL");下面,我們就開始介紹這些提高DB2 UDB Web 應(yīng)用程序性能的規(guī)則。我會先介紹提高數(shù)據(jù)庫性能的基本規(guī)則,然后列出一些適合以Borland Data Provider開發(fā)ASP.NET應(yīng)用時(shí)的性能規(guī)則。規(guī)則1:按需檢索假如你只能記得住一條規(guī)則,那一定要記住這一條:按需檢索。假如你是“幸存者電視節(jié)目的忠實(shí)觀眾,您會記得其中的參賽者通過限額分配來保證每個(gè)人都有充足的食物。這種做法對于數(shù)據(jù)庫開發(fā)同樣適用。假如你的應(yīng)用程序能夠按需運(yùn)行,那么就會合理地將數(shù)據(jù)庫和網(wǎng)絡(luò)資源留給其他應(yīng)用。這聽起來很簡單,但我們還是來看一個(gè)例子。 上一頁123下一頁 假設(shè)有一個(gè)包含10,000 行記錄和10 個(gè)字段的表,以及一個(gè)需要顯示所有記錄但只顯示3個(gè)字段的Web頁。很多開發(fā)者經(jīng)常圖省事而使用"select *"語句選擇所有的字段:select * from GLENN.LOTSOFRECORDS這種做法應(yīng)當(dāng)避免,而應(yīng)力求只檢索需要的字段??梢栽赟QL 語句中定義要檢索的字段,例如:selectKEYCOL, COL1, COL2, COL7fromGLENN.LOTSOFRECORDS在本文附帶的源程序中,有兩個(gè)ASP.NET頁面:一個(gè)是RetrievingAllFields.aspx,它執(zhí)行第一個(gè)查詢;另一個(gè)是RetrievingLimitedFields.aspx ,它執(zhí)行第二個(gè)查詢,即只檢索需要的字段。用TimeDiff類進(jìn)行檢測,執(zhí)行第一個(gè)查詢用了1.622 秒,執(zhí)行第二個(gè)查詢用了1.311秒。后者用時(shí)只是前者的80%,不僅用時(shí)少,而且還減少了Web應(yīng)用程序和數(shù)據(jù)庫服務(wù)器之間的網(wǎng)絡(luò)數(shù)據(jù)堵塞。這個(gè)例子只限制了檢索的字段,你還可以使用WHERE語句限制檢索的記錄數(shù)。WHERE 語句可以限制服務(wù)器返回的記錄數(shù)(見程序清單3)。要記住,通過網(wǎng)絡(luò)發(fā)送的記錄數(shù)據(jù)越少,對應(yīng)用程序、數(shù)據(jù)庫、用戶和網(wǎng)絡(luò)越有好處。規(guī)則2:優(yōu)化數(shù)據(jù)庫有時(shí)候你的Web應(yīng)用程序可能運(yùn)行得不錯(cuò),但你想讓它更好。一個(gè)簡單的減少搜索時(shí)間的方法是為特定字段創(chuàng)建索引。假如有一個(gè)查詢是要搜索某個(gè)價(jià)格范圍內(nèi)的產(chǎn)品(見程序清單3),但你沒有為價(jià)格字段定義索引,那么返回?cái)?shù)據(jù)就會多花一些時(shí)間。而一旦建立了索引,DB2會很快返回你想要的結(jié)果。程序清單3. 利用索引進(jìn)行數(shù)據(jù)庫搜索SELECTPRODUCTCODE, PRODUCTNAME, DESCRIPTION, UNITPRICEFROMGLENN.PRODUCTLISTWHEREUNITPRICE > 20.00優(yōu)化數(shù)據(jù)庫不只是為搜索字段創(chuàng)建索引這么一條,你應(yīng)當(dāng)盡可能多地搜集相關(guān)的DB2信息以使應(yīng)用程序運(yùn)行得更好。經(jīng)常訪問IBM發(fā)者園地(IBM DB2 Developer Domain)和comp.databases.ibm-db2(comp.databases.ibm-db2)等一些相關(guān)的Web站點(diǎn)或新聞組,對于保持DB2開發(fā)技巧不斷更新是一個(gè)很好的辦法。你還應(yīng)當(dāng)努力熟悉DB2附帶的工具,例如DB2索引建議器(Index Advisor)。DB2索引建議器可以根據(jù)你遞交的查詢和所連接的數(shù)據(jù)庫返回最佳索引列表。 上一頁123
標(biāo)簽: DB2 數(shù)據(jù)庫
主站蜘蛛池模板: 天天综合网网欲色 | 日韩激情二区 | 国产伦精品一区二区三区四区视频 | 在线观看亚洲视频 | 男女中文字幕 | 国产一级特黄 | 91久久久久 | 成人精品视频一区二区三区 | 精品国产一区二区三区久久影院 | va在线观看 | 91在线视频| 欧美视频xxx | 国产精品久久久久久久久久久久久久 | 久久亚洲一区 | 自拍偷拍亚洲视频 | 一区久久 | 超碰97av| 中文字幕亚洲精品 | 99久久久99久久国产片鸭王 | 99热精品在线 | 一区二区三区在线观看视频 | 免费网站国产 | 成人在线国产 | 亚洲精品乱码久久久久久蜜桃91 | av免费网站在线观看 | 国产午夜精品福利 | 成人午夜毛片 | 国产一区二区av | 天天天天天天天天操 | 亚洲女人的天堂 | 一区二区在线看 | 欧美日韩专区 | 久久久久高清 | 国产成人av免费 | 日韩手机在线观看 | 欧美日韩国产精品一区 | 99亚洲精品 | 99视频免费观看 | 韩国精品主播一区二区在线观看 | 三级黄色片在线免费观看 | 玖草在线视频 |