當資料庫表中資料量能夠被**到將會非常大,或者已經擁有龐大的資料時,我們應該選擇分表或者分割槽(即使用多個資料庫)來解決資料訪問時的效能問題。
為什麼要分區分表呢?因為分區分表有如下幾個有點:
1.改善查詢效能,對分割槽物件的查詢可以僅搜尋自己關係的分割槽,提高檢索速度。
2.
增強可用性,如果表的某個分割槽出現故障,表在其他分割槽的資料仍然可用。
3.
維護方面,如果表的某個分割槽出現故障,需要修復資料,只修復該分割槽即可。
4.
均衡i/o,可以把不同的分割槽對映到磁碟以平衡i/o,改善整個效能。
--資料庫新增檔案組
alter database testdb add filegroup day_20180427;
alter database testdb add filegroup day_20180428;
alter database testdb add filegroup day_20180429;
alter database testdb add filegroup day_20180430;
--檔案組新增檔案
alter database testdb
add file(name=n'day_20180427',filename='c:\db\test_partition\day_20180427.ndf',
size=5mb, filegrowth=5mb) to filegroup day_20180427;
alter database testdb
add file(name=n'day_20180428',filename='c:\db\test_partition\day_20180428.ndf',
size=5mb, filegrowth=5mb) to filegroup day_20180428;
alter database testdb
add file(name=n'day_20180429',filename='c:\db\test_partition\day_20180429.ndf',
size=5mb, filegrowth=5mb) to filegroup day_20180429;
alter database testdb
add file(name=n'day_20180430',filename='c:\db\test_partition\day_20180430.ndf',
size=5mb, filegrowth=5mb) to filegroup day_20180430;
--建立分割槽函式
use testdb;
--drop partition function f_date_day;
create partition function f_date_day(datetime)
as range right for values
('2018-04-28','2018-04-29','2018-04-30');
--建立分割槽方案
--drop partition scheme p_date_day;
create partition scheme p_date_day
as partition f_date_day
to(day_20180427,day_20180428,day_20180429,day_20180430);
--在分割槽方案上建立表
create table [dbo].[test_part](
[id] [int] identity(1,1),
[empno] [int] null,
[jointime] [datetime] null
)on p_date_day(jointime);
--在分割槽方案上建立表索引
create clustered index [cli_testpart_jointime] on [dbo].[test_part]
([jointime] asc
)on p_date_day(jointime);
--對錶資料進行頁壓縮
use [testdb];
alter table [dbo].[test_part] rebuild partition = 1 with(data_compression=page);
alter table [dbo].[test_part] rebuild partition= 2 with(data_compression=page);
alter table [dbo].[test_part] rebuild partition= 3 with(data_compression=page);
alter table [dbo].[test_part] rebuild partition= 4 with(data_compression=page);
sqlserver 分割槽表
1 建分割槽函式,用於自動劃分物理表資料的流向 建好後可以在databases dbname storage中看到 下面分成四個區域 bigscreen且 computer且 pooltable 若是right,則x1 bigscreen x2 computer x3 pooltable x4 若是...
Sqlserver分割槽表
1.分割槽表簡介 分割槽表在邏輯上是乙個表,而物理上是多個表。從使用者角度來看,分割槽表和普通表是一樣的。使用分割槽表的主要目的是為改善大型表以及具有多個訪問模式的表的可伸縮性和可管理性。分割槽表是把資料按設定的標準劃分成區域儲存在不同的檔案組中,使用分割槽可以快速而有效管理和訪問資料子集。1.1 ...
SQL Server 分割槽表
分割槽表就是在物理上將乙個大表分成若干個小表,但是在邏輯上還是乙個表 如果你的資料庫中某乙個表中的資料滿足以下幾個條件,那麼你就要考慮建立分割槽表了。1 資料庫中某個表中的資料很多。很多是什麼概念?一萬條?兩萬條?還是十萬條 一百萬條?這個,我覺得是仁者見仁 智者見智的問題。當然資料表中的資料多到查...