- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第二章最佳化處理的觀念
高等資料庫報告 查詢處理
【Query Processing】
指導教授:陳彥良教授
學 生:陳智宗修訂
系 級:資管所研一
學 號((目錄((
第零章 概述 第零章 概述
對於一個特定的查詢,通常會有很多的方法來得到其結果,舉例來說,在SQL中我們可以把同一個查詢用許多方法表示,每一種方法等於是提出一個策略來得到查詢結果,而一個好的策略和一個壞的策略在執行時間上的差異可能會相當的大,我們不能期望使用者每次所給定的查詢方法都是最有效率的,所以如何將使用者所下的查詢轉換成會得到相同結果而且更有效率的查詢就變成是資料庫管理系統的責任了。
在資料庫管理系統中負責這個轉換過程的程式稱之為”最佳化處理程式”,由上段我們得知最佳化處理程式主要的工作為查詢轉換,不過這樣似乎有點模糊,仔細的說,最佳化處理程式的工作主要是先取得使用者用系統查詢語言表示的查詢,剖析查詢,將其轉換成對等的內部運算式後,再運用一些法則將運算式用較有效率且較精簡的運算式表示,並評估該查詢所需的檔案存取與計算,然後選擇最有效率的。甚至它可以產生執行這存取與計算的程式碼,而非只是評估查詢而已。通常會有一套軟體,軟體中包含了讓最佳化處理程式執行真正的檔案存取的檔案管理常式。
在網路模式和階層模式中,查詢最佳化絕大部份是留給應用程式的程式設計師來做,這是因為這兩個模式的資料操控語言的敘述通常是嵌在主機的程式語言中,且在缺乏完整的應用程式的知識下,要將網路或是階層的查詢轉換成相等的查詢並非是件容易的事。
然而在關連模式中查詢最佳化處理中,使用者對於資料庫的查詢,最常用到的就是SQL了,SQL比起C或COBOL等高階程式語言,有更高的”抽象層次”(Higher Level of Abstraction),它讓使用者可以只要說明「我要什麼」(What),而不必指示「如何擷取」(How),探訪資料庫以滿足使用者請求的過程是由系統自動執行,而非由使用者指定,所以關連式系統有時也被稱之為”自動探訪系統” (automatic navigation system)。在圖一中,我們可以明顯的看出自動探訪的優點,圖中的上半部是關連式系統中的SQL敘述,僅需兩行即可讓使用者達成新增的功能,然而在下半部,則是非關連式系統所用的程式碼,遠比關連式系統複雜許多。
然而關連式系統的所有運算皆是集合間的運算,所以使得關連式系統在效能上較非關連式系統要來得差,因此查詢最佳化處理便成了關連式系統中一個很重要的課題,在本篇報告中,即是針對關連式資料庫的最佳化處理做闡述。
事實上使用”最佳化’這個字眼並不是很恰當,因為將使用者所下的查詢轉換成”最佳的”通常需要考慮許多的可行策略,考慮過程中還包括了參考資料庫的一些統計資料,若要最佳,那麼這些統計資料便要維持最新,系統要因此額外增加負擔,花費的時間,資源自然就多,也就是”成本”是極其昂貴的,所以通常我們不會對每個查詢都做”最佳化”的處理,但是我們可以保証的是,經過最佳化處理過的查詢就大部分的情況來說會比原來的查詢來得有效率,所以”最佳化”的過程似乎稱其為”改良”或”改進”會比較恰當的。
SQL敘述 INSERT INTO SP ( S# , P# , QTY)
VALUE ( ‘S4’ , ‘P3’ , 1000) ;
非關連式系統之程式碼 MOVE ‘S4’ TO S# IN S
FIND CALC S
ACCEPT S-SP-ADDR FROM S-SP CURRENCY
FIND LAST SP WITHIN S-SP
while SP found PERFORM
ACCEPT S-SP-ADDR FROM S-SP CURRENCY
FIND OWNER WITHIN P-SP
GET P
IF P# IN P ‘P3’
leave loop
ENDIF
FIND PRIOR SP WITHIN S-SP
END-PERFORM
MOVE ‘P3’ TO P# IN P
FIND CALC P
ACCEPT P-SP-ADDR FROM P-SP CURRENCY
FIND LAST SP WITHIN S-SP
while SP found PERFORM
ACCEPT P-SP-ADDR FROM P-SP CURRENCY
FIND OWNER WITHIN S-SP
GET S
IF S# IN S ‘S4’
leave loop
END-IF
FIND PRIOR SP WITHIN P-SP
END-PERFORM
MOVE 1000 TO
您可能关注的文档
- 1-2集合的運算.pdf
- 面向领域科技文献的句子级创新点抽取研究-现代图书情报技术.pdf
- 基于数据分离的安全存储算法.pdf
- 第一章概論(邏輯、集合、數).pdf
- 數學在多媒體上的應用-本系其他網站.pdf
- 第一章集与集类中的点集.pdf
- 集合动态规划1.pdf
- 2機率.pdf
- 预备知识-设为主页.pdf
- thecarryingcapacitycalculationandfiniteelementanalysisto.pdf
- 2025至2030中国自动割草机行业产业运行态势及投资规划深度研究报告.docx
- 2025至2030中国自动张力控制器行业市场占有率及投资前景评估规划报告.docx
- 2025至2030中国自主式工业洗地机行业运营格局及前景动态研究报告.docx
- 2025至2030中国自动焊接机器人系统行业产业运行态势及投资规划深度研究报告.docx
- 2025至2030中国自治代理行业市场占有率及投资前景评估规划报告.docx
- 2025至2030中国自动平面刨床行业市场占有率及投资前景评估规划报告.docx
- 2025至2030中国自动线圈插入机行业市场占有率及投资前景评估规划报告.docx
- 2025至2030中国自主农场设备行业市场占有率及投资前景评估规划报告.docx
- 2025至2030中国自动去毛刺系统行业市场占有率及投资前景评估规划报告.docx
- 2025至2030中国自动化样品制备行业产业运行态势及投资规划深度研究报告.docx
文档评论(0)