網(wǎng)站建設(shè)之?dāng)?shù)據(jù)庫如何優(yōu)化

2015-06-18    分類: 網(wǎng)站設(shè)計

數(shù)據(jù)庫優(yōu)化是一門復(fù)雜的學(xué)問。數(shù)據(jù)庫引擎優(yōu)化顧問用于分析在一個或多個數(shù)據(jù)庫中運行的工作負(fù)荷的性能效果。分析數(shù)據(jù)庫的工作負(fù)荷效果后,數(shù)據(jù)庫引擎優(yōu)化顧問會提供在數(shù)據(jù)庫中添加、刪除或修改物理設(shè)計結(jié)構(gòu)的建議。這些物理性能結(jié)構(gòu)包括聚集索引、非聚集索引、索引視圖和分區(qū)。實現(xiàn)這些結(jié)構(gòu)之后,數(shù)據(jù)庫引擎優(yōu)化顧問使查詢處置器能夠用最短的時間執(zhí)行工作負(fù)荷任務(wù)。那么網(wǎng)站建設(shè)如何優(yōu)化數(shù)據(jù)庫呢?成都網(wǎng)站建設(shè)告訴你

1 一定要在主鍵上建聚集索引嗎

但也有一些例外的情況我需要把聚集索引建在其他列上,通常情況下sqlserver會自動給主鍵加上聚集索引。例如我用到表分區(qū),而分區(qū)的字段不是主鍵,這時候就需要將聚集索引建在分區(qū)的列上。另外如果查詢時根據(jù)主鍵查詢較少,而根據(jù)其他列的查詢較頻繁,則也可以考慮將聚集索引建在非主鍵上。單需要注意的聚集索引的列必須是不易變的列,如果聚集索引變了一會引起聚集索引內(nèi)的記錄的搬遷,造成頁page分離與碎片;二會引起每一個非聚 集索引被修改,以便于所有相關(guān)的非聚集索引的行的索引鍵的值被糾正。這既浪費時間和空間,也導(dǎo)致需要整理的碎片,增加了不必要的開銷。

2 對什么列建索引

除了這個索引之外還需要在哪些列上建索引呢?這個問題只能具體情況具體分析,數(shù)據(jù)庫默認(rèn)情況下會對主鍵建聚集索引。要看需要優(yōu)化的sql語句(通常是查詢次數(shù)多,查詢相應(yīng)想要高的語句)根據(jù)什么列的條件進行查詢。

3 索引的個數(shù)問題

除非你完全不在乎修改數(shù)據(jù)的效率。另外sqlserver自身會對索引的數(shù)量和索引的數(shù)據(jù)長度有限制,索引提高查詢效率是以降低更新、拔出、刪除的速度為代價的每當(dāng)索引列發(fā)生變化時都需要對索引數(shù)據(jù)進行相應(yīng)的調(diào)整。所以一個表上不可以建太多的索引。

4 復(fù)合索引要注意列順序

A列的葉節(jié)點上才會開始根據(jù)B列建二叉樹。所以包括兩個列的索引就需要根據(jù)查詢條件所在列來決定兩個列在索引中的順序。索引在數(shù)據(jù)庫中是以二叉樹的形式存儲的包括A,B兩個列的索引會首先根據(jù)A列建二叉樹。

5 必要時重建索引

網(wǎng)站建設(shè)運行Sqlserver一段時間之后就會形成一些索引碎片,這時候就需要重建索引了,有時候重建索引可以起到意想不到效果。

網(wǎng)站名稱:網(wǎng)站建設(shè)之?dāng)?shù)據(jù)庫如何優(yōu)化
當(dāng)前地址:http://www.bm7419.com/news35/31385.html

網(wǎng)站建設(shè)、網(wǎng)絡(luò)推廣公司-創(chuàng)新互聯(lián),是專注品牌與效果的網(wǎng)站制作,網(wǎng)絡(luò)營銷seo公司;服務(wù)項目有網(wǎng)站設(shè)計

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

營銷型網(wǎng)站建設(shè)