志當(dāng)存高遠(yuǎn),功到自然成!

          少年強(qiáng)則中國強(qiáng),少年進(jìn)步則中國進(jìn)步!

          BlogJava 首頁 新隨筆 聯(lián)系 聚合 管理
            53 Posts :: 2 Stories :: 2 Comments :: 0 Trackbacks
          建立Clustered索引原則:
          1、Primary key,但必須滿足以下條件:A、常用于Where條件,B、插入記錄時(shí)的字段值是隨機(jī)的(不能用于順序增加的字段,否則將增加最后一個(gè)數(shù)據(jù)頁的lock等待時(shí)間)
          2、用于范圍查詢的字段,如 col1 between 100 and 200; col12>;62 and <70;
          3、用于order by的字段
          4、不經(jīng)常改變(update)的字段
          5、用于連接條件的字段
          其他有關(guān)建立索引的原則:
          1、如果索引是唯一的,將其定義為Unique
          2、如果使用引用表索引(foreign key ... reference),被引用的列必須建立唯一索引
          3、如果建立索引的表有頻繁的插入(Insert)操作,使用fillfactor減少數(shù)據(jù)頁的分裂、提高并發(fā)性能并減少死鎖
          4、如果在一個(gè)只讀表上建立索引,將其fillfactor設(shè)為100以盡可能壓縮數(shù)據(jù)和索引空間
          5、盡可能減少單個(gè)索引的長度
          6、在滿足使用的前提下,盡可能使用小容量的數(shù)據(jù)類型(如用numeric代替char)
          7、數(shù)值(numeric)的比較在內(nèi)部操作上比字符(string)略快
          8、變長字符串(varchar)和二進(jìn)制(binary)類型比定長(fixed-length)類型需要更多的系統(tǒng)負(fù)載
          9、只要可能,使用定長(fixed-length)、非空(non-null)、短(short)的數(shù)據(jù)類型字段作為索引
          10、連接條件兩端的索引必須是兼容的(最好是同一類型),如果需要進(jìn)行數(shù)據(jù)轉(zhuǎn)換的話,連接索引將不能發(fā)揮作用
          建立復(fù)合字段索引的原則
          1、當(dāng)條件內(nèi)不包含復(fù)合索引的第一個(gè)字段時(shí),有兩種可能:A、當(dāng)所有select的字段均包含在復(fù)合索引內(nèi)時(shí),做所有索引頁的遍歷查詢,B、當(dāng)select中包含非復(fù)合索引字段時(shí),做全表數(shù)據(jù)頁的遍歷查詢,既此時(shí)索引對檢索無效。
          2、復(fù)合索引優(yōu)點(diǎn):A、提供索引覆蓋(index covering)的機(jī)會,但僅限于所有查詢(select)字段均包含在索引內(nèi),B、當(dāng)查詢條件使用到復(fù)合索引的所有字段時(shí),所需要時(shí)間少于這些字段建立單獨(dú)索引的情況,C、復(fù)合索引有利于強(qiáng)制多個(gè)屬性合并后的唯一性限制
          3、復(fù)合索引缺點(diǎn):A、需要更多的索引空間,減少每個(gè)索引頁包含的索引記錄數(shù),并增加索引頁數(shù)目,B、對復(fù)合索引中任何一個(gè)字段的變化(update或insert)都會更新索引,因此復(fù)合索引必須選擇不進(jìn)行變化的字段組成
          4、差的復(fù)合索引特點(diǎn):A、復(fù)合索引長度接近于記錄長度,B、復(fù)合索引中只有少量字段用于查詢
          SYBASE建立索引的原則

          補(bǔ)充一點(diǎn):

                  --創(chuàng)建非聚集索引

                  1.滿足查詢條件的數(shù)據(jù)不超過20%
                 
                  2.能實(shí)現(xiàn) index covering
                 
                  3.用于集函數(shù)、連接、group by和order by的列
                 
                  4.要權(quán)衡索引對查詢速度的加快與降低修改速度之間的利弊


          --刪除影響性能的索引
                 
                  如果一個(gè)應(yīng)用在白天執(zhí)行數(shù)據(jù)修改,在夜間生成報(bào)表,
                 
                  就需要在早晨刪除索引,在晚上再把索引重建起來。
                 
                  另外許多系統(tǒng)設(shè)計(jì)者創(chuàng)建許多優(yōu)化器很少使用的索引,
                 
                  可以根據(jù)showplan,把沒有用的索引刪除。
          主站蜘蛛池模板: 潞西市| 丰城市| 慈溪市| 开封县| 湖州市| 嘉禾县| 舟曲县| 宜春市| 舞钢市| 泸州市| 三门峡市| 永平县| 皮山县| 漳州市| 松江区| 巴彦淖尔市| 青阳县| 东至县| 泰兴市| 裕民县| 隆安县| 嘉定区| 新乐市| 宜川县| 济南市| 额济纳旗| 游戏| 喜德县| 朝阳市| 凯里市| 遂平县| 横山县| 兴和县| 城口县| 德令哈市| 富宁县| 清原| 射阳县| 赣榆县| 襄城县| 驻马店市|