程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> 數據庫調優積累系列(4):數據庫設計

數據庫調優積累系列(4):數據庫設計

編輯:關於SqlServer


  如果某表經常出現死鎖,那就要做對象職責分離,就是把插入、更新、刪除等分離;

  在設計或創建表的時候,我們往往會把 Id字段設置為聚集索引,但是我們這樣的習慣可能不是最優的,因為聚集索引和非聚集索引的區別就是一個是物理存儲的,所以在查詢的時候如果使用聚集索引的話,可能會比非聚集索引要開,因為關系到數據頁的分布,因此我們有時可以根據我們的需要來設置聚集索引,比如待辦待閱一般都是按照時間來倒排的,那我們可以讓日期字段來做聚集索引;

  當表的數據量比較大,而且一些基本的優化也不能滿足到需求,那就可以考慮:縱向、橫向分割表,減少表的尺寸(sp_spaceuse);

  表字段如果不為空的,就不應該設置允許空,第一:這裡可以確保數據的完整性;第二:依稀記得跟性能有關,但是記不起,歡迎補充;

  在表中設計索引屬性的時候,我們都會看到填充因子,通常情況下我們都是不去理會它的,如果我們去了解它,也許我們會有不錯的回報。(以下是個人言論,有可能存在BUG,不久將來會進一步確認是否正確。)

  填充因子的意思就是當數據頁的數據達到多少百分比的時候就換頁,相當以在數據頁中預留多少空間來應對數據的增長,比如聚集索引,如果我們選擇了100%或者0%,意思就是我們要把整個數據頁都填充完整;

  如果該表有一個以ID自增為聚集索引,而且我們設置的這個比值比較小,就會有可能造成比較多的磁盤碎片,查詢時的IO消耗比較大,這是因為聚集索引在數據頁的表現是物理存儲,索引每個數據頁都會留下比較多的數據頁空間,而且是永遠都不會給使用到的;

  只有當索引被創建或者是重建時才會重新設置數據頁的百分比分布,當做插入數據後,改數據頁的比例就會小於這個百分比了;

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved