【文章內(nèi)容簡介】
n be retrieved from or stored to the disk. (從磁盤上讀取數(shù)據(jù)或存儲數(shù)據(jù)到磁盤的時(shí)間)Mean time to failure (MTTF) (平均失效時(shí)間)– the average time the disk is expected to run continuously without any failure.(磁盤無故障連續(xù)運(yùn)行的時(shí)間Typically 3 to 5 years)Block – a contiguous sequence of sectors from a single track data is transferred between disk and main memory in blocks sizes range from 512 bytes to several kilobytes內(nèi)存和外存的一次數(shù)據(jù)交換稱為一次I/O操作,每次交換的數(shù)據(jù)量是一個(gè)Block內(nèi)存中開辟的緩沖區(qū)大小至少要等于一個(gè)blockBlock的大小通常由DBMS廠商決定廉價(jià)磁盤冗余陣列(RAID) Redundant Arrays of Independent Disks 通過冗余提高可靠性是一種利用大量廉價(jià)磁盤進(jìn)行磁盤組織的技術(shù)價(jià)格上,大量廉價(jià)的磁盤比少量昂貴的大磁盤合算得多性能上,使用大量磁盤可以提高數(shù)據(jù)的并行存取可靠性上,冗余數(shù)據(jù)可以存放在多個(gè)磁盤上,因此一個(gè)磁盤的故障不會導(dǎo)致數(shù)據(jù)丟失冗余(Redundancy)存儲額外的信息,以便當(dāng)磁盤故障時(shí)能從中重建磁盤還是內(nèi)存?l 5minute rule:如果一個(gè)被隨機(jī)訪問的頁面的使用頻率超過每5分鐘一次,那么它應(yīng)該被駐留在內(nèi)存l minute rule:如果被順序訪問的頁面的使用頻率超過每1分鐘一次,那么它應(yīng)該被駐留在內(nèi)存文件存儲:The database is stored as a collection of files. Each file is a sequence of records. A record is a sequence of fields數(shù)據(jù)庫是存儲為文件的集合。每個(gè)文件都是一個(gè)序列的記錄。字段的記錄是一個(gè)序列。第十章:Basic Steps in Query Processing(查詢處理的基本步驟):1. Parsing and translation解析和翻譯2. Optimization最優(yōu)化3. Evaluation評估RDBMS查詢處理階段 : 1. 查詢分析2. 查詢檢查3. 查詢優(yōu)化 4. 查詢執(zhí)行 選擇操作典型實(shí)現(xiàn)方法:1. 簡單的全表掃描方法 216。 對查詢的基本表順序掃描,逐一檢查每個(gè)元組是否滿足選擇條件,把滿足條件的元組作為結(jié)果輸出 216。 適合小表,不適合大表2. 索引(或散列)掃描方法 216。 適合選擇條件中的屬性上有索引(例如B+樹索引或Hash索引) 216。 通過索引先找到滿足條件的元組主碼或元組指針,再通過元組指針直接在查詢的基本表中找到元組 排序n 原因n SQL查詢可以指定對輸出進(jìn)行排序n 關(guān)系運(yùn)算的某些操作,如連接運(yùn)算,排序后實(shí)現(xiàn)高效n 對于可放進(jìn)內(nèi)存的關(guān)系,使用如快排序之類的技術(shù)。對不能放進(jìn)內(nèi)存的關(guān)系,使用外排序n 內(nèi)排序n 當(dāng)數(shù)據(jù)集小于可用內(nèi)存時(shí),采用快速排序算法n 快速排序的思想來源于分治策略。將數(shù)據(jù)塊劃分為兩個(gè)序列,第一個(gè)序列的值小于第二個(gè)序列,在兩個(gè)序列中按照遞歸排序的思想再次進(jìn)行上述的劃分,這樣直到?jīng)]有辦法劃分為止n 外排序n 創(chuàng)建有序段+N路歸并n 所有的輸入數(shù)據(jù)最初分成許多有序的歸并段文件,然后不斷歸并成許多更大的歸并段文件,直到剩下一個(gè)文件為止167。 Join Operation幾種不同的連接算法Nestedloop join(嵌套循環(huán)連接)Block nestedloop join(塊嵌套循環(huán)連接)Indexed nestedloop join(索引嵌套循環(huán)連接)Mergejoin(合并連接)Hashjoin(哈?;蛏⒘羞B接)Choice based on cost estimate(根據(jù)成本估算選擇連接方式)關(guān)系型數(shù)據(jù)庫優(yōu)點(diǎn)167。 依賴邏輯,而不是物理、相關(guān)記錄之間的聯(lián)系 167。 使用第四代語言(4 gl) 167。 備抵高度的數(shù)據(jù)獨(dú)立性216。 關(guān)系數(shù)據(jù)庫系統(tǒng)的查詢優(yōu)化 v 查詢優(yōu)化的優(yōu)點(diǎn)不僅在于用戶不必考慮如何最好地表達(dá)查詢以獲得較好的效率,而且在于系統(tǒng)可以比用戶程序的“優(yōu)化”做得更好 (1) 優(yōu)化器可以從數(shù)據(jù)字典中獲取許多統(tǒng)計(jì)信息,而用戶程序則難以獲得這些信息(2)如果數(shù)據(jù)庫的物理統(tǒng)計(jì)信息改變了,系統(tǒng)可以自動(dòng)對查詢重新優(yōu)化以選擇相適應(yīng)的執(zhí)行計(jì)劃。在非關(guān)系系統(tǒng)中必須重寫程序,而重寫程序在實(shí)際應(yīng)用中往往是不太可能的(3)優(yōu)化器可以考慮數(shù)百種不同的執(zhí)行計(jì)劃,程序員一般只能考慮有限的幾種可能性。(4)優(yōu)化器中包括了很多復(fù)雜的優(yōu)化技術(shù),這些優(yōu)化技術(shù)往往只有最好的程序員才能掌握。系統(tǒng)的自動(dòng)優(yōu)化相當(dāng)于使得所有人都擁有這些優(yōu)化技術(shù)v RDBMS關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(Relational Database Management System)通過某種等價(jià)模型計(jì)算出各種查詢執(zhí)行策略的執(zhí)行代價(jià),然后選取代價(jià)最小的執(zhí)行方案167。 集中式數(shù)據(jù)庫216。 執(zhí)行開銷主要包括:– 磁盤存取塊數(shù)(I/O代價(jià))– 處理機(jī)時(shí)間(CPU代價(jià))– 查詢的內(nèi)存開銷 216。 I/O代價(jià)是最主要的 167。 分布式數(shù)據(jù)庫216。 總代價(jià)=I/O代價(jià)+CPU代價(jià)+內(nèi)存代價(jià)+通信代價(jià) v 查詢優(yōu)化的總目標(biāo):167。 選擇有效的策略167。 求得給定關(guān)系表達(dá)式的值167。 使得查詢代價(jià)最小(實(shí)際上是較小) 216。 實(shí)際系統(tǒng)的查詢優(yōu)化步驟:1. 將查詢轉(zhuǎn)換成某種