1 回答

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超6個(gè)贊
1、把你表中經(jīng)常查詢的和不常用的分開(kāi)幾個(gè)表,也就是橫向切分
2、把不同類型的分成幾個(gè)表,縱向切分
3、常用聯(lián)接的建索引
4、服務(wù)器放幾個(gè)硬盤,把數(shù)據(jù)、日志、索引分盤存放,這樣可以提高IO吞吐率
5、用優(yōu)化器,優(yōu)化你的查詢
6、考慮冗余,這樣可以減少連接
7、可以考慮建立統(tǒng)計(jì)表,就是實(shí)時(shí)生成總計(jì)表,這樣可以避免每次查詢都統(tǒng)計(jì)一次
mrzxc 等說(shuō)的好,考慮你的系統(tǒng),注意負(fù)載平衡,查詢優(yōu)化,25 萬(wàn)并不大,可以建一個(gè)表,然后按mrzxc 的3 4 5 7 優(yōu)化。 速度,影響它的因數(shù)太多了,且數(shù)據(jù)量越大越明顯。
1、存儲(chǔ) 將硬盤分成NTFS格式,NTFS比FAT32快,并看你的數(shù)據(jù)文件大小,1G以上你可以采用多數(shù)據(jù)庫(kù)文件,這樣可以將存取負(fù)載分散到多個(gè)物理硬盤或磁盤陣列上。
2、tempdb tempdb也應(yīng)該被單獨(dú)的物理硬盤或磁盤陣列上,建議放在RAID 0上,這樣它的性能最高,不要對(duì)它設(shè)置最大值讓它自動(dòng)增長(zhǎng)
3、日志文件 日志文件也應(yīng)該和數(shù)據(jù)文件分開(kāi)在不同的理硬盤或磁盤陣列上,這樣也可以提高硬盤I/O性能。
4、分區(qū)視圖 就是將你的數(shù)據(jù)水平分割在集群服務(wù)器上,它適合大規(guī)模OLTP,SQL群集上,如果你數(shù)據(jù)庫(kù)不是訪問(wèn)特別大不建議使用。
5、簇索引 你的表一定有個(gè)簇索引,在使用簇索引查詢的時(shí)候,區(qū)塊查詢是最快的,如用between,應(yīng)為他是物理連續(xù)的,你應(yīng)該盡量減少對(duì)它的updaet,應(yīng)為這可以使它物理不連續(xù)。
6、非簇索引 非簇索引與物理順序無(wú)關(guān),設(shè)計(jì)它時(shí)必須有高度的可選擇性,可以提高查詢速度,但對(duì)表update的時(shí)候這些非簇索引會(huì)影響速度,且占用空間大,如果你愿意用空間和修改時(shí)間換取速度可以考慮。
7、索引視圖 如果在視圖上建立索引,那視圖的結(jié)果集就會(huì)被存儲(chǔ)起來(lái),對(duì)與特定的查詢性能可以提高很多,但同樣對(duì)update語(yǔ)句時(shí)它也會(huì)嚴(yán)重減低性能,一般用在數(shù)據(jù)相對(duì)穩(wěn)定的數(shù)據(jù)倉(cāng)庫(kù)中。
8、維護(hù)索引 你在將索引建好后,定期維護(hù)是很重要的,用dbcc showcontig來(lái)觀察頁(yè)密度、掃描密度等等,及時(shí)用dbcc indexdefrag來(lái)整理表或視圖的索引,在必要的時(shí)候用dbcc dbreindex來(lái)重建索引可以受到良好的效果。 不論你是用幾個(gè)表1、2、3點(diǎn)都可以提高一定的性能,5、6、8點(diǎn)你是必須做的,至于4、7點(diǎn)看你的需求,我個(gè)人是不建議的。打了半個(gè)多小時(shí)想是在寫論文,希望對(duì)你有幫助。
添加回答
舉報(bào)