題組內容
一、某書店資料庫中有數個資料表,其DDL如下,請回答下列問題:(3題,共16分)


(三)本DBMS是由高速電腦建置的非分散式資料庫系統,執行SQL語法查詢時,需先將資料從硬碟載入記憶體才能運算,為了減少硬碟存取次數,每次載入量為一個硬碟頁。由於存取硬碟頁的耗用時間,是本DBMS進行SQL語法查詢 的最主要成本,故實際執行查詢前,估算硬碟頁存取次數將是效能調校關鍵。已知Product資料表裡共有100,000 筆,每一硬碟頁可存放200筆資料,以pNo及unitPrice為索引所建立的B+tree各有4層(含葉節點),試問以下語法, 將分別平均存取幾個硬碟頁?請列示計算過程。
(2)執行「 Select * from Product where unitPrice>z」(z為任意整數)(5分)
詳解 (共 1 筆)
詳解
因為 unitPrice 被建立為 cluster 索引,所以其資料紀錄會以循序方式排列
假設資料表 100000筆紀錄全部符合 'unitPrice > z' 的條件,
故總共會有 100000/200 = 500 個硬碟頁
假設資料表 100000筆紀錄全部符合 'unitPrice > z' 的條件,
故總共會有 100000/200 = 500 個硬碟頁
所以硬碟頁的存取數為 4 + 500 = 504
4 為 B+ tree 四層,每個節點為一個硬碟頁,故存取 4 次
接下來,再從葉節點透過資料指標找到第一筆符合紀錄的硬碟頁,接下來再存取剩下的硬碟頁,總共 500 次
補充:
此問題屬於 select 運算中的成本估計
接下來,再從葉節點透過資料指標找到第一筆符合紀錄的硬碟頁,接下來再存取剩下的硬碟頁,總共 500 次
補充:
此問題屬於 select 運算中的成本估計