日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

提高DB2数据库Web程序性能的两条规则

發布時間:2025/3/20 数据库 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 提高DB2数据库Web程序性能的两条规则 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

速度和可升級性是網絡開發重要的性能要求,而且它們也不難達到。應用一些簡單的規則會提高網絡應用的性能。在本文中,您將了解到使用Borland C#Builder和IBM DB2通用數據庫(UDB)8.1開發快速Microsoft? ASP.NET Web應用程序的2條規則。

  分析Web應用程序的性能需要利用一些手段來檢測每個操作的性能。為此,我創建了一個TimeDiff類(見程序清單1),它可以計算數據庫操作的用時。你可以利用TimeDiff類的檢測結果作為衡量數據庫操作性能的基準,來觀察哪些操作最為有效。我還創建了一個配合TimeDiff 類使用的LOTSOFRECORDS表(見程序清單2),它包含10,000條記錄,你可以通過對它的操作來觀察不同技術之間的性能差異。DB2具有內部緩沖池,一旦運行一個查詢,內部緩沖池啟用,因此二次查詢的速度較快。在檢測查詢速度時,請忽略緩沖池啟用前的結果而采用啟用后的結果。

  程序清單1. TimeDiff類 using System;

  以下是代碼片段:

  namespace Effeciency

  {

  ///

  /// 這個類用于時間計算。在例子中,

  /// 我們將利用它檢測數據庫操作的速度,

  /// 以便作性能上的比較。

  ///

  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();

  }

  }

  }

  }
  程序清單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 應用程序性能的規則。我會先介紹提高數據庫性能的基本規則,然后列出一些適合以Borland Data Provider開發ASP.NET應用時的性能規則。

?

  規則1 按需檢索

  如果你只能記得住一條規則,那一定要記住這一條:按需檢索。如果你是“幸存者”電視節目的忠實觀眾,您會記得其中的參賽者通過限額分配來保證每個人都有充足的食物。這種做法對于數據庫開發同樣適用。如果你的應用程序能夠按需運行,那么就會合理地將數據庫和網絡資源留給其他應用。這聽起來很簡單,但我們還是來看一個例子。

  假設有一個包含10,000 行記錄和10 個字段的表,以及一個需要顯示所有記錄但只顯示3個字段的Web頁。很多開發者經常圖省事而使用"select *"語句選擇所有的字段:

  以下是代碼片段:

  select * from GLENN.LOTSOFRECORDS
  這種做法應當避免,而應力求只檢索需要的字段。可以在SQL 語句中定義要檢索的字段,例如:

  以下是代碼片段:

  select KEYCOL, COL1, COL2, COL7

  from

  GLENN.LOTSOFRECORDS
  在本文附帶的源程序中,有兩個ASP.NET頁面:一個是RetrievingAllFields.aspx,它執行第一個查詢;另一個是RetrievingLimitedFields.aspx ,它執行第二個查詢,即只檢索需要的字段。

  用TimeDiff類進行檢測,執行第一個查詢用了1.622 秒,執行第二個查詢用了1.311秒。后者用時只是前者的80%,不僅用時少,而且還減少了Web應用程序和數據庫服務器之間的網絡數據堵塞。

  這個例子只限制了檢索的字段,你還可以使用WHERE語句限制檢索的記錄數。WHERE 語句可以限制服務器返回的記錄數(見程序清單3)。要記住,通過網絡發送的記錄數據越少,對應用程序、數據庫、用戶和網絡越有好處。

  規則2 優化數據庫

  有時候你的Web應用程序可能運行得不錯,但你想讓它更好。一個簡單的減少搜索時間的方法是為特定字段創建索引。如果有一個查詢是要搜索某個價格范圍內的產品(見程序清單3),但你沒有為價格字段定義索引,那么返回數據就會多花一些時間。而一旦建立了索引,DB2會很快返回你想要的結果。

  程序清單3. 利用索引進行數據庫搜索

  以下是代碼片段:

  SELECT PRODUCTCODE, PRODUCTNAME, DESCRIPTION, UNITPRICE

  FROM

  GLENN.PRODUCTLIST

  WHERE

  UNITPRICE > 20.00
  優化數據庫不只是為搜索字段創建索引這么一條,你應當盡可能多地搜集相關的DB2信息以使應用程序運行得更好。經常訪問IBM發者園地(IBM DB2 Developer Domain)和comp.databases.ibm-db2(comp.databases.ibm-db2)等一些相關的Web站點或新聞組,對于保持DB2開發技巧不斷更新是一個很好的辦法。

  你還應當努力熟悉DB2附帶的工具,例如DB2索引建議器(Index Advisor)。DB2索引建議器可以根據你遞交的查詢和所連接的數據庫返回最佳索引列表。
?

轉載于:https://blog.51cto.com/wws5201985/765684

總結

以上是生活随笔為你收集整理的提高DB2数据库Web程序性能的两条规则的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。