成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

DB2數據庫SQL編碼優化與性能描述

數據庫
以下的文章主要描述的是DB2數據庫SQL編碼優化基礎以及對最大限度地利用DB2 SQL編碼以獲得最佳性能的實際操作步驟的介紹。

此文章主要講述的是最大限度地利用DB2 SQL編碼以獲得最佳性能的實際操作步驟,在實際操作中當要保證用 IBM DB2® Universal Database™(DB2 UDB)與 Borland® 工具(如 Delphi™、C++Builder™ 或 Kylix™)構建的企業應用程序擁有最優性能時。

程序員可以利用 DB2 優化器的能力來處理即使是“難以處理的”SQL 語句并給出有效的存取路徑。盡管如此,拙劣編碼的 SQL 和應用程序代碼仍可能給您帶來性能問題,通過學習幾條基本準則可以輕易地避免這些問題。‘

我將向您演示 DB2 優化器的工作方式,并提供編寫能發揮優化器最大效率的 SQL 的準則。但即使擁有了 DB2 的優化能力,編寫有效的 SQL 語句仍可能是一件復雜的事情。如果程序員和開發人員還不熟悉關DB2數據庫環境,這件事就尤其顯得棘手。因此,在我們深入研究編碼 SQL 以獲得最佳性能的細節之前,先花一些時間來回顧 SQL 基礎知識。

 

基礎知識

由于 SQL 與過程化語言不同,它提供了更高的抽象級別,因此它可以讓程序員把精力集中到他們需要 什么樣的數據,而不是 如何檢索數據。您不必使用嵌入式數據導航指令來編碼 SQL。DB2 會分析 SQL,并“在幕后”制定數據導航指令。這些數據導航指令叫作 存取路徑。

讓 DBMS 確定到數據的最優存取路徑解除了程序員肩上沉重的負擔。此外,DB2數據庫可以更好地理解它存儲的數據的狀態,從而可以生成到數據的更有效和動態的存取路徑。其結果就是適當使用的 SQL 可以用于更快的應用程序開發。

另一個 SQL 特性是它不僅僅是一種查詢語言。您還可以使用它來定義數據結構;控制對數據的訪問;以及插入、修改和刪除數據的發生。通過提供一種公共語言,SQL 簡化了 DBA、系統程序員、應用程序員、系統分析員和最終用戶之間的通信。當項目的所有參與者都使用同一種語言時,他們之間所建立起來的協作就可以減少整體系統開發時間。

歷史證明,保證 SQL 成功的最重要的一個特性就是它使用類似英語的語法輕松地檢索數據的能力。理解這種語言比理解數據頁面的結構和程序源代碼要容易得多:

 

  1. SELECT LASTNAME  
  2. FROM EMP  
  3. WHERE EMPNO = '000010';  

 

想想看:當訪問文件中的數據時,程序員必須編碼指令來打開文件、開始一個循環、讀取記錄、檢查 EMPNO 字段是否等于適當的值、檢查文件結尾、回到循環的開頭等。

SQL 本來就是非常靈活的。它使用自由格式的結構,該結構可以讓用戶開發 SQL 語句來適合他們的需要。DBMS 在執行之前會分析每個 SQL 請求,以檢查語法是否正確和優化該請求。SQL 語句不需要從任何給定的列中開始,您可以將它們串在一行中,或者把它們拆成幾行。例如,以下這條單行的 SQL 語句與我前面使用的三行示例等價:

 

  1. SELECT LASTNAME FROM EMP WHERE EMPNO = '000010'

SQL 的另一個靈活特性是您可以用許多形式不同但功能等價的方法來制定一個請求。例如:SQL 可以連接表或嵌套查詢。您始終可以將嵌套查詢轉換成等價的連接。您可以在大量的函數和謂詞中看到這一靈活性的其它示例。具有等價功能的特性的示例包括:

 

  1. BETWEEN vs <= / >=  

IN vs 一系列和 OR 配合的謂詞

 

INNER JOIN vs FROM 子句中串在一起并用逗號分隔的表

 

OUTER JOIN vs 帶有 UNION 的簡單 SELECT 和相關的子查詢

 

CASE 表達式 vs 復雜的 UNION ALL 語句

 

SQL 展示的這一靈活性并不總是稱心的,因為形式不同但功能等價的 SQL 公式可以提供非常不同的性能。我將在本文的以后部分討論該靈活性所造成的結果,并提供開發有效的 SQL 的準則。

 

如我所說的,SQL 指定了要檢索或操作什么數據,但沒有指定DB2數據庫如何完成這些任務。這就使 SQL 本身變得很簡單。如果您能夠記得關系數據庫的一次處理一個集合(set-at-a-time)的特點,您就開始掌握 SQL 的本質和性質了。一條 SQL 語句可以作用于多行。作用于一組數據而不需要建立如何檢索和操作數據的能力將 SQL 定義成非過程化語言

因為 SQL 是一種非過程化語言,所以一條語句可以代替一系列過程。同樣,由于 SQL 使用集合級別的處理以及 DB2 優化查詢來確定數據導航邏輯,所以這是可能的。有時,如果不使用 SQL 語句,一條或兩條 SQL 語句可以完成的任務就需要完整的過程化程序來完成。

【編輯推薦】

  1. Oracle數據庫中的dual表對應DB2 SYSIBM
  2. Orac數據庫到DB2移植的正確破解方案
  3. Oracle到DB2數據移植中的操作與注意事項
  4. DB2數據庫實現Oracle功能的操作技巧與經驗
  5. DB2數據庫實現Oracle功能的操作技巧與經驗
責任編輯:佚名 來源: UPS與機房
相關推薦

2009-02-26 09:34:16

性能優化DB2數據庫

2010-08-17 17:29:06

DB2性能優化

2010-08-02 08:40:43

DB2數據庫性能

2010-08-17 16:24:32

IBM DB2數據庫

2010-08-04 13:37:43

2011-03-02 17:56:40

DB2數據庫

2010-08-13 10:43:49

IBM DB2數據庫

2010-08-13 15:42:22

DB2數據庫分區

2010-11-02 11:49:18

SQL SERVER連

2010-08-12 09:49:51

優化DB2數據庫備份

2010-08-17 09:11:42

DB2數據庫備份性能

2010-08-11 12:43:45

DB2數據庫調優

2011-03-21 09:51:04

DB2性能優化

2010-08-18 13:49:01

DB2數據庫

2010-08-16 14:45:15

DB2數據庫

2009-07-06 17:34:26

遠程復制DB2

2010-07-27 14:33:24

DB2數據庫

2010-08-12 15:43:24

DB2數據庫備份

2010-08-02 09:52:19

DB2數據庫優化

2010-08-04 13:30:49

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美精品一区二区免费 | 国产日韩欧美一区二区 | 久久久久久久国产 | 久久av一区二区 | 一区天堂 | 国产一级久久久久 | 国产一级片一区二区三区 | 国产精品视频一二三区 | 一区二区三区不卡视频 | 亚洲香蕉在线视频 | 亚洲激情在线观看 | 91国内视频在线 | 男女羞羞视频免费 | 九色网址 | 夜夜夜久久 | 国产精品视频久久久 | 久久国产视频网站 | 欧美激情精品久久久久久 | 精品国产一区二区在线 | 久久精品亚洲精品国产欧美 | 日本福利一区 | 国产视频福利 | 精品毛片视频 | 国产高清美女一级a毛片久久w | 精品一区二区免费视频 | 国产小视频在线观看 | 人人九九 | 日韩精品不卡 | 国产成人一区二区三区久久久 | 亚洲精品一区中文字幕乱码 | 国产一级在线 | 久久69精品久久久久久久电影好 | 国产成人免费 | 成人3d动漫一区二区三区91 | 天天干天天色 | 男人的天堂一级片 | 精品久久久网站 | 国内激情av片 | 中文一区 | 在线观看亚洲专区 | 蜜桃传媒一区二区 |