第七章关联式代数简介.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第七章关联式代数简介.ppt

數位教材-資料庫系統設計與應用 關聯式代數特性 關聯式代數特性 例如:前面介紹的除法運算,可以利用等價轉換而成為一連串的投影運算、乘積運算與差集運算,這種關聯式代數的轉換特性主要可以分成結合律 (Associativity Rule)、交換律 (Commutativity Rule) 與分配律 (Distributivity Rule)。 結合律(Associativity Rule) 交換律(Commutativity Rule) 交換律(cont.) 交換律(cont.) 交換律(cont.) 分配律(Distributivity Rule) 分配律(cont.) 關聯式代數的最佳化 通常最佳化查詢的原則是將二元運算,例如:關聯運算、除法運算等,延遲到越後面做越好,儘量讓選擇運算或投影運算先過濾掉不需要的值組,以便執行二元運算。 關聯式代數的最佳化(cont.) 關聯式代數的最佳化(cont.) 關聯式代數的最佳化(cont.) 關聯式代數的最佳化(cont.) 關聯式代數的最佳化(cont.) 增進效能的方法 避免在查詢中使用函數,特別是包含索引列,因為函數的存在將會關閉索引。 重覆看看在 WHERE 子句中的每一列以決定是否適當的用了索引,如果一個小型的表格或者 SELECT 指令接收到大量的資料時,這時使用索引並不是一個明智的做法,而且你甚至應該停止索引或把它們結束掉。 增進效能的方法(cont.) 設法避免在 LIKE 函數時使用萬用字元 % 符號或是任一字元 _,例如: ENAME LIKE ‘M%’。因為 LIKE 函數會造成完全的表格掃描。儘量用較小且較明確的範圍做查詢,例如:ENAME BETWEEN ‘Mad’ AND ‘Max’。再者別在索引列中使用計算式,因為這將會關閉掉索引的使用。 增進效能的方法(cont.) 不要使用非必須的子查詢。 不要對非必要的欄位發出要求。例如:使用“ * ”符號以選擇所有的欄位,這通常不是好的做法。 不要對你用不到的列發出要求,所以請謹慎使用 WHERE 子句做篩選。同樣的,只有在你必須要做群組總結時,才使用 ORACLE 群組函數中提供的功能,例如:AVG 或是 MAX。 增進效能的方法(cont.) 善用狄摩根定律(DeMorgan’s Law),例如:NOT (SAL 1200 AND JOB = ‘SALESMAN’) 可以轉換成 (SAL = 1200 AND JOB ‘SALESMAN’)。 把條件中 “… ALL(…)” 改成“… MAX(…)”,例如:SAL ALL (SELECT SAL FROM …) 可改成 SAL MAX (SELECT SAL FROM …)。 增進效能的方法(cont.) 建議可以選擇利用 ”IN 子查詢” 來代替 “exists 子查詢”。 建議可以將 “IN 條件範圍”轉成多個利用 OR 的個別條件,例如:” DEPTNO IN (10, 20, 30)” 可改成 “DEPTNO = 10 OR DEPTNO = 20 OR DEPTNO = 30”。 關聯式代數運算後的主鍵 關聯式代數運算後的主鍵(cont.) 聯式代數運算後的主鍵(cont.) * *

您可能关注的文档

文档评论(0)

youbika + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档