1. 程式人生 > >02.SQLServer效能優化之---水平分庫擴充套件

02.SQLServer效能優化之---水平分庫擴充套件

上次共享的第一份大資料,這次正好來演示一下水平分庫

1.模擬部分資料

2.建立索引後,發現可以根據日期來分組

按資料量大致分一下

步入正軌

---------------------------------------------------------------------

GUI方法:

3.0建立檔案組

新增檔案到檔案組

命令操作:

alter database BigData_TestInfo_PartialData add filegroup Info

alter database BigData_TestInfo_PartialData add file(name=N'TestInfo2006',filename=N'G:\SQLData\BigData_TestInfo2006.ndf') to filegroup Info

注意:BigData_TestInfo2006.ndf是資料庫自己建立的,不需要自己手動建立(有些同志手動建立了,然後報錯。。。。呃,有點哭笑不得了)

查詢看看:select * from sys.filegroups

水平分割槽走起:一般就幾步,1.建立分割槽函式 2.建立分割槽方案 3.建立分割槽表

GUI方法

分割槽函式

分割槽方案

上一張圖有些人可能不懂,用PPT畫張概念圖

建立指令碼

系統生成指令碼:

use [BigData_TestInfo_PartialData]
go

begin transaction

create partition function [CreatedatePartitionFun](varchar(10)) as range right for values(N'2006-01-01', N'2007-01-01', N'2009-01-01', N'2012-01-01')

create partition scheme [CreatedatePartitionScheme] as partition [CreatedatePartitionFun] TO ([Info], [Info], [Info], [Info], [primary])

alter table [dbo].[Info] drop constraint [PK__Info__3214EC07B2FE10C8]

alter table [dbo].[Info] add primary key nonclustered 
(
	[Id] asc
)with (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]


set ansi_padding on

create clustered index [ClusteredIndex_on_CreatedatePartitionScheme_636193166313125124] on [dbo].[Info]
(
	[CreateDate]
)with (SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF) ON [CreatedatePartitionScheme]([CreateDate])


drop index [ClusteredIndex_on_CreatedatePartitionScheme_636193166313125124] on [dbo].[Info]

commit transaction
go

命令方式建立(根據上面生成的命令逆推

建立分割槽函式和架構(方案)

create partition function CreatedatePartitionFun(varchar(10)) as range right for values(N'2006-01-01', N'2007-01-01', N'2009-01-01', N'2012-01-01')

create partition scheme CreatedatePartitionScheme as partition [CreatedatePartitionFun] TO ([Info], [Info], [Info], [Info], [primary])

建立分割槽表

尚未建立表的情況

已經建立了表(基本上都是這種情況)

主要就兩步,把主鍵變為非聚集索引+建立分割槽聚集索引

alter table Info drop constraint PK__Info__3214EC064B338648

alter table Info add constraint PK_Info_Id primary key nonclustered (Id asc)

create clustered index IX_Info_CreateDate on Info(CreateDate) on CreatedatePartitionScheme(CreateDate)

測試:基本上是均勻分散在各個檔案中,生產環境的時候可以把這些檔案放各個磁碟

參考文章:

相關推薦

02.SQLServer效能優化---水平分庫擴充套件

上次共享的第一份大資料,這次正好來演示一下水平分庫 1.模擬部分資料 2.建立索引後,發現可以根據日期來分組 按資料量大致分一下 步入正軌 ------------------------------------------------------------------

06.SQLServer效能優化---資料庫級日記監控

不清楚的最好看一下,一會要用到。 常規的效能監視有多種,對於我們這些不是DBA的人來說基本上夠用了 第一個是整體的一個監視器 第二個是Profiler,這個挺好的,一般我們都是開發的時候用。真在生產環境下監視就太浪費伺服器效能了(小專案無所謂) 換環境了,以後繼續更

03.SQLServer效能優化---儲存優化系列

以下內容皆為個人摸索,沒有人專門指導(公司不給力啊!DBA和大牛都木有。。。),所以難免出錯,如有錯誤歡迎指正,小子勇於接受批評~(*^__^*) ~ 水平分庫分表和垂直分庫分表,大家都經常談,我說下我的理解,看圖: 垂直分表就不用說了,基本上會SQLServer的都會。 垂直分庫就是根

01.SQLServer效能優化----強大的檔案組----分盤儲存

declare @i int=1 while(@i<10) begin set @i=@i+1 insert into Test(DataStatus) values(1),(2),(1),(2),(1),(2),(1),(2),(1),(2),(1),(2),(1),(2)

SQLServer效能優化---資料庫級日記監控

上節回顧:https://www.cnblogs.com/dotnetcrazy/p/11029323.html 4.6.6.SQLServer監控 指令碼示意:https://github.com/lotapp/BaseCode/tree/master/database/SQL/SQLServer PS:

MYSQL效能優化資料庫的分庫分表

資料庫中的資料量不一定是可控的,在未進行分庫分表的情況下,隨著時間和業務的發展,庫中的表會越來越多,表中的資料量也會越來越大,相應地,資料操作,增刪改查的開銷也會越來越大;另外,由於無法進行分散式

菜鳥要做架構師——java效能優化for迴圈

完成同樣的功能,用不同的程式碼來實現,效能上可能會有比較大的差別,所以對於一些效能敏感的模組來說,對程式碼進行一定的優化還是很有必要的。今天就來說一下java程式碼優化的事情,今天主要聊一下對於for(while等同理)迴圈的優化。 作為三大結構之一的迴圈,在我們編寫程式碼的時候會經常用到。

效能優化記憶體優化

效能優化之記憶體優化 計算 APP 獲得的最大記憶體分配值 Runtime rt=Runtime.getRuntime(); long maxMemory=rt.maxMemory(); Log.i("maxMemory:",Long.toString(max

Sql Sever效能優化指定索引

背景:生產環境SQL語句查詢過慢(資料總量在350萬左右),日誌中心一直報警 解決過程:分析無果後,求助於公司的DBA,DBA分析後建議在語句中指定索引 解決:在SQL語句中指定索引,效果相當明顯,親測有效 優化前SQL: SELECT ROW_NUMBER() OVER ( ORDER BY

Android——效能優化SparseArray

相信大家都用過HashMap用來存放鍵值對,最近在專案中使用HashMap的時候發現,有時候 IDE 會提示我這裡的HashMap可以用SparseArray或者SparseIntArray等等來代替。 SparseArray(稀疏陣列).它是Android內部特有的api,標準的jdk是沒有這

Android效能優化較精確的獲取影象顯示到螢幕上的時間

轉載自:http://blog.desmondyao.com/android-show-time/ 這兩天我的包工頭歪龍木·靈魂架構師·王半仙·Yrom給我派了一個活:統計App冷啟動時間。這個任務看上去不難,但是要求統計出來的時間要準,要特別準。 意思就是,我必須要按Activity繪製到

KVM總結-KVM效能優化磁碟IO優化

前面講了KVM CPU(http://blog.csdn.net/dylloveyou/article/details/71169463)、記憶體(http://blog.csdn.net/dylloveyou/article/details/71338378)的優化,下面接著第三塊的內容,KVM磁

MySQL(三) —— MySQL效能優化 索引優化

MySQL索引優化 如何選擇合適的列建立索引? 在where從句、group by 從句、order by 從句、on 從句中出現的列 索引欄位越小越好 離散度大的列放在聯合索引的前面 如何判斷列的離散度? 去重查詢看列的唯一值,唯一值越多則離散度越大。 mysql&

MySQL(二) —— MySQL效能優化 SQL語句優化

          SQL語句優化   MySQL優化的目的   1、避免出現頁面訪問錯誤:或由於資料庫連線超時 timeout 產生頁面5xx錯誤;或由於慢查詢造成頁面無法載入;或由於阻        塞造成資料無法提交;

MySQL (一) —— MySQL效能優化 慢查詢日誌

                        &nbs

精讀《手寫 SQL 編譯器 - 效能優化快取》

1 引言 重回 “手寫 SQL 編輯器” 系列。這次介紹如何利用快取優化編譯器執行效能。 可以利用 Frist 集 與 Match 節點快取 這兩種方式優化。 本文會用到一些圖做解釋,下面介紹圖形規則: First 集優化,是指在初始化時,將整體文法的 First 集找到,因此在節點

【MySQL資料庫】效能優化索引及優化(一)

一、Mysql效能優化之影響效能的因素 1.商業需求的影響 不合理的需求造成的資源投入產出,這裡就用一個看上去很簡單的功能分析。需求:一個論壇帖子的總量統計,附加要求:實時更新。從功能上看來是非常容易實現的,執行一條select count(*)from表名就可以得到結果,但是如果我們採

百萬併發下的 Nginx 效能優化道,值得看!!!

Nginx 很火,火到無論是創業公司,還是 BAT 等一線網際網路公司,都會使用Nginx。因為它就像一個萬能藥,在任何存在效能需求的場合總能找見它的身影。它可以輕鬆在百萬併發連線下實現高吞吐量的 Web 服務,同時諸多應用場景下的問題都可以通過種種 Nginx 模組得以解決,而我們所需的工

網站效能優化雪碧圖製作

雪碧圖製作及使用 製作目的:由於網站上有需要小的icon且每次載入的時候都會有許多類似的請求,影響了網站的效能。所以將小圖示合併成一張雪碧圖,從而減少圖片的請求數,優化網站效能。 製作方法: 1、刀耕火種法 利用photoshop把一張張小圖合成一張雪碧圖(工作效率太低不建議使

效能優化載入

效能優化之載入 一、預載入 原理:預載入即提前載入,就是為了讓需要載入的內容在觸發載入之前載入好,觸發載入時只是簡單的展示,這樣會使使用者操作起來更加流暢。但缺點是增加了首次請求的請求數; 使用場景:如選單背景圖切換時提前載入背景圖,減少切換時出現短暫空白現象; 使用方法:預