乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      oracle筆記整理9——性能調(diào)優(yōu)之索引、表分區(qū)、索引分區(qū)

       堂tj77m7tpne37 2018-07-17

      1. 索引

      1) 需要建索引的列

      a) where從句中頻繁使用的關鍵字。
      b) sql語句中頻繁用于表連接的字段。
      c) 可選擇性高(重復值少)的字段。

      2) 索引限制條件

      a) where條件中索引列上使用了否定操作符(比如:<>,!=,is null,is (not) null),將不會使用索引,直接全表掃描,此時可以把部分否定操作符換成or形式或者union all的形式來執(zhí)行。
      or與in等效,or關鍵字是否使用索引,視情況而定。

      b) 索引列上使用了函數(shù)或運算操作,則不會使用索引,轉而全表掃描,但可以建立相應的函數(shù)索引來實現(xiàn)。

      c) like索引列時,通配符出現(xiàn)在詞首時不會使用索引,其他位置將使用。

      d) 索引列與給定變量的類型不一致時,將不會使用索引(oracle 11g中,可以進行varchar2至number的自動轉換,此種情況索引正常使用,反之則沒有,故盡量保持類型一致,不要寄希望于oracle的自動轉換,否則容易搞混淆)

      e) 頻繁修改的列上最好不要建立索引,維護索引的開銷太大。

      3) 組合索引

      由多個列構成的索引。
      如:create index idx_tmp on temp(col1,col2,col3,……)
      引導列(leading column):col1列為引導列;
      限制條件中包含先導列時,該限制條件才會使用該組合索引。因此組合索引中應該按照列的使用頻繁程度從高到底排列。

      4) 并行索引

      a) 快速創(chuàng)建并行索引

      create index idx on table_name(id) parallel 4
      • 1

      b) 取消并行索引
      服務器資源緊張時,并行索引會引起更嚴重的資源爭用,需要把并行度改回來。

      alter index idx noparallel;
      • 1

      5) 監(jiān)視索引使用情況

      a) alter index index_name monitoring usage;

      b) select * from V$OBJECT_USAGE;

      c) 刪除那些不被使用的索引,否則將阻礙性能 。

      6) 索引的本質(zhì)

      oracle一般使用平衡二叉樹(B—tree)來存儲索引,在一個平衡樹索引(B-tree index)中,最底層的索引塊(葉塊(leaf block))存儲了被索引的數(shù)據(jù)值,以及對應的 rowid。葉塊之間以雙向鏈表的形式相互連接。位于葉塊之上的索引塊被稱為分支塊,分枝塊中包含了指向下層索引塊的指針。

      2. 表分區(qū)

      1) 原理

      :分區(qū)表通過對分區(qū)列的判斷,把分區(qū)列不同的記錄,放到不同的分區(qū)中。

      2) 優(yōu)勢


      a) 增強可用性:如果表的一個分區(qū)發(fā)生故障,其余的分區(qū)仍可以使用。
      b) 均衡I/O:通過把表的不同分區(qū)分配到不同的磁盤來平衡I/O 改善性能,從10g開始oracle提供ASM存儲管理模式自動均衡I/O.
      c) 提高查詢速度:對大表的增刪改查分解到不同的分區(qū)來并行執(zhí)行。

      3) 分類

      :range、hash、list、組合分區(qū)

      4) range:范圍分區(qū)

      Range分區(qū)是應用范圍比較廣的表分區(qū)方式,它是以列的值的范圍來做為分區(qū)的劃分條件,將記錄存放到列值所在的range分區(qū)中。當數(shù)據(jù)在范圍內(nèi)均勻分布時,性能最好。如按照時間劃分。如果某些記錄暫無法預測范圍,可以創(chuàng)建maxvalue分區(qū),所有不在指定范圍內(nèi)的記錄都會被存儲到maxvalue所在分區(qū)中。

      5) hash:哈希分區(qū)

      hash分區(qū)是在列的取值難以確定的情況下,會將表中的數(shù)據(jù)平均分配到你指定的幾個分區(qū)中,列所在分區(qū)是依據(jù)分區(qū)列的hash值自動分配。

      6) list:列表分區(qū)

      List分區(qū)也需要指定列的值,其分區(qū)值必須明確指定(即該列值是可以枚舉的),通常建議使用要創(chuàng)建一個default分區(qū)存儲那些不在明確值范圍內(nèi)的記錄

      7) 組合分區(qū):

      如果某表按照某列分區(qū)之后,仍然較大,或者是一些其它的需求,還可以通過分區(qū)內(nèi)再建子分區(qū)的方式將分區(qū)再分區(qū),即組合分區(qū)的方式。

      8) 聯(lián)機重定義

      普通表轉換分區(qū)表,可以通過聯(lián)機重定義方法來實現(xiàn)。

      3. 索引分區(qū)

      1) 概念

      對大數(shù)據(jù)量的索引進行分區(qū)同樣能夠優(yōu)化應用系統(tǒng)的性能。oracle索引分區(qū)分為局部/本地索引分區(qū)和全局索引分區(qū)。

      2) 局部索引分區(qū)

      局部索引分區(qū)反應基礎表的表結構,使用和分區(qū)表同樣的分區(qū)字段來進行索引分區(qū)。獨立性強 ,可以單獨重建,如果只有一個分區(qū)需要維護,則只有一個本地索引受影響。

      3) 全局索引分區(qū)

      全局索引分區(qū)不反應基礎表的表結構,使用的字段與分區(qū)表的分區(qū)字段不同,可以保證所有分區(qū)中的記錄的唯一性。無論表是否分區(qū),都可以進行全局索引分區(qū)。

      4) 局部索引

      建立在表分區(qū)的基礎上,每一個表分區(qū)對應一個索引段,索引列與表分區(qū)列無關。局部索引之間相互獨立。

      5) 全局索引

      普通表或者跨表分區(qū)的索引,可以實現(xiàn)所有分區(qū)中記錄的唯一性。

        本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報。
        轉藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多