關係查詢處理和查詢優化習題

2021-10-12 09:59:54 字數 1667 閱讀 3993

1.假設關係r(a, b)和s(b, c, d)情況如下: r有20000個元組,s有1 200個元組,乙個塊能裝40

個r的元組,能裝30個s的元組,估算下列操作需要多少次磁碟塊讀寫。

1> r上沒有索引,sclect from r;*

2000/40=500次

2> r中a為主碼,a有3層b+數索引,`select * from r where a = 10;

三層,乙個資料,所以是3+1=4

3> 巢狀迴圈連線rdas;

s占有塊少,作為外表,r作為內錶

1200/30 + (20000/40)*(40/記憶體分配塊數)

4> 排序合併連線rdas,區分r與s在b屬性上已經有序和無序兩種情況。

有序:r和s都是讀一遍 2000/40+1200/30=540

無序:需要先排序 t(排序)+540

3.對學生課程資料庫,查詢資訊系學生選修了的所有課程名稱

select cname

from student,course,score

where student.sno=score.sno and score.cno=course.cno and student.sdept=

"is"

;

畫出代數表示的語法樹,並用噶un西代數表示式優化演算法對原始的語法樹進行優化

3.對於下面的資料庫模型

teacher(

**tho*

*,tname,tage,t***)

; department(

**dno*

*,dname,tno)

;work

(tno,dno,**

year**

,salary)

假設teacher的tno屬性、department的dno屬性以及work的year屬性上有b+樹索引,說明下列查詢語句的一種較優的處理方法。

1>select * from teacher where t***='女'

單錶,無索引,所以使用全表掃瞄法

2>select * from department where dno<301

索引掃瞄法,並通過b+樹順序集合找到資料

3>select * from work where year<>2000

全表掃瞄法

4>select * from work where year>2000 and salary<5000

先使用b+樹掃瞄對year選擇,然後判斷salary是否適合

5>select * from work where year < 2000 or salary<5000

salary沒有索引

全表掃瞄

關係查詢處理和查詢優化

v查詢優化分類 n代數優化 指關係代數表示式的優化 n物理優化 指訪問路徑和底層操作演算法的選擇 v關聯式資料庫管理系統查詢處理階段 1.查詢分析 2.查詢檢查 3.查詢優化 4.查詢執行 v選擇操作典型實現方法 1 全表掃瞄方法 table scan l對查詢的基本表順序掃瞄,逐一檢查每個元組是否...

關係查詢處理和查詢優化典型例題分析

一 單選題 1.關於查詢過程中的表與表之間的連線方法,效率比較低的是 a 巢狀迴圈 b 排序合併 c 索引連線 d hash join2.1000個學生,10000個選課記錄。2號課程選課記錄50個。一塊記憶體可以放10個學生或者100個選課記錄。計算機的記憶體有限,只能同時放下5塊學生 1塊選課記...

第九章 關係查詢處理和查詢優化

這裡只寫了對於資料庫做題有幫助的部分b 樹內容 b 樹上的葉子結點儲存關鍵字以及相應記錄的位址,葉子結點以上各層作為索引使用。在資料庫中,b 樹葉子結點的上層都是索引,為了方便查詢,不涉及記錄的位址,每個葉子結點存放相應的記錄,也就是元組。並且元組按鍵值有序排放,即按照有b 樹索引的屬性值有序排放。...