—— 解決方案 ——
|
Sqlserver優(yōu)化方案數(shù)據(jù)庫的性能直接決定了一個軟件系統(tǒng)的整體性能,特別是當(dāng)今互聯(lián)網(wǎng)信息時代,對分布式數(shù)據(jù)庫的訪問量越來越大。如何優(yōu)化數(shù)據(jù)庫系統(tǒng)成了能否提高數(shù)據(jù)處理能力的一個重要因素;sql server 數(shù)據(jù)庫的優(yōu)化策略所關(guān)注的就是數(shù)據(jù)庫設(shè)計、應(yīng)用程序的優(yōu)化及硬件系統(tǒng)的優(yōu)化。 Sqlserver數(shù)據(jù)庫的優(yōu)化主要分為以下幾個部分: 1. 設(shè)計聯(lián)合數(shù)據(jù)庫服務(wù)器
2. 數(shù)據(jù)庫設(shè)計 2.1 邏輯庫規(guī)范化問題 (1)如果規(guī)范化設(shè)計產(chǎn)生了許多4路或更多路合并關(guān)系,就可以考慮在數(shù)據(jù)庫實體(表)中加入重復(fù)屬性(列) (2)常用的計算字段(如總計、最大值等)可以考慮存儲到數(shù)據(jù)庫實體中。 (3)重新定義實體以減少外部屬性數(shù)據(jù)或行數(shù)據(jù)的開支。 2.2 生成物理數(shù)據(jù)庫 (1)與每個表列相關(guān)的數(shù)據(jù)類型應(yīng)該反映數(shù)據(jù)所需的最小存儲空間,特別是對于被索引的列更是如此。 (3)用SQL Server段把一個頻繁使用的大表分割開,并放在2個單獨的智能型磁盤控制器的數(shù)據(jù)庫設(shè)備上。 (4)用SQL Server段把文本或圖像列的數(shù)據(jù)存放在1個單獨的物理設(shè)備上可以提高性能。 2.3 查詢優(yōu)化 2.3.1. 把數(shù)據(jù)、日志、索引放到不同的I/O設(shè)備上,增加讀取速度,以前可以將Tempdb應(yīng)放在RAID0上,SQL2000不在支持 2.3.2 縱向、橫向分割表,減少表的尺寸(sp_spaceuse) 2.3.3 根據(jù)查詢條件,建立索引,優(yōu)化索引、優(yōu)化訪問方式,限制結(jié)果集的數(shù)據(jù)量。注意填充因子要適當(dāng)(最好是使用默認(rèn)值0)。 2.3.4 擴大服務(wù)器的內(nèi)存,Windows 2000和SQL server 2000能支持4-8G的內(nèi)存。 2.3.5 增加服務(wù)器 CPU個數(shù);但是必須明白并行處理串行處理更需要資源例如內(nèi)存。 2.3.6 DB Server 和APPLication Server 分離。 2.3.7 在實現(xiàn)分區(qū)視圖之前,必須先水平分區(qū)表。 2.3.8 在創(chuàng)建成員表后,在每個成員服務(wù)器上定義一個分布式分區(qū)視圖,并且每個視圖具有相同的名稱。 2.3.9 重建索引 DBCC REINDEX ,DBCC INDEXDEFRAG,收縮數(shù)據(jù)和日志 DBCCSHRINKDB,DBCC SHRINKFILE。 |