實(shí)現(xiàn)sql server數(shù)據(jù)庫的優(yōu)化,首先要有一個好的數(shù)據(jù)庫設(shè)計(jì)方案。在實(shí)際工作中,許多sql server方案往往是由于數(shù)據(jù)庫設(shè)計(jì)得不好導(dǎo)致性能很差。今天就由正龍數(shù)據(jù)小編給大家介紹一下如何實(shí)現(xiàn)良好的數(shù)據(jù)庫設(shè)計(jì):
1. 邏輯數(shù)據(jù)庫規(guī)范化問題
一般來說,邏輯數(shù)據(jù)庫設(shè)計(jì)會滿足規(guī)范化的前3級標(biāo)準(zhǔn):
第1規(guī)范:沒有重復(fù)的組或多值的列;
第2規(guī)范: 每個非關(guān)鍵字段必須依賴于主關(guān)鍵字,不能依賴于一個組合式主關(guān)鍵字的某些組成部分;
第3規(guī)范: 一個非關(guān)鍵字段不能依賴于另一個非關(guān)鍵字段。
遵守這些規(guī)則的數(shù)據(jù)庫設(shè)計(jì)會產(chǎn)生較少的列和更多的表,因而也就減少了數(shù)據(jù)冗余,也減少了用于存儲數(shù)據(jù)的頁。
2. 生成物理數(shù)據(jù)庫
要想正確選擇基本物理實(shí)現(xiàn)策略,必須了解和利用好數(shù)據(jù)庫訪問格式和硬件資源的操作特點(diǎn),特別是內(nèi)存和磁盤子系統(tǒng)i/o。以下是一些常用技巧:
與每個表列相關(guān)的數(shù)據(jù)類型應(yīng)該反映數(shù)據(jù)所需的最小存儲空間,特別是對于被索引的列更是如此。比如能使用smallint類型就不要用integer類型,這樣索引字段可以被更快地讀取,而且可以在一個數(shù)據(jù)頁上放置更多的數(shù)據(jù)行,因而也就減少了i/o操作。
把一個表放在某個物理設(shè)備上,再通過sql server的段把它的不分簇索引放在一個不同的物理設(shè)備上,這樣能提高性能。尤其是系統(tǒng)采用了多個智能型磁盤控制器和數(shù)據(jù)分離技術(shù)的情況下,這樣做的好處更加明顯。
用sql server段把一個頻繁使用的大表分割開,并放在多個單獨(dú)的智能型磁盤控制器的數(shù)據(jù)庫設(shè)備上,這樣也可以提高性能。因?yàn)橛卸鄠€磁頭在查找,所以數(shù)據(jù)分離也能提高性能。