• 沒有找到結果。

植基於資料庫系統統計資訊之索引調校方法

N/A
N/A
Protected

Academic year: 2021

Share "植基於資料庫系統統計資訊之索引調校方法"

Copied!
6
0
0

加載中.... (立即查看全文)

全文

(1)

෌୷ܭၗ਑৤س಍಍ीၗૻϐ઩ЇፓਠБݤ

!

!

ᄃەৱ!!!!ଯ୯ঢ়!!!!஭჏ߪ!

୯ҥύᑫεᏢၗૻࣽᏢس

ieliao@nchu.edu.tw

ǵkfkao@cs.nchu.edu.twǵs9256048@cs.nchu.edu.tw

ᄔा!

!

ӧၗ਑৤س಍ύǴךॺ࿶தᙖҗࡌҥ઩Їٰቚ у᠐ڗޑೲࡋǶՠࢂऩࡌҥό҅ዴޑ઩ЇǴόՠ཮ ੁ຤ᓯӸޑޜ໔ǴԶЪᗋ཮ቚу઩Ї׳ཥਔޑԋ ҁǶଞჹ΋ঁπբॄၩ(workload)ǴӵՖࡌҥ΋ঁԖ ന٫ਏૈޑ઩ЇಔᄊǴךॺ߾ᆀϐࣁ઩Їᒧ᏷ୢ ᚒǶ೭ঁୢᚒޑ໺಍բݤǴሡाଞჹ؂΋ঁࢗ၌ᇟ ѡǴѐ၌ୢന٫ϯᏔ(optimizer)؂ᅿ઩Їಔᄊޑԋ ҁǶ೭ኬޑբݤ࣬྽ੁ຤ᓯӸޜ໔ϷၮᆉૈΚǶࣁ Αᗉխ೭٤લᗺǴךॺճҔᓯӸܭၗ਑৤س಍ύޑ ಍ीၗૻǴϷന٫ϯᏔӧຑᒧ઩ЇਔǴ܌٬Ҕډޑ ԋҁኧᏵǴว৖р΋ঁཥޑ઩Їᒧ᏷ᄽᆉݤǶӧ೭ ঁᄽᆉݤύǴךॺஒ཮Եໆډфૈ࣬߈઩Їϐ໔ޑ ඹж܄Ǵ٠Ъմନό፾ӝӸӧޑ઩ЇǶҁፕЎ܌ග рϐБݤςӧ PostgreSQL ၗ਑৤΢ჴբǴ٠а TPC-Hޑၗ਑ࢎᄬ଺ჴᡍǴаᡍ᛾ҁፕЎ܌ගБݤ ϐԖਏ܄ǹჴᡍ᛾ܴΑךॺගрޑБݤёа௢ᙚӳ ޑ઩ЇಔᄊǴቚу᏾ঁπբॄၩ୺ՉਔޑਏૈǶ! ! ᜢᗖຒǺၗ਑৤س಍ǵ઩Їᒧ᏷ǵ઩Їඹжǵ઩Ї ፓਠǵPostgreSQLǶ!

!

1.

ᙁϟ!

!

ၗ਑৤઩Їᒧ᏷ୢᚒ(Index Selection Problem,

ISP) [5]ࢂ΋ঁӧ NP-hard ޑୢᚒǴᏢೌࣚ΋ޔԖΓ ӧ೭Бय़຾ՉࣴزǶ܌аΨόᘐޑԖΓගр΋٤ᇨ ᏤԄБݤ(heuristic)ǴаӧԖज़ޑਔ໔ύǴှр߈՟ ന٫ှǶ઩ЇޑӸӧᗨฅёаቚуၗ਑৤ޑਏૈǴ ՠࢂࡌҥό҅ዴޑ઩Їόՠคݤуமၗ਑৤ޑਏ ૈԶЪᗋ཮ੁ຤ᓯӸޑޜ໔ǴЪቚу઩Ї׳ཥਔޑ ԋҁ<ࡺӵՖ௢ᙚӳޑ઩ЇǴ٬ၗ਑৤س಍วචന ٫ޑਏૈǴࢂ઩Їᒧ᏷ୢᚒ௖૸ޑख़ᗺǶ! ӧ໺಍ၗ਑৤ύǴ઩Їᒧ᏷ୢᚒޑ଺ݤࢂǺ૶ ᒵֹ᏾ޑπբॄၩ(workload)аٮ٣ࡕຑᒧਔၮ ᆉǴаϷଞჹ؂΋ঁࢗ၌ѐ၌ୢന٫ϯᏔ(optimizer) ؂΋ᅿ઩Їಔᄊޑԋҁǹ೭ኬޑ଺ݤ࣬྽઻຤ᅶᅷ ޑޜ໔Ϸၮᆉਔ໔ǴࣁΑှ،໺಍ၗ਑৤઩Їᒧ᏷ ୢᚒޑ଺ݤǴҁፕЎଞჹ઩Їᒧ᏷ୢᚒගрΑ΋ঁ ཥޑှ،БݤǴךॺ૶ᒵᓯӸܭس಍ҞᒵύޑԖज़ ၗૻǴஒ೭٤ၗૻ༼ᕴଆٰǴ٠ਥᏵ೭٤Ԗज़ޑၗ ૻٰຑ՗᏾ঁπբॄၩޑ᏾ᡏਏૈǶ! Ӣࣁךॺ܌ᏱԖޑၗૻԖज़Ǵՠѝाന٫ϯᏔ ،ۓӧࢌ΋ঁࢗ၌٬Ҕࢌঁ઩ЇǴךॺ൩ёаᘐۓ ٬Ҕ೭ঁ઩ЇޑਏૈाК٬Ҕൻׇཛྷ൨ӳǶ܌аൻ ׇ ཛྷ ൨ ޑ ԋҁ ё а ྽ բ೭ ঁ ઩ Ї ޑ΢ ज़(upper bound)Ǵ྽٬Ҕࢌ΋઩Їޑԋҁεܭൻׇཛྷ൨ޑԋ ҁਔǴ߾ךॺёаᇥԜ઩Їό፾ӝӸӧǶԜѦǴך ॺΨว৖Αຑ՗ӕ΋ঁၗ਑߄໔઩Їඹж܄ޑמ ೌǶ྽Ԝࢗ၌ᇟѡޑ઩ЇӢࣁό፾ӝӸӧԶ೏մନ ਔǴ߾Ԝࢗ၌ᇟѡ཮ᒧ᏷ځдޑឦ܄଺ࣁ઩ЇǴԜ ਔךॺ൩Ѹሡஒ೏մନ઩Їޑԋҁᙯ౽ډځдޑ Ȩඹж܄ȩឦ܄ύǶၮҔ೭٤מೌǴךॺ൩ёаྗ ዴޑႣ՗઩ЇॶόॶளࡌҥǴբࣁၗ਑৤س಍௢ᙚ ઩ЇޑୖԵǶ!

!

2.

࣬ᜢࣴز!

!

Ꮓᆅ઩Їᒧ᏷ୢᚒࢂ NP-hard ޑୢᚒǴฅԶ౜ Ϟςว৖р೚ӭ߈՟ޑှ،Бݤٰ෧Ͽୢᚒޑፄ ᚇࡋǶҞ߻೚ӭޑ୘཰ၗ਑৤س಍೬ᡏࣣςஒԜф ૈჴբܭၗ਑৤س಍ύǶ! ! 2.1઩Їᒧ᏷ୢᚒ ! ઩Їᒧ᏷ୢᚒёа೏ඔॊࣁǺӧ΋ঁх֖ӭঁ ၗ਑৤ࢗ၌(query)ޑس಍ύǴ،ۓाࡌҥব٤઩ ЇǴૈ٬᏾ঁၗ਑৤س಍ᕇளന٫ޑਏૈǴ٠Ъ಄ ӝ٬Ҕޜ໔ޑज़ڋǴ೭٤ၗ਑৤ࢗ၌ޑ໣ӝךॺᆀ ࣁπբॄၩ(workload)Ƕךॺଷ೛πբॄၩMх֖m ঁၗ਑৤ࢗ၌ǴԜ mঁၗ਑৤ࢗ၌аqBiB߄ҢǴ 1ɩiɩmǶ! ၗ਑৤՛ܺᏔѐࢗפ಄ӝࢗ၌చҹޑБԄᆀ ࣁӸڗၡ৩(access path)Ǵന୷ҁޑӸڗၡ৩ࣁൻׇ ཛྷ൨(sequential scan)ǴќѦךॺΨёа٬Ҕ઩Ї྽ բӸڗၡ৩ǴԖёૈ྽բӸڗၡ৩ޑឦ܄ឯՏǴך ॺᆀࣁ࣬ᜢឯՏ(relevant columns)Ƕ܌Ԗ࣬ᜢឯՏ ޑᖄ໣ᆀࣁংᒧ઩Ї໣(candidate index set)Ǵ߄Ңࣁ

NǶךॺଷ೛Nх֖nঁংᒧޑ઩ЇǴаaBjB߄ҢǴ 1ɩjɩnǶ؂ঁংᒧ઩Ї܌՞ޑޜ໔аdBjB߄ҢǴ 1ɩjɩnǹس಍Ϣ೚ࡌҥ઩Їޑޜ໔΢ज़аD߄ҢǶ ଷ೛س಍ѝගٮ΋ᅿ઩ЇǴ߾؂΋ঁংᒧ઩ЇߡԖ ࡌҥᆶόࡌҥٿᅿރᄊǴӢԜNޑᏈ໣ӝߡж߄س ಍܌Ԗёૈࡌҥ઩ЇޑރᄊǶךॺע೭ঁރᄊᆀࣁ ઩Їಔᄊ(index configuration)Ƕךॺଷ೛܌Ԗ઩Ї ಔᄊޑ໣ӝPх֖pঁ઩ЇಔᄊǴPх֖ޑ઩Їಔᄊ аcBkB߄ҢǴ1ɩkɩpǶ؂ঁ઩Їಔᄊk೿ёჹᔈډ΋

(2)

ঁ઩Їޑ໣ӝNBkBǴж߄઩ЇಔᄊcBkBύ܌ࡌҥ઩Їޑ ໣ӝǶ! ךॺۓကcost(qBi B, cBkB)ж߄ӧಔᄊcBkBਔǴ୺Չၗ਑ ৤ࢗ၌qi܌ሡाޑ୺Չਔ໔ԋҁǶqi٬ҔcBkBޑᕇճ߾ ߄Ңԋ

)

Ǵځύ BB BB

(

qi ck

)

t

(

qi

)

t

(

qi ck

gain , =cos ,φ −cos , φ ж

߄ޜ໣ӝǶӵ݀аጁᖐݤ(exhausted search)ٰှ઩ Їᒧ᏷ୢᚒ(ISP)Ǵߡࢂ؃р܌Ԗ઩Їಔᄊуᕴၗ਑ ৤ࢗ၌୺Չԋҁࡕޑॶǹ೭ঁॶӵ݀಄ӝޜ໔ज़ڋ ٠Ъᕴਔ໔ԋҁനλǴߡࢂୢᚒޑന٫ှΑǶӵკ 1܌ҢǶ ΢ӈޑҞ኱ڄԄၟज़ڋԄǴၟς࿶೏ుΕࣴز ޑ UFLP(Uncapacitated Facility Location Problem)ୢ

ᚒ\2-6^ǴᏱԖᜪ՟ޑኧᏢኳԄǶ܌аࡐܴዴޑǴ ઩Їᒧ᏷ୢᚒΨࢂ΋ঁ NP-hard ޑୢᚒǶ! კ 1;઩ЇҬϕբҔޑԋҁ՗ᆉ߄ 2.2Microsoft SQL Server ༾೬ȐMicrosoftȑ܌ว৖ޑၗ਑৤س಍೬ᡏ SQL ServerǴӧ 1997 ԃ܌ගٮޑ SQL Server 7.0 ύǴග ٮ઩Ї༾ፓᆒᡫ\4^ǴаБߡၗ਑৤ᆅ౛ޣᆅ౛ၗ ਑৤س಍Ƕ၀س಍ճҔന٫ϯᏔຑ՗πբॄၩԋҁ ޑБԄǴჴբ઩Ї༾ፓπڀǴځЬा؁ᡯӵΠǺ! ϩ݋πբॄၩ(workload)Ǵஒёૈӧ൨פၗ਑ਔ ቹៜԋҁޑឯՏ΋΋ࡷᒧрٰǴ٠ԋࣁংᒧ઩Ї (candidate index)Ƕௗ๱вಒϩ݋ংᒧ઩ЇǴ٠ख़ཥ ीᆉཥޑ೛ۓࡕޑԋҁǴղᘐ྽၀઩ЇӸӧਔޑԋ ҁϷ೷ԋځдࢗ၌ޑԋҁቹៜ฻ӢનǶ࿶җόᘐޑ ीᆉǴ،ۓрനࡕޑ઩Ї೛ۓ໣ӝٰ௢ᙚǶനࡕ߾ ࢂ׳ᆒዴϩ݋ࢂցԖѸा٬Ҕӭख़ឯՏϡ઩Їޑ ឦ܄ෳ၂ǴऩԖ಄ӝӭख़ឯՏឦ܄߾уΕংᒧ઩Ї ύӆԛຑ՗ਏ੻നࡕஒ௢ᙚ໣ӝӣᔈ๏٬ҔޣǶ 2.3IBM DB2 IBM܌ගٮޑၗ਑৤س಍ DB2Ǵӧ 2000 ԃ DB2 6.0ހύҭගٮ઩Ї༾ፓπڀ[12]ǴDB2 ༾ፓБݤᆶ ༾೬ޑࢎᄬբݤ࣬՟Ǵа SAEFIS ᄽᆉݤǴஒࢗ၌ ᇟѡϩԋϖঁ೽ҽǺ 1.EQǺр౜ӧ฻ܭచҹޑឯՏǶ

2.OǺр౜ӧ order byǵgroup by Ϸ join ឯՏޑ໣ӝǶ

3.RANGEǺр౜ӧጄൎࢗ၌ޑឯՏ໣ӝǶ 4.SARGǺр౜ӧࡰۓឯՏࢗ၌ޑឯՏ໣ӝǶ 5.REFǺځᎩӧࢗ၌ᇟѡύ೏ගϷޑឯՏǶ ࿶ၸϩ݋ຑ՗ࡕǴӧόຬၸޜ໔ज़ڋϐΠǴࡷ р ޑ ឯ Տ ٩ ख़ ा ܄ ଯ ե ࡌ ҥ ຀ ᔕ ઩ Ї (virtual index)Ǵ٠ीᆉрёૈሡाޑ಍ीၗૻǴനࡕҗന ٫ϯᏔࡷᒧǴऩ຀ᔕ઩Їр౜ӧࡷᒧ໣ӝύǴ߾߄ Ң௢ᙚ၀ឯՏࡌҥ઩ЇǶ 2.4Oracle ! OracleϦљӧ Oracle 8i ޑౢࠔύΨගٮس಍༾ ፓޑπڀǺTuning Pack ٰӢᔈᆅ౛ޣБߡޑᆅ౛ၗ ਑৤س಍Ǵ᏾ঁ Tuning Pack[8]܌ගٮޑ༾ፓπڀх ֖Πӈኧᅿ࣬ᜢޑ༾ፓфૈǺ!  Oracle ExpertǺճҔ΋٤ᙁܰޑ؁ᡯֹٰᔠຎ ٠ගϲس಍ਏૈޑπڀǶ!  SQL AnalyzeǺЬाࢂϩ݋٬Ҕޣࢗ၌ᇟѡޑ фૈǴёа၁ಒղᘐࢗ၌ᇟѡࢂցԖׯቪԋ ׳Ԗਏ౗ޑБԄǴᗉխ೷ԋၗ਑৤วғᝄख़ ޑس಍ၗྍ՞ҔԶफ़եਏૈǶ!

 Index Tuning WizardǺၮբБԄࢂаπբॄၩ

ࣁ୷ᘵǴ࿶س಍ϣ೽ޑϩ݋ࡕౢғ௢ᙚ่݀ ӣᔈ๏٬ҔޣǶ!

!

3.

س಍ࢎᄬ!

!

ҁЎගрޑБԄࢂ׆ఈ઩Їᒧ᏷πڀѝ೸ၸ س಍Ҟᒵ(system catalog)ϣޑၗૻ൩ёа،ۓा௢ ᙚޑ઩ЇಔᄊǹࡽόाᓯӸπբॄၩǴΨόाӆ೸ ၸၗ਑৤ന٫ϯᏔѐ՗ᆉӚᅿόӕޑ઩ЇಔᄊΠ ޑԋҁǶკ 2 ࣁس಍Ҟᒵ಍ीБݤ(CSA)઩Їᒧ᏷ πڀޑπբࢬำࢎᄬკǶᗨฅךॺӧ௢ᙚ઩Їਔό ӆѐୢന٫ϯᏔǴՠόж߄ךॺޑ،฼ؒԖ٩ྣന ٫ϯᏔޑ՗ᆉԋҁ،ۓǶ࣬ϸޑǴךॺޑБԄࢂֹ ӄ٩ྣന٫ϯᏔޑၗૻٰ،ۓǴԶ೭٤ၗૻӧ୺Չ ࢗ၌ޑਔࡕߡ೏ϩ݋٠૶ᒵӧҞᒵύǴ೭٤૶ᒵߡ ࢂךॺᆀڥޑᆫ໣಍ी(aggregated statistics)ǴࡺԜ БԄϝࢂന٫ϯᏔԋҁ୷ᘵ(optimizer-cost based)ޑ БԄǶךॺஒ೭ኬޑБԄǴᘜયрΠӈ൳ᅿ੝܄Ǻ! 1. όҔӆѐϩ݋܈٬ҔπբॄၩǴؒԖѸाᓯ ӸπբॄၩǶ! 2. ಍ीၗૻ܌՞ޑޜ໔ѝکၗ਑߄(table)ύޑ ឦ܄ঁኧԋ҅КǶ! 3. ઩Їᒧ᏷πڀ٬ҔҞᒵ಍ीբࣁ઩Ї௢ᙚޑ ୷ᘵǶ! 4. س಍Ҟᒵ཮٩؂ԛޑࢗ၌ीჄ(query plan)ಕ ीၗૻǴځ૶ᒵޑၗૻа΋૓ന٫ϯᏔࡷᒧ ࢗ၌ीჄ܌ၮҔޑၗૻϷس಍ᅱ௓ I0O ޑਏ ૈࣁЬǶ! ! ΢ॊѤᗺ੝܄ύޑಃѤᗺǴځ܌ၮҔޑၗૻ೿

(3)

ा؃ࢂջਔڗளޑǴό׆ఈႽ໺಍ှ ISP ޑᄽᆉ ݤǴၮҔ຀ᔕ઩Ї(virtual index)ѐ௨ӈӚᅿ઩Їಔ ᄊǴаڗளᚐѦޑኧᏵǶךॺϐ܌а௦ڗ೭ኬ଺ݤ ޑЬाҞޑࢂ׆ఈૈ๓уճҔന٫ϯᏔࡌҥࢗ၌ ीჄਔ܌ҔډޑၗૻǶӵ݀ךॺஒന٫ϯᏔຑᒧी Ⴤࡕޑၗૻ૶ᒵ܈ޣၮᆉǴ܌޸຤ޑᚐѦԋҁ൳Я ࣁ႟ǴӢࣁౢғ೭٤ၗૻޑԋҁচҁ൩ࢂന٫ϯᏔ ࡌҥीჄਔ൩ाбрޑǶךॺ፾྽ޑၮᆉ٠૶ᒵ೭ ٤ԖҔޑၗૻǴ҅྽ךॺӧ଺઩Їᒧ᏷ਔǴ൩όሡ ाӆѐ၌ୢന٫ϯᏔΑǶ! ! ! კ 2;CSA ઩Їᒧ᏷πڀޑπբࢬำࢎᄬკ! ! 3.1ന٫ϯᏔޑၗૻᆶଷ೛! ! ന٫ϯᏔӧ୺Չࢗ၌ਔǴځ܌ၮҔޑၗૻӵ݀ คज़ڋᑩ๞ޑ၉Ǵךॺ߻ॊ܌૸ፕޑୢᚒஒคཀ ကǴࡺӧԜךॺჹന٫ϯᏔ܌၀ޕၰޑૻ৲բ΋ঁ ܴዴޑज़ڋǶךॺගраΠٿঁଷ೛Ǻ! ଷ೛1.ʳ ന٫ϯᏔӧ،ۓࢗ၌ीჄ(query plan)ਔǴ ѝޕၰ(ԿϿޕၰ)ځ܌٬Ҕࢗ၌ीჄޑԋ ҁᆶ٬Ҕൻׇཛྷ൨ޑԋҁǶ! ଷ೛2.ʳ ന٫ϯᏔ཮வҞ߻྽Πޑࢗ၌ीჄύǴࡷ ᒧрԋҁനեޑࢗ၌ीჄǶඤѡ၉ᇥǴऩ ന٫ϯᏔ܌ࡷᒧޑࢗ၌ीჄԖ٬Ҕ઩ЇǴ ߾ਏૈᔈ၀К٬Ҕൻׇཛྷ൨ӳǶ! ୷ܭа΢ଷ೛ǴךॺۓကΑڂࠠޑന٫ϯᏔଞ ჹൂ΋ࢗ၌ຑᒧीჄਔǴ܌ҔډޑၗૻǺ! ၗૻ1.ʳ ࢗ၌ᇟѡύǴwhere ηѡ္؂ঁ಄ӝచҹឦ ܄ޑᒧڗ౗(selectivity)Ƕ! ၗૻ2.ʳ ؂΋ঁၗ਑߄٬Ҕൻׇཛྷ൨ޑԋҁǶ! ၗૻ3.ʳ ࢗ၌ᇟѡޑᕴԋҁϷࢗ၌ᐋ(query tree)Ƕ! ၗૻ4.ʳ ࢗ၌ᐋύ؂΋ঁ࿯ᗺ(node)ޑԋҁϷႣ՗ ޑၗ਑฽ኧ(tuple)ࢂӭϿǶ! ќѦ΋ᜪԖҔޑၗૻ൩ࢂၗ਑৤س಍૶ᒵΑ Ԗᜢ I0O ԛኧޑ࣬ᜢၗૻǴٯӵࢌঁၗ਑߄ᔞਢಕ ी୔༧Ӹڗ(block access)ޑԛኧ܈ޣ጗ፂ୔ڮύ (buffer hit)ޑԛኧǶךॺӵ݀ճҔ೭٤ၗૻǴٰ଺ࣁ ຑ՗઩ЇਏૈޑୖԵǴځ܌޸ޑȨᚐѦȩԋҁ൳Я ࣁ႟ǴӢࣁࡌҥ೭٤ၗૻޑԋҁচҁ൩ࢂၗ਑৤س ಍܌ाбрޑǶ! ڂࠠޑၗ਑৤س಍୺Չࢗ၌ਔǴ܌ᅱ௓ޑૻ৲ ࡐӭǴаΠךॺۓကٿ໨ຑ՗઩Їਏૈਔ཮Ҕډޑ ၗૻǺ! ၗૻ5.ʳ ࢗ၌୺ՉਔǴ؂΋ঁၗ਑߄ᔞਢ(table file) ܈઩Їᔞਢ(index file)܌޸຤ޑ୔༧Ӹڗ ԛኧǶ! ΢ॊޑၗૻύǴၗૻ 3 ж߄ޑࢂന٫ϯᏔޑႣ ՗ॶǴѬ཮х֖೽ϩύѧೀ౛Ꮤ(CPU)ၮᆉޑԋ ҁǹԶၗૻ 5 ж߄ޑࢂჴෳॶǴѬൂપࢂ I0O ޑԋ ҁǹၗૻ 3 کၗૻ 5 ೿ёаж߄΋ঁࢗ၌ޑԋҁǶ! ! 3.2ࢗ၌ᇟѡޑԋҁኳࠠ! ! ΋ঁࢗ ၌ᇟѡёа ϩԋࢗ၌ (query)ǵ׳ཥ (update)ǵմନ(deletion)ǵකΕ(insertion)ѤᅿރݩǶ ӢࣁմନکකΕᆶ׳ཥᜪ՟Ǵ܌аӧԜךॺЬा૸ ፕࢗ၌Ϸ׳ཥٿᅿރݩǶӧ\4^ύςࡌҥ΋૓܄ޑ ԋҁኳࠠǴவ೭ঁԋҁኳࠠǴךॺёаע 2.2 ࿯ۓ ကޑcost(qBi B, cBkB)ӆಒϩࣁ᠐ڗԋҁ(read_cost)ǵᆢៈ ઩Їԋҁ(maintain_index_cost)Ϸᆶ઩Їคᜢޑڰ ۓԋҁ(constant_cosuǴх֖׳ཥၗ਑߄ǵᒡр่ ݀Ǿ฻୏բޑԋҁ)Ƕ߄ҢԋΠӈԄηǺ! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Ǿ(1)

!!!

ၗ਑৤ޑᆢៈ઩Їԋҁ(maintain_index_cost) ჹࢌ΋ዴۓޑπբॄၩԶقࢂڰۓޑǴό཮ᒿ๱઩ ЇಔᄊόӕԶᡂ୏Ƕ܌аჹࢌ΋઩ЇಔᄊcBkBޑᆢៈ ઩ЇԋҁǴךॺ߄ҢࣁǺ!

(2)! ࡺჹࢌ΋઩ЇಔᄊcBkBύޑ઩Ї{a}ޑᆢៈ઩Ї ԋҁёа߄ҢࣁǺ!

( )

c mi t

(

q c

)

k P t MI M i k i k =

∈ ∈ all for , , cos _ cos _ ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Ǿ(3)! ! 3.3઩Їਏૈຑ՗! ! ךॺஒճҔس಍ҞᒵύޑԖज़ၗૻǴКၨ઩Ї ӸӧޑԋҁᆶόӸӧਔ٬Ҕൻׇཛྷ൨ޑԋҁǴٰຑ ՗઩ЇࢂցॶளӸӧǶ઩ЇޑӸӧǴჹၗ਑৤׳ཥ ޑ୏բѸۓाбрᚐѦޑᆢៈԋҁǴჹࢗ၌ޑ୏բ ߾ԖёૈගٮਏૈၨӳޑӸڗၡ৩Ƕඤѡ၉ᇥǴ΋ ঁ઩Їჹ᏾ঁπբॄၩԶقॶளӸӧǴࢂӢࣁ٬Ҕ ઩Їӧ᠐ڗᏹբ܌ᕇளޑճ੻εܭځᆢៈޑԋҁǶ! ࢂց٬Ҕࢌঁ઩ЇբӸڗၡ৩Ǵ߾཮ᒿ๱઩Ї ಔᄊޑόӕԶׯᡂǶךॺз౜ӧޑ઩Їಔᄊࣁ

cBcurrentǹӧcB BcurrentBਔǴന٫ϯᏔղᘐ٬Ҕ઩ЇaբӸڗ

ၡ৩ޑࢗ၌ࣁM(Bcurrent,aB)Ǵ ǶM(Bcurrent,aB) ᙁᆀMBaBǶ! зMBaBȷ=M -MBaǴჹMB BaBȷԶقǴന٫ϯᏔӧcBcurrentB ᆶcBcurrentB-{a}܌ࡷᒧӸڗၡ৩ޑ᠐ڗԋҁஒ཮΋ ኬǶӢࣁךॺଷ೛ന٫ϯᏔ཮ࡷᒧ྽ਔԋҁനեޑ ઩ЇಔᄊǴ܌аࡽฅӧcBcurrentBਔό཮٬Ҕ઩ЇaǴ߾ ߄ҢԖК઩Ї aԋҁ׳եޑӸڗၡ৩ǴӢԜӧ cBcurrentB-{a}Ψ཮٬Ҕ၀ԋҁၨեޑӸڗၡ৩Ǵց߾൩ ၴϸന٫ϯᏔࢂ౛ඵޑଷ೛(ଷ೛ 2)Ƕ! ךॺ٬Ҕմନ઩ЇޑᇨᏤԄ(heuristic)Бݤٰ ( ) M M current,a

(4)

ղ ᘐ ઩ Ї ࢂ ց ፾ ӝ Ӹ ӧ Ƕ ჹ ઩ Ї a Զ ق Ǵ ྽ Ǵж߄઩Їaό፾ ӝӸӧǴӢࣁჹMBaBȷԶقǴځ᠐ڗԋҁࢂ΋ኬޑǴ ܌аѝाԵቾMBaBޑ᠐ڗԋҁϷ઩ЇޑᆢៈԋҁǶӢ Ԝёஒ΢ԄᙯϯԋаΠ׎ԄǺ! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Ǿ(4) ёаӆϯᙁࣁǺ! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Ǿ(5) ځύ ж߄઩ЇaόӸӧޑ௃ ݩΠǴന ڗၡ৩Ǵёૈޑ଺ݤࣁ ٬Ҕځд ཛྷ൨Ƕҗܭךॺคݤޕ ၰӧcBcurr ࢂց٬Ҕځд઩ЇǴӢ Ԝךॺѝӳीᆉ ٫ϯᏔёૈࡷޑӸ ޑ઩Ї܈٬Ҕൻׇ entB-{a}ޑಔᄊΠǴMBaB ޑ΢ज़ॶ(upper bound)Ǵҭջ٬Ҕൻׇཛྷ൨ޑԋҁǶջࣁǺ Ǿ(6) ܌а཮ӵϦԄ(7)܌ҢǺ Ǿ(7) ӵ݀ϦԄ(7)ԋҥǴ߾ךॺёа௢ᘐ઩Ї a ό፾ ӝӸӧǴࡺஒ઩Ї a մନǴჹ᏾ঁπբॄၩԶقǴ ཮Ԗ׳ӳޑᕴԋҁ(total cost)Ƕ ! 3.4઩Їඹж! ! ӧ 3.3 ࿯٬ҔޑБݤǴᗨฅӧфૈ΢ς࿶ىа ᑔᒧр΋٤ܴᡉόӳޑ઩ЇǴՠྗዴࡋό୼ଯǴচ ӢӧܭǺόӕޑ઩ЇಔᄊǴന٫ϯᏔёૈ཮ࡷᒧό ӕޑӸڗၡ৩ǶᖐٯٰᇥǴ྽ךॺҔcBcurrentBޑኧᏵ଺ ղᘐޑ୷ྗǴӧմନ΋ঁ઩ЇϐࡕǴচҁ٬Ҕ೭ঁ ઩Їޑࢗ၌ᇟѡǴёૈ཮ᙯԶ٬Ҕځдޑ઩ЇǴ܌ аځд઩Їޑཛྷ൨ԛኧ൩ёૈቚуǶӢԜǴךॺӧ ׯᡂ઩ЇಔᄊࡕǴᝩុ٬Ҕᙑޑԋҁၗૻٰ،ۓा մନব΋ঁ઩ЇǴځ҅ዴ܄ࢂёૈౢғୃৡޑǶ܌ аǴךॺว৖΋ঁמѯǴவࢗ၌ᇟѡ΢Ǵѐפрڀ ԖȨඹж܄ȩޑឦ܄໣ǶڀȨඹж܄ȩޑឦ܄໣ύǴ ӵ݀ځύࢌ΋ঁ઩Ї೏մନǴ߾Ӣࣁځдឦ܄ޑ઩ ЇԖଯࡋёૈඹж೭ঁឦ܄ޑ઩ЇǴ୺Չᜪ՟ޑࢗ ၌ीჄǴ߾ךॺёаע೏մନ઩Їޑឦ܄Ǵځ٬Ҕ ઩Ї࣬ᜢޑԋҁϷ઩Їཛྷ൨ԛኧᙯඤډඹжឦ܄ ໣္ۘ҂೏մନޑ઩ЇǶ! մନࢌঁ઩ЇࡕǴന٫ϯᏔ཮،ۓ٬Ҕځдব ΋ঁ઩ЇǻЪȨճ੻ȩޑᙯ౽၀ӵՖȨඤᆉȩǻך ॺӧԜ௦ڗΑ΋ঁᇨᏤԄ(heuristic)ޑБݤǴךॺۓ ကΑ܌ᒏڀԖȨඹж܄ȩޑឦ܄໣Ǵඹж܄ޑឦ܄ ໣໻ሡᢀჸ SQL ࢗ၌ᇟѡջёǴඹжឦ܄໣ϣޑឦ ܄ሡाڀԖаΠٿঁ੝ᗺǺ 1. ೿ࢂӧ where ηѡύǴज़ۓࢗ၌చҹޑឦ܄Ƕ 2. ᒧڗ౗(selectivity)೿եܭന٫ϯᏔ٬Ҕ઩Ї ޑߐᘖ(threshold)Ƕ Ȩճ੻ȩޑᙯ౽ၟ઩Їޑ੝܄ԖᜢǶךॺଷ೛ ΋ঁᜢ߯߄R(relation R)ԖN฽ၗ਑(tuples)Ǵ٬ҔBP + P ᐋ( BP + P -tree)ޑ઩ЇǴ߾ਥᏵ[1]ǴӸڗ઩Їޑԋҁӵ ΠǺ җϦԄ(8)ǴךॺёаᇥǴ٬Ҕ઩ЇӸڗӕ΋ঁၗ ਑߄ޑԋҁεऊᆶᒧڗ౗(selectivity)ԋ҅КǶךॺ ൩٬Ҕ೭ঁ܄፦ٰඤᆉڀȨඹж܄ȩឦ܄໣္઩Ї ޑԋҁǶ ಃΒ೽ϩाᙯ౽ޑࢂ྽٬Ҕ઩ЇਔǴჹၗ਑߄Ӹ ڗޑԋҁǶךॺ٬Ҕ[5]܌ගрޑԋҁኳࠠǹவ p ঁ ।य़ύගڗ nt ฽ၗ਑ޑ।य़Ӹڗኧ(NPA)ीᆉБ ԄǺ ! 3.5س಍Ҟᒵ಍ीၗૻ! ! ࣁΑᡣ 3.3 ࿯ගрޑຑ՗઩Їਏૈޑמѯૈ୼ ჴ౜Ǵךॺ೛ीΑ΋ঁཥޑၗ਑৤ҞᒵޑᆜाǴх ֖Α relation_costǵindex_statisticsǵindex_substitution Οঁၗ਑߄Ƕ೭Οঁၗ਑߄ϣ܌х֖ޑឦ܄ӵ߄ 1 ܌ҢǶ! relation_cost ૶ᒵᜢ߯߄(relation)࣬ᜢޑ୷ҁ ၗૻǶindex_statistics Ϸ index_substitution ၗ਑߄߾ ૶ᒵၗ਑৤୺Չਔ࣬ᜢಕीޑ಍ीၗૻǴନΑ index_substitution ೭ঁၗ਑߄ύឦ܄ޑኧॶሡा࿶ җϦԄ(8)ϷϦԄ(9)ࡪྣᒧڗ౗ޑКٯѐीᆉѦǴځ Ꭹٿঁၗ਑߄ύឦ܄ޑኧॶǴ೿Ѹ໪வ PostgreSQL ၗ਑৤س಍ύޑس಍Ҟᒵ(system catalogs)ࢗளǶ! ၗ਑৤ޑ؂΋ᅿᏹբǴ٩߄ 1 ޑۓက଺׳ཥޑ ୏բǶٯӵ௦ڗൻׇཛྷ൨ਔǴ߾ჹᔈޑ n_table_scan ൩཮у 1ǹԶӧ଺઩Їࢗ၌ਔǴךॺ཮வ SQL ޑᇟ ѡύפр܌٬Ҕޑ઩ЇࢂցԖȨඹж܄ȩޑឦ܄ ໣Ƕӵ݀Ԗޑ၉Ǵ཮٩ྣځᒧڗ౗Ǵࡷᒧр΋ঁ྽ ܌٬Ҕޑ઩ЇόӸӧਔǴനёૈඹඤޑ઩ЇǴ٠ஒ ϐ૶ᒵډ index_substitution ೭ঁၗ਑߄ύǶ྽׳ཥ index_substitutionޑၗ਑ਔǴा٩ྣ 3.4 ࿯௶ॊޑԋ ҁኳࠠǴࡪྣᒧڗ౗ޑКٯٰीᆉᙯඤޑԋҁǶ! Ǿ(8) Ǿ(9)

(5)

! ߄ 1;ၗ਑߄ޑӜᆀϷځ܌х֖ޑឦ܄! ! ! ϦԄ(7)ύǴ ж߄྽ ٬Ҕ઩Ї a ਔǴ᠐ڗᏹբޑԋҁϷᆢៈޑԋҁǴځ ॶ ཮ খ ӳ ฻ ܭ index_statistic ύ ઩ Ї a ޑ

ifile_blks_readǵifile_blks_write ᆶ rfile_blks_read ࣬

уǶ܌аϦԄ(7)ёаׯቪԋǺ! ! Ǿ(10) ྽ࢌ΋ঁ઩Ї೏մନࡕǴךॺߡёа٩ྣ indexidᔠࢗ index_substitution ၗ਑߄Ǵஒёаᙯඤ ޑԋҁीᆉрٰ٠ಕуډ index_statistics ၗ਑߄ ύǶӆ٩ྣ index_statistics ၗ਑߄ύޑၗૻख़ཥी ᆉࡕǴࡷᒧрΠ΋ঁाմନޑ઩ЇǶ! !

4.

س಍ჴᡍ!

!

ך ॺ ஒ ಃ 3 ക ޑ ౛ ፕ ୷ ᘵ ჴ ሞ ჴ բ ӧ PostgreSQL 7.3.3ύ[9]Ǵ٠٬Ҕ phpPgAdmin ଺ࣁ٬ Ҕޣϟय़ޑ໒วπڀǴᙖ๱೸ၸᆛ।ޑᏹբٰӸڗ ၗ਑৤س಍ǴԶЪа TPC-H ޑᆜा(schema)Ϸၗ਑ \11^଺ࣁךॺჴᡍҔޑၗ਑৤ኧᏵǴ٠ࡌҥΑჴᡍ Ҕޑπբॄၩ(х֖ࢗ၌Ϸ׳ཥ)Ƕ! ! 4.1ჴᡍ؁ᡯ! ! २Ӄӧ PostgreSQL ၗ਑৤س಍ύࡌҥ TPC-H ޑၗ਑ǴӆਥᏵךॺ܌ࡌҥޑπբॄၩǴவၗ਑৤ ύᘏڗၗૻٰղᘐ઩Ї፾ό፾ӝӸӧǺ! 1. வ index_statistics ύ ी ᆉ ؂ ΋ ঁ ઩ Ї ޑ ifile_blks_read! ,! ifile_blks_write! ,! rfile_blks_readޑᕴӝǶ! 2. ஒ index_statistics ύ ޑ n_idx_scan ४ а relation_costύޑ table_scan_costǶ! 3. Кၨ 1 ک 2 ޑ่݀Ǵӵ݀ 1 ޑ่݀λܭ 2 ޑ ่݀Ǵ߾όϒ౛཮ǴϸϐǴ1 ޑ่݀εܭ 2 ޑ่݀Ǵ߾Ԝ઩Їό፾ӝӸӧǴਥᏵךॺޑ ᄽᆉݤǴᔈ၀ஒϐմନǶ! 4. ਥ Ᏽ ೏ մ ନ ઩ Ї ޑ indexid Ǵ வ index_substitution ύפрඹж܄ޑឦ܄Ǵ٠ ஒ tran_ifile_blks_read Ϸ tran_rfile_blks_read ᙯඤډඹж܄ޑឦ܄΢Ƕ! 5. ӣډಃ΋؁ᡯǴᝩុࢗפό፾ӝӸӧޑ઩ ЇǶ! 6. ྽܌Ԗޑ઩Ї೿ࢗפֹࡕǴؒԖा೏մନޑ ઩ЇਔǴԜਔޑ઩Їಔᄊ൩ࢂךॺा௢ᙚޑ ઩ЇಔᄊǶ! ! 4.2ჴᡍ่݀! ! ךॺ٬ҔٿᅿБݤǺ΋ᅿࢂԖ٬Ҕ઩Їඹжޑ ᢀۺǴஒմନ઩Їޑճ੻ᙯඤډඹж܄ޑឦ܄ύǹ ќ΋ᅿࣁؒԖ٬Ҕ઩ЇඹжǴൂપஒό಄ӝԋҁޑ ઩ЇմନǶ! ! ȜБݤ΋ȝค٬Ҕ઩ЇඹжޑБݤ! ٩ྣךॺ܌ࡌҥޑ index_statistics ၗ਑߄Ǵך ॺёаीᆉ؂΋ঁ઩ЇޑԋҁϷ٬Ҕൻׇཛྷ൨ޑ ԋҁǴӵ߄ 2 ܌Ңǹ઩Ї c_addressǵc_phoneǵ c_acctbalޑ઩Їཛྷ൨ԋҁεܭൻׇཛྷ൨ԋҁǴࡺԜ Οঁ઩Ї೿ό፾ӝӸӧǴӵ݀ؒԖ٬Ҕ઩Їޑඹж БݤǴ߾઩Їಔᄊࣁ{c_nameǵc_nationkey}Ǵךॺ ஒϐڮӜࣁ C1Ǵࡺ C1={c_nameǵc_nationkey}Ƕ! ! ȜБݤΒȝԖ٬Ҕ઩ЇඹжޑБݤ! ӵ݀٬Ҕ઩ЇඹжޑБݤǴ߾ਥᏵךॺගрޑ ᄽᆉݤǴ཮Ӄஒനό፾ӝӸӧޑ઩Їմନǹҗ߄ 3 ޕǴc_phone നό፾ӝӸӧǴࡺஒϐմନǴ٠ਥᏵ

c_phone ޑ indexid ѐࢗפ index_substitution ၗ਑

߄Ǵࢗפޑ่݀ว౜մନ c_phone ϐࡕ཮ஒԋҁᙯ ඤډ c_address Ϸ c_acctbalǴ܌аךॺाஒᙑޑ಍ ीၗૻ׳ཥǴஒᙯඤࡕޑԋҁϩձуډ c_address Ϸ c_acctbal ύǴӵ߄ 3 ܌Ңǹ׳ཥֹ index_statistics ࡕǴाख़ཥीᆉࢂցᗋԖό፾ӝӸӧޑ઩ЇǴ่݀ ว౜ c_acctbal ಄ӝմନޑచҹǴ܌аाஒ c_acctbal մ ନ ٠ ஒ ԋ ҁ ᙯ ඤ ډ ඹ ж ܄ ޑ ឦ ܄ ύ Ǵ ٩ ྣ index_substitution ၗ਑߄Ǵc_acctbal ؒԖඹж܄ޑ ឦ܄Ǵࡺѝሡஒ c_acctbal வ಍ीၗ਑ύմନջёǴ ӵ߄ 5ǹӧմନ c_phone Ϸ c_acctbal ࡕǴ઩Їಔᄊ ᡂࣁ{ c_nameǵc_addressǵc_nationkey ~Ǵךॺஒϐ ڮ Ӝ ࣁ C2 Ǵ ࡺ C2={c_name ǵ c_address ǵ c_nationkey}Ƕ! !

(6)

߄ 2;٬Ҕ઩Їޑԋҁᆶൻׇཛྷ൨ޑԋҁ! ! ! ߄ 3; մନ c_phone ࡕǴӚ઩Їޑ࣬ᜢԋҁ! ! ! ߄ 4; մନ c_acctbal ࡕǴځд઩Їޑ࣬ᜢԋҁ! ! ! ךॺ٬Ҕ೭ٿঁ઩Їಔᄊ(C1 Ϸ C2)Ϸπբॄ ၩჴሞᡍ᛾ѬॺޑਏૈǹךॺӧԜ٬Ҕന٫ϯᏔޑ Ⴃ՗ॶ(EXPLAIN)Ϸჴሞ୺Չπբॄၩ܌޸຤ޑਔ ໔Ǵӵ߄ 5 ࢂന٫ϯᏔႣ՗ޑ่݀Ǵ߄ 6 ࢂჴሞ୺ Չπբॄၩ޸຤ޑਔ໔ǹךॺว౜Ǵόᆅࢂന٫ϯ ᏔޑႣ՗܈ࢂჴሞ୺Չޑ่݀Ǵ೿ᡉҢр٬Ҕ઩Ї ඹжБݤٰ௢ᙚ઩Їಔᄊޑྗዴ܄Ϸਏૈၨ٫ǴΨ ᛾ჴΑךॺගрޑБݤёаԖਏޑ௢ᙚӝ፾ޑ઩ ЇǴٰှ،઩Їᒧ᏷ޑୢᚒǶ! ! ߄ 5;C1(ค઩Їඹж)ᆶ C2(Ԗ઩Їඹж)ਏૈКၨ! ! ! ߄ 6;C1(ค઩Їඹж)ᆶ C2(Ԗ઩Їඹж)ჴሞ୺Չ ޑਏૈ! !

!

5.

่ፕ!

!

ҁፕЎගрΑ΋ঁ٬Ҕ಍ीၗૻޑБݤǴճҔ Ӹӧܭၗ਑৤س಍Ҟᒵύޑ಍ीၗૻǴٰຑ՗઩Ї ፾ό፾ӝӸӧǹᙖҗմନό፾ӝӸӧޑ઩Їٰቚу ၗ਑৤ޑਏૈǶךॺஒ౛ፕᔈҔӧ໒ܫচۈዸޑ PostgreSQLၗ਑৤س಍΢ǴਥᏵ૶ᒵӧس಍Ҟᒵύ ޑ಍ीၗ਑ٰीᆉ؂΋ঁ઩Їޑ઩Їᔞਢޑ୔༧ ӸڗኧϷၗ਑߄ᔞਢޑ୔༧Ӹڗኧ٠Ъуᕴଆ ٰǴஒځ่݀کൻׇཛྷ൨ޑԋҁКၨǴӵ݀εܭൻ ׇཛྷ൨ޑԋҁǴ߾Ԝ઩Їό፾ӝӸӧǴ܌аѸ໪ஒ ϐմନǴ٠Ъஒځԋҁᙯඤډඹж܄ឦ܄໣ύǹӧ ჴᡍύǴךॺຑ՗ԖԵໆඹж܄ឦ܄໣کؒԖԵໆ ඹж܄ឦ܄໣Ǵ೭ٿᅿ௃׎ޑ઩ЇಔᄊǴךॺว౜ ԖԵໆඹж܄ឦ܄໣ޑ่݀ǴځਏૈၨӳǴ܌аԜ БݤёаԖਏޑගٮၗ਑৤ᆅ౛঩ব٤઩Їॶள Ӹӧǵব٤઩ЇόॶளӸӧǴჹ᏾ঁၗ਑৤ޑᆅ౛ πբ׳ԖᔅշǶ!

!

ୖԵЎ᝘!

!

[1] Barcucci, E., Pinzani, R., and Sprugnoli, R., “Optimal Selection of Secondary Indexes“, IEEE Transactions on Software Engineering, Vol. 16, No. 1, 1990. pp. 32-38.

[2] Caprara, A., Fischetti, M., and Maio, D., “Exact and Approximate Algorithms for the Index Selection Problem in Physical Database Design“, IEEE Transactions on Knowledge and Data Engineering, Vol. 7, No. 6, December 1995, pp. 955-967.

[3] Caprara, A., and Salazar, J.J., “A Branch-and-Cut Algorithm for the Index Selection Problem“, Discrete Applied Mathematics 92, 1999, pp. 111-134.

[4] Chaudhuri, S., Narasayya, V., "An Efficient, Cost-Driven Index Selection Tool for Microsoft SQL Server," in Proceedings of the 23rd VLDB Conference Athens, Greece, 1997, pp146-155. [5] Choenni, S., Blanken, H.M., and Chang, T.,

“Index Selection in Relational Databases“, In Proceedings International Conference on Computing and Information, April 1993, pp. 491-496.

[6] Cornuejols, G., Nemhauser, G.L., and Wolsey, L.A., “The Uncapacitated Facility Location Problem“, in P.B. Mirchandani and R.L. Francis (Ed.s), Discrete Location Theory, John Wiley, New York, 1991. pp. 119-171.

[7] Finkelstein, S., Schkolnick, M., and Tiberio, P., “Physical Database Design for Relational Databases“, ACM Transactions on Database Systems, Vol. 13, No. 1, March 1988, pp. 91-128.

[8] Oracle Manager Quick Tours http://otn.oracle.com/products/oem/htdocs/qtour s/tuning/tune.htm

[9] PostgreSQL Documentation, [Administrator’s Guide], http://www.postgresql.org/docs/.

[10]Silberschatz, A., Korth, F. H., and Sudarshan, S., “Database System Concepts“, 4ed, Mc Graw Hill, Singapore, 2001, pp. 621-623.

[11]Transaction Processing Performance Council, TPC-H, http://www.tpc.org/tpch/.

[12]Valentin, G., Zuliani, M., Zilio, D. C., Lohman, G., and Skelley, A., “DB2 Advisor: An Optimizer Smart Enough to Recommend Its Own Indexes“, Proceedings, 16th IEEE Conference on Data Engineering, San Diego, CA, 2000, pp.101-110.

參考文獻

相關文件

– File and index layers organize records on files, and manage the indexing data

• The  ArrayList class is an example of a  collection class. • Starting with version 5.0, Java has added a  new kind of for loop called a for each

The research proposes a data oriented approach for choosing the type of clustering algorithms and a new cluster validity index for choosing their input parameters.. The

The Hilbert space of an orbifold field theory [6] is decomposed into twisted sectors H g , that are labelled by the conjugacy classes [g] of the orbifold group, in our case

important to not just have intuition (building), but know definition (building block).. More on

Know how to implement the data structure using computer programs... What are we

• Recorded video will be available on NTU COOL after the class..

—we cannot teach all, but with reading you can learn all 3-6: 3 hour teaching, 6 hour reading/writing after class as important as writing assignments:. some may show up