欧美麻豆久久久久久中文_成年免费观看_男人天堂亚洲成人_中国一级片_动漫黄网站免费永久在线观看_国产精品自产av一区二区三区

中培偉業IT資訊頻道
您現在的位置:首頁 > IT資訊 > 數據庫 > 淺論大數據下SQL Server 數據庫的優化

淺論大數據下SQL Server 數據庫的優化

2017-02-06 09:58:00 | 來源:中培企業IT培訓網

隨著企業收集和存儲的數據信息越來越多,企業的數據需要通過不斷優化來適應數據存儲的需要。中培偉業《SQL Server2014數據庫高級管理與性能調優》培訓專家姜老師對大數據量下的SQL Server數據庫自身優化進行了介紹。

1.1:增加次數據文件

從SQL SERVER 2005開始,數據庫不默認生成NDF數據文件,一般情況下有一個主數據文件(MDF)就夠了,但是有些大型的數據庫,由于信息很多,而且查詢頻繁,所以為了提高查詢速度,可以把一些表或者一些表中的部分記錄分開存儲在不同的數據文件里

由于CPU和內存的速度遠大于硬盤的讀寫速度,所以可以把不同的數據文件放在不同的物理硬盤里,這樣執行查詢的時候,就可以讓多個硬盤同時進行查詢,以充分利用CPU和內存的性能,提高查詢速度。 在這里詳細介紹一下其寫入的原理,數據文件(MDF、NDF)和日志文件(LDF)的寫入方式是不一樣的:

數據文件:SQL Server按照同一個文件組里面的所有文件現有空閑空間的大小,按這個比例把新的數據分布到所有有空間的數據文件里,如果有三個數據文件A.MDF,B.NDF,C.NDF,空閑大小分別為200mb,100mb,和50mb,那么寫入一個70mb的東西,他就會向ABC三個文件中一次寫入40、20、10的數據,如果某個日志文件已滿,就不會向其寫入

日志文件:日志文件是按照順序寫入的,一個寫滿,才會寫入另外一個。由上可見,如果能增加其數據文件NDF,有利于大數據量的查詢速度,但是增加日志文件卻沒什么用處。

1.2:設置文件自動增長(大數據量,小數據量無需設置)

在SQL Server 2005中,默認MDF文件初始大小為5MB,自增為1MB,不限增長,LDF初始為1MB,增長為10%,限制文件增長到一定的數目,一般設計中,使用SQL自帶的設計即可,但是大型數據庫設計中,最好親自去設計其增長和初始大小,如果初始值太小,那么很快數據庫就會寫滿,如果寫滿,在進行插入會是什么情況呢?當數據文件寫滿,進行某些操作時,SQL Server會讓操作等待,直到文件自動增長結束了,原先的那個操作才能繼續進行。如果自增長用了很長時間,原先的操作會等不及就超時取消了(一般默認的閾值是15秒),不但這個操作會回滾,文件自動增長也會被取消。

1.3 數據和日志文件分開存放在不同磁盤上

數據文件和日志文件的操作會產生大量的I/O。在可能的條件下,日志文件應該存放在一個與數據和索引所在的數據文件不同的硬盤上以分散I/O,同時還有利于數據庫的災難恢復。

當一個表的數據量太大的時候,我們最想做的一件事是什么?將這個表一分為二或者更多分,但是表還是這個表,只是將其內容存儲分開,這樣讀取就快了N倍了

原理:表數據是無法放在文件中的,但是文件組可以放在文件中,表可以放在文件組中,這樣就間接實現了表數據存放在不同的文件中。能分區存儲的還有:表、索引和大型對象數據

SQL SERVER 2005中,引入了表分區的概念, 當表中的數據量不斷增大,查詢數據的速度就會變慢,應用程序的性能就會下降,這時就應該考慮對表進行分區,當一個表里的數據很多時,可以將其分拆到多個的表里,因為要掃描的數據變得更少 ,查詢可以更快地運行,這樣操作大大提高了性能,表進行分區后,邏輯上表仍然是一張完整的表,只是將表中的數據在物理上存放到多個表空間(物理文件上),這樣查詢數據時,不至于每次都掃描整張表。

優化③:分布式數據庫設計

分布式數據庫系統是在集中式數據庫系統的基礎上發展起來的,理解起來也很簡單,就是將整體的數據庫分開,分布到各個地方,就其本質而言,分布式數據庫系統分為兩種:1.數據在邏輯上是統一的,而在物理上卻是分散的,一個分布式數據庫在邏輯上是一個統一的整體,在物理上則是分別存儲在不同的物理節點上,我們通常說的分布式數據庫都是這種2.邏輯是分布的,物理上也是分布的,這種也成聯邦式分布數據庫,由于組成聯邦的各個子數據庫系統是相對“自治”的,這種系統可以容納多種不同用途的、差異較大的數據庫,比較適宜于大范圍內數據庫的集成。

分布式數據庫較為復雜,在此不作詳細的使用和說明,只是舉例說明一下,現在分布式數據庫多用于用戶分區性較強的系統中,如果一個全國連鎖店,一般設計為每個分店都有自己的銷售和庫存等信息,總部則需要有員工,供應商,分店信息等數據庫,這類型的分店數據庫可以完全一致,很多系統也可能導致不一致,這樣,各個連鎖店數據存儲在本地,從而提高了影響速度,降低了通信費用,而且數據分布在不同場地,且存有多個副本,即使個別場地發生故障,不致引起整個系統的癱瘓。 但是他也帶來很多問題,如:數據一致性問題、數據遠程傳遞的實現、通信開銷的降低等,這使得分布式數據庫系統的開發變得較為復雜,只是讓大家明白其原理,具體的使用方式就不做詳細的介紹了。

優化④:整理數據庫碎片

如果你的表已經創建好了索引,但性能卻仍然不好,那很可能是產生了索引碎片,你需要進行索引碎片整理。

什么是索引碎片?

由于表上有過度地插入、修改和刪除操作,索引頁被分成多塊就形成了索引碎片,如果索引碎片嚴重,那掃描索引的時間就會變長,甚至導致索引不可用,因此數據檢索操作就慢下來了。

如何知道是否發生了索引碎片?

在SQLServer數據庫,通過DBCC ShowContig或DBCC ShowContig(表名)檢查索引碎片情況,指導我們對其進行定時重建整理。

通過對掃描密度(過低),掃描碎片(過高)的結果分析,判定是否需要索引重建,主要看如下兩個:

Scan Density [Best Count:Actual Count]-掃描密度[最佳值:實際值]:DBCC SHOWCONTIG返回最有用的一個百分比。這是擴展盤區的最佳值和實際值的比率。該百分比應該盡可能靠近100%。低了則說明有外部碎片。

Logical Scan Fragmentation-邏輯掃描碎片:無序頁的百分比。該百分比應該在0%到10%之間,高了則說明有外部碎片。

解決方式:

一是利用DBCC INDEXDEFRAG整理索引碎片

二是利用DBCC DBREINDEX重建索引。

兩者區別調用微軟的原話如下:

DBCC INDEXDEFRAG 命令是聯機操作,所以索引只有在該命令正在運行時才可用,而且可以在不丟失已完成工作的情況下中斷該操作。這種方法的缺點是在重新組織數據方面沒有聚集索引的除去/重新創建操作有效。

重新創建聚集索引將對數據進行重新組織,其結果是使數據頁填滿。填滿程度可以使用 FILLFACTOR 選項進行配置。這種方法的缺點是索引在除去/重新創建周期內為脫機狀態,并且操作屬原子級。如果中斷索引創建,則不會重新創建該索引。也就是說,要想獲得好的效果,還是得用重建索引,所以決定重建索引。

標簽: SQL Server
主站蜘蛛池模板: AV天堂亚洲区无码先锋影音 | 国产美女牲交视频 | 少妇做爰喷水高潮呻吟A片免费 | youjizz中国熟女 | 中国三级黄色录像 | 国产午夜亚洲精品理论片不卡 | 国产成人精品午夜福利在线播放 | 免费丝袜脚足控网站 | 国产成人无码综合亚洲日韩 | 欧美丰满熟妇XXXX性多毛 | 中文字幕无码精品亚洲35 | 亚洲av久播在线播放 | 大地资源免费第二页 | 欧美DODK巨大黑人 | 亚洲精品国产黑色丝袜 | 在线www天堂 | 丰满岳乱妇在线观看中字 | 每日更新在线观看AV | 日韩人妻无码精品专区综合网 | 野花香在线视频免费观看大全 | 久久狼人大香伊蕉国产 | JK制服白丝超短裙自慰 | 国产免费观看AV大片的网站 | 麻豆亚洲AV成人无码久久精品 | 夜夜调教禁脔欢爱h | 香蕉成人国产精品免费看网站 | 日本高清网色 | 亚洲伊人久久大香线蕉 | 忘忧草www中文在线资源 | 国产亚洲精品无码成人 | 天堂va欧美ⅴa亚洲va | 4m84ccm成人影院 | 999福利视频 | 国产精品亚洲欧美大片在线观看 | 国产成人人妻精品一区二区三区 | 免费观看欧美日韩亚洲 | 天天摸夜夜添久久精品 | 亚洲爆乳大丰满无码专区 | 久久e热在这里只有精品99 | 人妻夜夜爽天天爽一区 | 国产性色的免费视频网站 |