<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    mvc 架構

      BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
      74 Posts :: 60 Stories :: 5 Comments :: 0 Trackbacks
    posted on 2007-09-10 13:42 e全 閱讀(351) 評論(0)  編輯  收藏

    ? 1. SQL優化的原則是:將一次操作需要讀取的BLOCK數減到最低,即在最短的時間達到最大的數據吞吐量。 ?
    ? 調整不良SQL通常可以從以下幾點切入: ?
    ? ? 檢查不良的SQL,考慮其寫法是否還有可優化內容 ?
    ? ? 檢查子查詢 ? 考慮SQL子查詢是否可以用簡單連接的方式進行重新書寫 ?
    ? ? 檢查優化索引的使用 ?
    ? ? 考慮數據庫的優化器 ?
    ? ?
    ? 2. 避免出現SELECT ? * ? FROM ? table ? ? 語句,要明確查出的字段。 ? ?
    ? ?
    ? 3. 在一個SQL語句中,如果一個where條件過濾的數據庫記錄越多,定位越準確,則該where條件越應該前移。 ?
    ? ?
    ? 4. 查詢時盡可能使用索引覆蓋。即對SELECT的字段建立復合索引,這樣查詢時只進行索引掃描,不讀取數據塊。 ?
    ? ?
    ? 5. 在判斷有無符合條件的記錄時建議不要用SELECT ? COUNT ? (*)和select ? top ? 1 ? 語句。 ?
    ? ?
    ? 6. 使用內層限定原則,在拼寫SQL語句時,將查詢條件分解、分類,并盡量在SQL語句的最里層進行限定,以減少數據的處理量。 ?
    ? ?
    ? 7. 應絕對避免在order ? by子句中使用表達式。 ?
    ? ?
    ? 8. 如果需要從關聯表讀數據,關聯的表一般不要超過7個。 ?
    ? ?
    ? 9. 小心使用 ? IN ? 和 ? OR,需要注意In集合中的數據量。建議集合中的數據不超過200個。 ?
    ? ?
    ? 10. <> ? 用 ? < ? 、 ? > ? 代替,>用>=代替,<用<=代替,這樣可以有效的利用索引。 ?
    ? ?
    ? 11. 在查詢時盡量減少對多余數據的讀取包括多余的列與多余的行。 ?
    ? ?
    ? 12. 對于復合索引要注意,例如在建立復合索引時列的順序是F1,F2,F3,則在where或order ? by子句中這些字段出現的順序要與建立索引時的字段順序一致,且必須包含第一列。只能是F1或F1,F2或F1,F2,F3。否則不會用到該索引。?

    13. 多表關聯查詢時,寫法必須遵循以下原則,這樣做有利于建立索引,提高查詢效率。格式如下select ? sum(table1.je) ? from ? table1 ? table1, ? ? table2 ? table2, ? ? table3 ? ? table3 ? where ? (table1的等值條件(=)) ? and ? (table1的非等值條件) ? and ? (table2與table1的關聯條件) ? and ? (table2的等值條件) ? and ? (table2的非等值條件) ? and ? (table3與table2的關聯條件) ? and ? (table3的等值條件) ? and ? (table3的非等值條件)。 ?
    ? ? ? 注:關于多表查詢時from ? ? 后面表的出現順序對效率的影響還有待研究。 ?
    ? ?
    ? 14. 子查詢問題。對于能用連接方式或者視圖方式實現的功能,不要用子查詢。例如:select ? name ? from ? customer ? where ? customer_id ? in ? ( ? select ? customer_id ? from ? order ? where ? money>1000)。應該用如下語句代替:select ? name ? from ? customer ? inner ? join ? order ? on ? customer.customer_id=order.customer_id ? where ? order.money>100。 ?
    ? ?
    ? 15. 在WHERE ? 子句中,避免對列的四則運算,特別是where ? 條件的左邊,嚴禁使用運算與函數對列進行處理。比如有些地方 ? substring ? 可以用like代替。 ?
    ? ?
    ? 16. 如果在語句中有not ? in(in)操作,應考慮用not ? exists(exists)來重寫,最好的辦法是使用外連接實現。 ?
    ? ? ?
    ? 17. 對一個業務過程的處理,應該使事物的開始與結束之間的時間間隔越短越好,原則上做到數據庫的讀操作在前面完成,數據庫寫操作在后面完成,避免交叉。 ?
    ? ?
    ? 18. 請小心不要對過多的列使用列函數和order ? by,group ? by等,謹慎使用disti軟件開發t。 ?
    ? ?
    ? 19. 用union ? all ? 代替 ? union,數據庫執行union操作,首先先分別執行union兩端的查詢,將其放在臨時表中,然后在對其進行排序,過濾重復的記錄。 ?
    ? 當已知的業務邏輯決定query ? A和query ? B中不會有重復記錄時,應該用union ? all代替union,以提高查詢效率。

    數據更新的效率 ?
    ? 1. 在一個事物中,對同一個表的多個insert語句應該集中在一起執行。 ?
    ? 2. 在一個業務過程中,盡量的使insert,update,delete語句在業務結束前執行,以減少死鎖的可能性。 ?


    數據庫物理規劃的效率 ?
    ? ? ?
    ? 為了避免I/O的沖突,我們在設計數據庫物理規劃時應該遵循幾條基本的原則(以ORACLE舉例): ?
    ? ? table和index分離:table和index應該分別放在不同的tablespace中。 ?
    ? ?
    ? ? Rollback ? Segment的分離:Rollback ? Segment應該放在獨立的Tablespace中。 ?
    ? ?
    ? ? System ? Tablespace的分離:System ? Tablespace中不允許放置任何用戶的object。(mssql中primary ? filegroup中不允許放置任何用戶的object) ?
    ? ?
    ? ? Temp ? Tablesace的分離:建立單獨的Temp ? Tablespace,并為每個user指定default ? Temp ? Tablespace ?
    ? ?
    ? ?避免碎片:但segment中出現大量的碎片時,會導致讀數據時需要訪問的block數量的增加。對經常發生DML操作的segemeng來說,碎片是不能完全避免的。所以,我們應該將經常做DML操作的表和很少發生變化的表分離在不同的Tablespace中。 ?
    ? ? ?
    ? 當我們遵循了以上原則后,仍然發現有I/O沖突存在,我們可以用數據分離的方法來解決。 ?
    ? ? 連接Table的分離:在實際應用中經常做連接查詢的Table,可以將其分離在不同的Taclespace中,以減少I/O沖突。 ?
    ? ?
    ? ? 使用分區:對數據量很大的Table和Index使用分區,放在不同的Tablespace中。 ?
    ? ? ?
    ? 在實際的物理存儲中,建議使用RAID。日志文件應放在單獨的磁盤中。??


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 免费人成无码大片在线观看| 韩国免费三片在线视频| 亚洲精品成人无限看| v片免费在线观看| 亚洲欧洲自拍拍偷精品 美利坚| 青青草国产免费国产是公开| 亚洲av永久无码| 在线观看无码的免费网站| 成人免费淫片在线费观看| 亚洲国产精品成人午夜在线观看| 大地资源免费更新在线播放| 亚洲va在线va天堂成人| 成年女人喷潮毛片免费播放| 亚洲精品精华液一区二区 | 精品国产免费观看久久久| 亚洲色在线无码国产精品不卡| 在线jlzzjlzz免费播放| 日韩在线观看视频免费| 国产av无码专区亚洲av桃花庵| AAA日本高清在线播放免费观看| 久久久久亚洲AV无码专区首| 亚洲一级毛片免费看| 亚洲日韩国产AV无码无码精品 | 国产亚洲精午夜久久久久久| 免费网站看av片| ww亚洲ww在线观看国产| 国产麻豆剧传媒精品国产免费 | 亚洲美免无码中文字幕在线| 四虎国产精品免费久久| 国产亚洲视频在线观看| 久久精品国产精品亚洲艾草网| 成人免费在线看片| 黄色网址大全免费| 色婷婷亚洲十月十月色天| 成年男女免费视频网站| 国产黄色片免费看| 国产成人亚洲合集青青草原精品| 亚洲精品老司机在线观看| 久久精品国产免费观看三人同眠 | 久久精品无码免费不卡| 18亚洲男同志videos网站|