2013-04-28 42 views
0

假如我想創建基於理論數據庫的理論查詢處理計劃,我該怎麼做?另外,我將如何去確定計劃的成本?我需要創建一個並確定成本,但我似乎無法理解如何創建一個,因爲它不斷告訴我要獲得一個。任何幫助?如何創建查詢處理(或執行)計劃?

謝謝。

+1

sql引擎使用真正的表格,真實的數據和真實的統計數據來生成一個真正的計劃。我不明白用理論數據庫產生理論計劃意味着什麼。 – bryanmac 2013-04-28 12:18:21

+0

對於我們的課程,我們被告知爲以下內容創建查詢處理計劃,但不包含數據或數據庫。 表: EMP(ENO,ENAME,名稱,薪酬),PROJ(PNO,PTITLE) WORKSON(ENO,PNO,ROLE) 使一個查詢處理計劃: SELECT ENAME,ptitle FROM EMP, workson,proj WHERE emp.eno = workson.eno AND workson.pno = proj.pno AND role ='dbadmin 我只是不確定我會如何去解決它而沒有數據? – snowhite 2013-04-28 12:20:34

回答

0

您的理論數據庫需要與定義的操作相關的成本,例如「獲取完整行」,「執行兩個整數的比較」,「用n行掃描整個表」。

如果你有這個模型,你可以設計一些方法從關係中獲取一些指定的數據。由於沒有真實的數據和預定義的算法,因此你不能「獲得」這種方式,所以你必須自己創建一個算法。

除非你這樣做是對理論計算機科學功課你可能會更好,當你安裝任何真正的數據庫管理系統,看它的對你已經既定的,從你看到了什麼概括表查詢計劃那裏。真的,任何開源數據庫都可以幫助你入門。

例如,請查看Postgresql HandbookEXPLAIN命令。它會向您顯示您提供的查詢的查詢計劃。

+0

我正在做理論功課。我們唯一被告知的是數據庫標籤和我們應該使用的select語句。我在這裏錯過了什麼嗎?但我怎麼會這樣做呢?我錯過了這個演講,我很困惑。 – snowhite 2013-04-28 12:25:38

+0

對你的課程沒有太多的瞭解,但對於我來說,在這種情況下,去老師和要求澄清是完全可以接受的。我仍然建議在真正的DBMS上嘗試一下,並用一般術語來描述結果。你給出的例子非常簡單,幾乎所有的DBMS都會創建相同的計劃。 – mabi 2013-04-28 12:29:15

+0

非常感謝,我們一直在使用phpMyAdmin,並且與我在網上找到的相比,解釋SQL部分似乎讓我感到困惑。 – snowhite 2013-04-28 13:03:47