 黃三益 2004 資料庫的核心理論與實務 10-1 第十章基本的查詢處理與最佳化  資料庫程式的執行 資料庫程式的執行  SQL敘述的處理流程 SQL敘述的處理流程  SQL 查詢樹 SQL 查詢樹  基本關聯代數運算子的處理  SELECT 的處理方式和成本 SELECT 的處理方式和成本.

Slides:



Advertisements
Similar presentations
1 生物計算期末作業 暨南大學資訊工程系 2003/05/13. 2 compare f1 f2  只比較兩個檔案 f1 與 f2 ,比完後將結果輸出。 compare directory  以兩兩比對的方式,比對一個目錄下所有檔案的相 似程度。  將相似度很高的檔案做成報表輸出,報表中至少要.
Advertisements

布林代數的應用--- 全及項(最小項)和全或項(最大項)展開式
第七章 抽樣與抽樣分配 蒐集統計資料最常見的方式是抽查。這 牽涉到兩個問題: 抽出的樣本是否具有代表性?是否能反應出母體的特徵?
Section 1.2 Describing Distributions with Numbers 用數字描述分配.
指導教授:陳淑媛 學生:李宗叡 李卿輔.  利用下列三種方法 (Edge Detection 、 Local Binary Pattern 、 Structured Local Edge Pattern) 來判斷是否為場景變換,以方便使用者來 找出所要的片段。
1.1 線性方程式系統簡介 1.2 高斯消去法與高斯-喬登消去法 1.3 線性方程式系統的應用(-Skip-)
1 Web of Science 利用指引 單元二 瀏覽與處理查詢結果. 2 瀏覽檢索結果 查出的結果,預設以時間排列, 使用者可改變結果的排列方式: 還可以依被引用次數、相關度、 第一作者、刊名、出版年等排序 回到前先查的結果畫面 點選想看資料的完整書目 本館訂購範圍的期刊 全文,便可直接連結.
五小專案 黃詩晴 章乃云. 目錄 計算機 智慧盤 拼圖 記憶大挑戰 數學題庫 心得 參考文獻.
亂數產生器安全性評估 之統計測試 SEC HW7 姓名:翁玉芬 學號:
Lecture 8 Median and Order Statistics. Median and Order Statistics2 Order Statistics 問題敘述 在 n 個元素中,找出其中第 i 小的元素。 i = 1 ,即為找最小值。 i = n ,即為找最大值。 i = 或 ,即為找中位數。
Graph V(G 1 )={0, 1, 2, 3, 4, 5, 6, 7, 8, 9} E(G 1 )={(0, 2), (0, 3), (1, 4), (2, 3), (2, 5), (2, 6), (3, 6), (3, 7), (4, 7), (5, 6), (5,
: OPENING DOORS ? 題組: Problem Set Archive with Online Judge 題號: 10606: OPENING DOORS 解題者:侯沛彣 解題日期: 2006 年 6 月 11 日 題意: - 某間學校有 N 個學生,每個學生都有自己的衣物櫃.
STAT0_sampling Random Sampling  母體: Finite population & Infinity population  由一大小為 N 的有限母體中抽出一樣本數為 n 的樣 本,若每一樣本被抽出的機率是一樣的,這樣本稱 為隨機樣本 (random sample)
1. 假設以下的敘述為一未提供 “ 捷徑計算 ” 能力的程式段,試用程 式設計的技巧,使此敘述經此改 寫的動作後,具有與 “ 捷徑計算 ” 之 處理方法相同之處理模式。 if and then E1 else E2 endif.
期中考參考解答 Date: 2005/12/14 Multimedia Information Systems.
 黃三益 2007 資料庫的核心理論與實務第三版 10-1 第十章基本的查詢處理與最佳化  資料庫程式的執行 資料庫程式的執行  SQL敘述的處理流程 SQL敘述的處理流程  SQL 查詢樹 SQL 查詢樹  基本關聯代數運算子的處理  SELECT 的處理方式和成本 SELECT 的處理方式和成本.
MATLAB 程式設計 第 11 章 多維陣列 多維陣列的定義 在 MATLAB 的資料型態中,向量可視為 一維陣列,矩陣可視二維陣列,對於維 度 (Dimensions) 超過 1 的陣列則均可視 為「多維陣列」 (Multidimesional Arrays , 簡稱 N-D Arrays)
各種線上電子資源的特異功能 STICnet 的 SDI 專題訂閱服務 2003/4/28 修改. 無論校內外皆可使用。連線至
第 18 章 名稱空間與例外處理 18-1 名稱空間 18-1 名稱空間 18-2 例外處理 18-2 例外處理.
8.1 何謂高度平衡二元搜尋樹 8.2 高度平衡二元搜尋樹的加入 8.3 高度平衡二元搜尋樹的刪除
McGraw-Hill/Irwin © 2003 The McGraw-Hill Companies, Inc.,All Rights Reserved. 肆 資料分析與表達.
第一章 演算法:效率、分析與量級 1.1演算法 1.2發展有效率演算法的重要性 1.3演算法的分析 1.4量級(Order)
1 單元三 查詢結果的引用分析 Web of Science 利用指引 查看出版及被引用情況 在查詢結果的清單中,可以瀏覽近 20 年來查詢主題出版和被引用的情況。
JAVA 程式設計與資料結構 第十章 GUI Introdution III. File Chooser  File Chooser 是一個選擇檔案的圖形介面, 無論我們是要存檔還是要開啟檔案,使 用這個物件都會讓我們覺得容易且舒適。
第 1 章 PC 的基本構造. 本章提要 PC 系統簡介 80x86 系列 CPU 及其暫存器群 記憶體: Memory 80x86 的分節式記憶體管理 80x86 的 I/O 結構 學習組合語言的基本工具.
Chapter 13 塑模靜態觀點:物件圖 Static View : Object Diagram.
Introduction to Java Programming Lecture 17 Abstract Classes & Interfaces.
:Problem D: Bit-wise Sequence ★★★☆☆ 題組: Problem Set Archive with Online Judge 題號: 10232: Problem D: Bit-wise Sequence 解題者:李濟宇 解題日期: 2006 年 4 月 16.
: The largest Clique ★★★★☆ 題組: Contest Archive with Online Judge 題號: 11324: The largest Clique 解題者:李重儀 解題日期: 2008 年 11 月 24 日 題意: 簡單來說,給你一個 directed.
最新計算機概論 第 5 章 系統程式. 5-1 系統程式的類型 作業系統 (OS) : 介於電腦硬體與 應用軟體之間的 程式,除了提供 執行應用軟體的 環境,還負責分 配系統資源。
: Fast and Easy Data Compressor ★★☆☆☆ 題組: Problem Set Archive with Online Judge 題號: 10043: Fast and Easy Data Compressor 解題者:葉貫中 解題日期: 2007 年 3.
 黃三益 2007 資料庫的核心理論與實務第三版 9-1 第九章 資料儲存結構  資料庫裡資料的儲存特性 資料庫裡資料的儲存特性  資料表的資料結構 資料表的資料結構  B + -tree 的索引結構  二元樹 二元樹  B+-tree 的索引結構 B+-tree 的索引結構  B +
Chapter 2 Getting Started Insertion Sort: 能有效率地排序小數字的演算法 範例 :
CH 15- 元件可靠度之驗證  驗證方法  指數模式之可靠度驗證  韋式模式之可靠度驗證  對數常態模式之可靠度驗證  失效數為零時之可靠度估算  各種失效模式之應用.
資料庫程式設計與系統管理 SQL Server 2005 Express 第六章 進階資料庫設計.
: Multisets and Sequences ★★★★☆ 題組: Problem Set Archive with Online Judge 題號: 11023: Multisets and Sequences 解題者:葉貫中 解題日期: 2007 年 4 月 24 日 題意:在這個題目中,我們要定義.
:Nuts for nuts..Nuts for nuts.. ★★★★☆ 題組: Problem Set Archive with Online Judge 題號: 10944:Nuts for nuts.. 解題者:楊家豪 解題日期: 2006 年 2 月 題意: 給定兩個正整數 x,y.
資料結構實習-一 參數傳遞.
Lecture 7 Sorting in Linear Time. Sorting in Linear Time2 7.1 Lower bounds for sorting 本節探討排序所耗用的時間複雜度下限。 任何一個以比較為基礎排序的演算法,排序 n 個元 素時至少耗用 Ω(nlogn) 次比較。
1 Introduction to Java Programming Lecture 2: Basics of Java Programming Spring 2008.
Management Abstracts Retrieval System; MARS 檢索操作.
: Beautiful Numbers ★★★★☆ 題組: Problem Set Archive with Online Judge 題號: 11472: Beautiful Numbers 解題者:邱經達 解題日期: 2011 年 5 月 5 日 題意: 若一個 N 進位的數用到該.
Section 4.2 Probability Models 機率模式. 由實驗看機率 實驗前先列出所有可能的實驗結果。 – 擲銅板:正面或反面。 – 擲骰子: 1~6 點。 – 擲骰子兩顆: (1,1),(1,2),(1,3),… 等 36 種。 決定每一個可能的實驗結果發生機率。 – 實驗後所有的實驗結果整理得到。
Teacher : Ing-Jer Huang TA : Chien-Hung Chen 2015/6/25 Course Embedded Systems : Principles and Implementations Weekly Preview Question CH 2.4~CH 2.6 &
函式 Function Part.2 東海大學物理系‧資訊教育 施奇廷. 遞迴( Recursion ) 函式可以「呼叫自己」,這種動作稱為 「遞迴」 此程式的執行結果相當於陷入無窮迴圈, 無法停止(只能按 Ctrl-C ) 這給我們一個暗示:函式的遞迴呼叫可以 達到部分迴圈的效果.
JAVA 程式設計與資料結構 第二十章 Searching. Sequential Searching Sequential Searching 是最簡單的一種搜尋法,此演 算法可應用在 Array 或是 Linked List 此等資料結構。 Sequential Searching 的 worst-case.
演算法 8-1 最大數及最小數找法 8-2 排序 8-3 二元搜尋法.
845: Gas Station Numbers ★★★ 題組: Problem Set Archive with Online Judge 題號: 845: Gas Station Numbers. 解題者:張維珊 解題日期: 2006 年 2 月 題意: 將輸入的數字,經過重新排列組合或旋轉數字,得到比原先的數字大,
Learning Method in Multilingual Speech Recognition Author : Hui Lin, Li Deng, Jasha Droppo Professor: 陳嘉平 Reporter: 許峰閤.
Chapter 10 m-way 搜尋樹與B-Tree
演算法課程 (Algorithms) 國立聯合大學 資訊管理學系 陳士杰老師 Course 7 貪婪法則 Greedy Approach.
5 重複迴圈 5.1 增減運算符號 增量運算符號 減量運算符號
SQL 進階查詢.
INFORMATION RETRIEVAL AND EXTRACTION 作業: Program 1 第十四組 組員:林永峰、洪承雄、謝宗憲.
: Problem E Antimatter Ray Clearcutting ★★★★☆ 題組: Problem Set Archive with Online Judge 題號: 11008: Problem E Antimatter Ray Clearcutting 解題者:林王智瑞.
第 6 章 迴圈結構 6-1 計數迴圈 6-1 計數迴圈 6-2 條件迴圈 6-2 條件迴圈 6-3 巢狀迴圈 6-3 巢狀迴圈 6-4 While/End While 迴圈 6-4 While/End While 迴圈 6-5 跳出迴圈 6-5 跳出迴圈 6-6 VB.NET 的錯誤處理 6-6 VB.NET.
連續隨機變數 連續變數:時間、分數、重量、……
Teacher : Ing-Jer Huang TA : Chien-Hung Chen 2015/6/30 Course Embedded Systems : Principles and Implementations Weekly Preview Question CH7.1~CH /12/26.
: Wine trading in Gergovia ★★☆☆☆ 題組: Contest Volumes with Online Judge 題號: 11054: Wine trading in Gergovia 解題者:劉洙愷 解題日期: 2008 年 2 月 29 日 題意:在 Gergovia.
:Commandos ★★★☆☆ 題組: Contest Archive with Online Judge 題號: 11463: Commandos 解題者:李重儀 解題日期: 2008 年 8 月 11 日 題意: 題目會給你一個敵營區內總共的建築物數,以及建築物 之間可以互通的路有哪些,並給你起點的建築物和終點.
McGraw-Hill/Irwin © 2003 The McGraw-Hill Companies, Inc.,All Rights Reserved. 參 資料蒐集的方法.
第 5 章 選擇控制項與條件敘述 5-1 結構化程式設計 5-1 結構化程式設計 5-2 關係與邏輯運算子 5-2 關係與邏輯運算子 5-3 簡單的條件敘述 5-3 簡單的條件敘述 5-4 選擇控制項 5-4 選擇控制項 5-5 巢狀條件敘述 5-5 巢狀條件敘述 5-6 多選一條件敘述 5-6 多選一條件敘述.
Microsoft Excel.
: Finding Paths in Grid ★★★★☆ 題組: Contest Archive with Online Judge 題號: 11486: Finding Paths in Grid 解題者:李重儀 解題日期: 2008 年 10 月 14 日 題意:給一個 7 個 column.
:Problem E.Stone Game ★★★☆☆ 題組: Problem Set Archive with Online Judge 題號: 10165: Problem E.Stone Game 解題者:李濟宇 解題日期: 2006 年 3 月 26 日 題意: Jack 與 Jim.
幼兒行為觀察與記錄 第八章 事件取樣法.
第 1 章 PC 的基本構造. 本章提要 PC 系統簡介 80x86 系列 CPU 及其暫存器群 記憶體: Memory 80x86 的分節式記憶體管理 80x86 的 I/O 結構 學習組合語言的基本工具.
: How many 0's? ★★★☆☆ 題組: Problem Set Archive with Online Judge 題號: 11038: How many 0’s? 解題者:楊鵬宇 解題日期: 2007 年 5 月 15 日 題意:寫下題目給的 m 與 n(m
McGraw-Hill/Irwin © 2003 The McGraw-Hill Companies, Inc.,All Rights Reserved. 肆 資料分析與表達.
Presentation transcript:

 黃三益 2004 資料庫的核心理論與實務 10-1 第十章基本的查詢處理與最佳化  資料庫程式的執行 資料庫程式的執行  SQL敘述的處理流程 SQL敘述的處理流程  SQL 查詢樹 SQL 查詢樹  基本關聯代數運算子的處理  SELECT 的處理方式和成本 SELECT 的處理方式和成本  外部排序的處理方式和成本 外部排序的處理方式和成本

 黃三益 2004 資料庫的核心理論與實務 10-2 資料庫程式的執行  通常 SQL 的敘述都是由程式執行所產生,但交由 DBMS 來 處理  DBMS 看到的是一串 SQL 敘述

 黃三益 2004 資料庫的核心理論與實務 10-3 資料庫程式的部分程式碼 1. ' 建立資料庫連結物件 2. set conn = Server.CreateObject("ADODB.Connection") 3. ' 開啟資料庫連結 4. conn.Open "onlinedb" 5. query = "SELECT * FROM product" 6. Set rs = conn.Execute(query) 7. while not rs.EOF 下達查詢並 取得結果 一筆一筆 取出結果

 黃三益 2004 資料庫的核心理論與實務 10-4 SQL 敘述的處理流程

 黃三益 2004 資料庫的核心理論與實務 10-5 練習 10-1  考慮圖 10-2 ,如果第 4 行的 SQL 指令在檢查時 發現錯誤,會有什麼後果? 10-2  Ans: 此時該 SQL 指令便不會執行,也因此 rs 裡不會有值。 所以不會執行 WHILE 迴圈

 黃三益 2004 資料庫的核心理論與實務 10-6 SQL 查詢樹  一顆 SQL 查詢樹是用來表達一種執行方案  每一葉節點記錄查詢所用到的每一資料表  每一中間節點記載處理的動作。標準的處理動作如關聯 代數裡的運算子 SELECT name FROM Product, Author WHERE pName = ‘ 系統分析理論與實務 ’ AND Product.pNo = Author.pNo;

 黃三益 2004 資料庫的核心理論與實務 10-7 SQL 查詢樹( Cont.)  查詢樹的執行次序是由下而上、由左至右  上例的執行方式如下 Temp1=  pName=’ 系統分析理論與實務 ’ (Product); Temp2= Temp1 ⋈ Temp1.pNo=Author.pNo Author; Result=  name (Temp2);  SQL 剖析器所產生的查詢樹是最簡單的查詢 樹,稱為初始查詢樹  查詢最佳化模組會將初始查詢樹轉換成較有 效率的查詢樹

 黃三益 2004 資料庫的核心理論與實務 10-8 SQL 查詢樹( Cont.)  從 SQL 查詢句建立初始查詢 樹  FROM 子句裡的每一個資料表是 一個葉節點。  葉節點用集合乘法(卡迪森乘積) 當中間節點兩兩串連起來。  加上一個 SELECT(  ) 的中間節點, 以 WHERE 子句當作其運算。  加上一個 PROJECT(  ) 的根節點, 以 SELECT 子句當作其運算 SELECT name FROM Product, Author WHERE pName = ‘ 系統分析理論與實務 ’ AND Product.pNo = Author.pNo;

 黃三益 2004 資料庫的核心理論與實務 10-9 初始查詢樹

 黃三益 2004 資料庫的核心理論與實務 SQL 查詢樹( Cont.)  初始查詢樹最佳化的轉換步驟  將 SELECT 的動作往下移,盡量 接近葉節點

 黃三益 2004 資料庫的核心理論與實務 SQL 查詢樹( Cont.)  將條件較嚴格的 SELECT 中間節點盡量往左邊移

 黃三益 2004 資料庫的核心理論與實務 SQL 查詢樹( Cont.)  將相鄰的 × 中間節點 和 σ 中間節點合併成一個 ⋈中間節點

 黃三益 2004 資料庫的核心理論與實務 SQL 查詢樹( Cont.)  將 PROJECT 的動作往下移,盡量接近葉節點

 黃三益 2004 資料庫的核心理論與實務 練習 10-2  找出「黃三益」所瀏覽過單價超過 500 元的產品資 訊的最佳化查詢

 黃三益 2004 資料庫的核心理論與實務 10-15

 黃三益 2004 資料庫的核心理論與實務 關聯代數運算子的演算法  查詢樹的每一中間節點就是一個關聯代數運 算子  每一關聯代數運算子有數種處理方式

 黃三益 2004 資料庫的核心理論與實務 查詢成本的預估指標  查詢樹的每一中間節點,實作的方式可能有 數種,到底該採取哪一種?  對於一個查詢句,現代的 DBMS 於是採用成 本預估( Cost estimate )的方式來決定該採 取哪一種處理方式  查詢最佳化模組試圖計算出和比較它們的 「成本」

 黃三益 2004 資料庫的核心理論與實務 何謂運算成本  每一個關聯代數運算子都有多種處理方式  沒有哪一種處理方式必然可以得到比較有效率的運 算  現代的 DBMS 於是採用成本預估的方式來決定  何謂成本:執行時間  硬碟的存取成本  CPU 的計算成本  網路的通訊成本 佔大部分時間

 黃三益 2004 資料庫的核心理論與實務 資料表和索引的相關符號  資料表的相關數據  r :資料表裡的記錄筆數  r Product = 100,000  b :資料表所佔的資料頁數  b Product = 5000  bfr :每一資料頁可容納幾筆記錄  r Product / b Product = bfr Product = 20  索引的相關數據  x : B + -tree 的層數  x unitPrice = 3  bI1 : B + -tree 裡葉節點的個數  bI1 unitPrice = 500  d :不同索引值的個數  d catalog = 100, d SEX = 2  參考圖 9-6圖 9-6

 黃三益 2004 資料庫的核心理論與實務 10-20

 黃三益 2004 資料庫的核心理論與實務 基本 SELECT 的處理方式  SELECT 條件裡只有單一屬性   catalog=’Book’ Product   unitPrice>500 Product   pNo=’b30999’ Product  三種處理方式  ( SL )資料頁循序搜尋  ( SI )利用索引結構 (參考圖 9-6 )圖 9-6  ( SIC )利用群聚索引結構  假設有 unitPrice 的群聚索引,參考圖 10-7圖 10-7 CREATE INDEX I3 ON Product(unitPrice) CLUSTER;

 黃三益 2004 資料庫的核心理論與實務 SELECT 的選擇幅度  SELECT 的選擇幅度即是查詢結果的預估資 料筆數,以 s 表示   catalog=’Book’ Product  d catalog = 100 , r Product = 100,000  s=r Product / d catalog = 1000   pNo=’b30999’ Product  s=1   unitPrice > 500 Product  s=r Product /2 = 50,000

 黃三益 2004 資料庫的核心理論與實務 10-23

 黃三益 2004 資料庫的核心理論與實務 練習 10-3  考慮圖 9-6 的索引結構,要列出所有 unitPrice>500 的 Product 記錄,請問需造訪哪 些索引頁?會造訪哪些資料頁?圖 9-6  Ans:  索引頁: n1, n3, n8, n9  資料頁: p15, p3, p9

 黃三益 2004 資料庫的核心理論與實務 練習 10-4  考慮圖 10-7 的索引結構,要列出所有 unitPrice>500 的 Product 記錄,請問需造訪哪 些索引頁?會造訪哪些資料頁?圖 10-7  Ans:  索引頁: n1, n3, n8  資料頁: p2, p3

 黃三益 2004 資料庫的核心理論與實務 複合 SELECT 的處理方式  SELECT 條件裡包括一個以上的基本子條件,這 些子條件用 AND 或 OR 連結起來   catalog=’Book’ AND unitPrice>500 Product   catalog=’Book’ OR unitPrice>500 Product  有以下的四種作法  ( SL ):資料頁循序搜尋  ( SSI ):單一索引結構搜尋(參考圖 9-6 )圖 9-6  ( SMI ):多索引結構搜尋  ( SCI ):複合索引結構搜尋  假設有一多屬性值索引 :( catalog, unitPrice )  參考圖 9-7圖 9-7

 黃三益 2004 資料庫的核心理論與實務 複合 SELECT 的處理方式 (Cont.) CREATE INDEX I2 ON Product(catalog ASC, unitPrice DESC);

 黃三益 2004 資料庫的核心理論與實務 練習 10-5 :  考慮圖 9-7 的( catalog, unitPrice )索引結構,要列 出所有 catalog = ‘Book’ AND unitPrice=500 的 Product 記錄,請問需造訪哪些索引頁?圖 9-7  Ans: n1, n2, n6

 黃三益 2004 資料庫的核心理論與實務 SELECT 處理方式的成本推估   A=a R  ( SL )資料頁循序搜尋  case 1: A 為 R 的關聯鍵: ( 1+b R ) /2  case 2: A 不為 R 的關聯鍵: b R  ( SI )利用索引結構搜尋, A 上建有一 B + -tree  case 1: A 為 R 的關聯鍵: x A +1  case 2: A 不為 R 的關聯鍵: x A - 1 + + s A  ( SIC )利用群聚索引結構搜尋, A 上有建置一 群聚索引  x A + +sA+sA

 黃三益 2004 資料庫的核心理論與實務 範例一:  假設 r Product = 100,000 , b Product = 5000 , bfr Product = 20 , x pNo =3 ,計算  pNo=’b30999’ Product 的成本如下 (請注意 pNo 為 Product 關聯的主鍵)  (SL): (1+b Product )/2  2500  (SI): x pNo +1=3+1=4  (SIC): x pNo +1=3+1=4

 黃三益 2004 資料庫的核心理論與實務 範例二  假設 r Product = 100,000 , b Product = 5000 (因此 bfr Product = 20) , x catalog =2 , d catalog =100 (因 此 s catalog = 1000 ), bI1 catalog =100 ,計算  catalog=’Book’ Product 的成本如下:  (SL): b Product =5000  (SI): x catalog - 1 + + s catalog =2 - 1 + 1 + 1000 =1002  (SIC): x catalog + =2+50=52 (假設 catalog 為群聚索引)

 黃三益 2004 資料庫的核心理論與實務 SELECT 處理方式的成本推估 (Cont.)   A>a R  ( SL )資料頁循序搜尋 b R  ( SI )利用索引結構搜尋 x A  1 +   +  ( SIC )利用群聚索引結構 , A 上有建置一群聚 索引 x A +

 黃三益 2004 資料庫的核心理論與實務 範例三  假設 r Product = 100,000 , b Product = 5000 (因此 bfr Product = 20 ), x unitPrice =3 , bI1 unitPrice =1000 ,計算  unitPrice > 500 Product 的成本如 下  (SL): b Product =5000  (SI): x unitPrice  1 + + =2 + 500 + =  (SIC): x unitPrice + =3 + 2500 = 2503 (假設 unitPrice 為群聚索引)

 黃三益 2004 資料庫的核心理論與實務 範例四  假設 r Product = 100,000 , b Product = 5000 (因此 bfr Product = 20 ),有三個索引: catalog, unitPrice ,和( catalog, unitPrice )。 x catalog =2 , d catalog =100 (因此 s catalog = 1000 ), bI1 catalog =100 , x unitPrice =3 , bI1 unitPrice =1000 , x catalog,unitPrice =4 , bI1 catalog,unitPrice =2000 ,這三個索引皆非群 聚索引。計算  catalog=’Book’ AND unitPrice > 500 Product 的成本  (SL): b Product =5000  (SSI): 這裡有兩個索引可以使用  使用 catalog 索引: 1002 (參考範例二)  使用 unitPrice 索引: (參考範例三)

 黃三益 2004 資料庫的核心理論與實務 範例四 (Cont.)  (SMI): 根據 catalog 索引取得記錄指標共需花費成本 x catalog - 1 + =2  根據 unitPrice 索引取得記錄指標共需花費成本 x unitPrice - 1 + =2+500=502  取這些記錄指標的交集  500  1=500  選擇幅度為 s catalog,unitPrice = =50  總成本為 = 1504

 黃三益 2004 資料庫的核心理論與實務 範例四 (Cont.)  (SCI): 由上述( SMI )的推論,我們知道 s catalog,unitPrice =50 ,所以成本為 x catalog,unitPrice - 1 + + s catalog,unitPrice =4 - 1 + = 513

 黃三益 2004 資料庫的核心理論與實務 練習 11-1  在範例四的( SSI )中,利用 catalog 索引比 利用 unitPrice 索引的成本低許多,你可以因 此得到什麼結論嗎?  Ans:  選擇幅度小的屬性之索引成本較低。以本例來說, catalog=’Book’ 的選擇幅度為 1000 ,而 unitPrice>500 的選擇幅度為 50,000 。

 黃三益 2004 資料庫的核心理論與實務 外部排序的運算  有些查詢句要求結果要排序 SELECT * FROM Product ORDER BY unitPrice;  排序也有助於某些查詢句的處理(如下一章 的 JOIN )  資料表裡的記錄是位於次記憶體(硬碟)  我們需要的是能處理位於次記憶體裡記錄的 排序演算法,稱為外部排序法

 黃三益 2004 資料庫的核心理論與實務 外部排序的運算( Cont)  類似 Merge Sort  先將所有的資料切成數塊,每一塊都可放入主記憶體裡 分別作排序  再將這些排序好的數塊資料作適當的合併  成本  假設主記憶體裡最多可容納 n B 個讀入的資料頁  資料被切成  b R /n B  個資料塊  假設 n B  b R /n B   資料塊排序總成本: 2b R  資料塊合併總成本: 2b R  總成本: 4b R

 黃三益 2004 資料庫的核心理論與實務 外部排序的運算( Cont)  成本  假設 n B <  b R /n B   資料塊排序總成本: 2b R  資料塊合併總成本:  總成本: 2b R +  成本通常簡化成