影響資料庫效能的主要因素
伺服器硬體的因素:
_伺服器數量
_記憶體 cpu 磁碟
cpu:單台雙cpu
磁碟:高轉速(越高越高,1w以上)
硬碟的插槽支援雙通道,記憶體型號一樣.
網路環境:盡可能組建分布式的平台,使用raid
資料庫設計
資料查詢
伺服器硬體及網路的建議
增加伺服器的數量,組建分布式平台
增加cpu數量
增加記憶體容量和頻率,開啟雙通道等
硬碟更換為多塊、高速(10000+轉)的硬碟
網路選用千兆以上頻寬,有可能的話可選用光線
網路線路最好專線專用,避免其他網路資料(如bt)占用
資料庫設計原則的建議
規範命名
三少原則(資料表\字段\組合主鍵)
控制字段引用
庫表的重複控制
併發控制(鎖)
必要的討論
資料小組的審核
標頭檔案的處理
資料庫設計工作的建議
分類拆分資料量大的表(減少單錶記錄數)
適當考慮分布式分割槽
合理的索引設計
資料操作的優化
資料庫引數的調整
避免長事務(分解事務,減少負荷,提高效率)
適當超前(考慮未來擴充套件)
必要的工具
資料庫效能調優的原則
盡可能排除資源瓶頸(cpu ram i/o network)
盡可能減少資料庫的i/o
盡可能使用index seek,避免使用index scan
減少阻塞 死鎖和不恰當的索引
盡可能不用游標
盡可能不用觸發器而使用儲存過程
資料查詢優化的方法
減少資料庫訪問量和資料傳輸量
避免使用不相容的資料型別
避免在where子句中的「=」左側使用表示式
避免使用!=或<>、is null或is not null、in或not in
避免在索引欄位中使用非字元打頭的搜尋,如』%abc%』
盡可能使用union方案替換or條件
盡量考慮where及order by子句間的順序按索引順序
盡量使用數字型字段
盡量使用》=替換》
合理使用exists和not exists
合理使用檢視(巢狀檢視巢狀越多,效能越差.另外尤其是索引檢視盡量避免使用巢狀檢視.)
合理演算法的使用
必要時強制使用索引
適當考慮物理分開儲存
使用合適的工具
sql server 2005的幾個特性
varchar(max)/nvarchar(max)/varbinary(max),分別替換已有的text、ntext、image
xml型別
計算欄位的持久化
索引附加字段
索引檢視,可對檢視建立索引,提高效率,但是該檢視不能有檢視引用
2005支援動態指示top的數量
行號,注意最後面再跟order by的情況。row_number / rank / dense_rank / ntile
臨時檢視with(實現遞迴查詢)
分割槽partition
demo
通過執行計畫來檢視開銷在那些方面
like "2006%" 避免使用like "%2006"方式的
在 2000中select top @count是不允許的.
select top (@count)在sql 2005中新增括弧即可.
分頁查詢:
select * from(
select row_number() over(order by id desc) as rowid * from news
) tb
where tb.rowid between 10 and 18
)
剖析資料庫效能調優技術之索引調優
剖析資料庫效能調優技術之索引調優 2008 1 28 9 37 00 by iulu 一 概述 隨著資料庫在各個領域的使用不斷增長,越來越多的應用提出了高效能的要求。資料庫效能調優是知識密集型的學科,需要綜合考慮各種複雜的因素 資料庫緩衝區的大小 索引的建立 語句改寫等等。總之,資料庫效能調優的目的...
資料庫調優
1 資料庫調優 計算機硬體調優 資料庫物件的放置策略 利用資料庫分割槽技術,均勻地把資料分布在系統的磁碟中,平衡i o 訪問,避免i o 瓶 頸 使用磁碟硬體優化資料庫 基本表設計優化 第三正規化的基本特徵 是非主鍵屬性只依賴於主鍵屬性。優點 一是能消除 冗餘資料 節省磁碟儲存空間 二是有良好的資料...
資料庫調優
檢視資料庫連線個數 show global variables like max connections 資料庫連線不上可能是max connections數太少了 增加連線數 配置檔案 etc my.cnf.d server.cnf mysqld mysqld max connections 10...