對於大容量資料庫表,且有一定業務規則的(比如有時間規則)可作如下分割槽,以提公升綜合性能
第一,建立分割槽函式:根據業務規則建立(比如乙個月分乙個或幾個月分乙個)
第二,建立檔案組:根據規則,將每一條規則對應乙個檔案(物理檔案,ndf)
第三,建立建立分割槽架構,用來將概念上的分割槽和檔案組(物理檔案)關聯起來
第四,建立分割槽表
以上做完,當執行insert時,分割槽表會根據分割槽架構將記錄插入不同的ndf檔案中;當執行select時,分割槽表也會根據分割槽架構從不同的ndf中查尋。
具體實現如下:
create partition function fiveyeardaterangepfn(datetime)
asrange left for values (
'20100930 23:59:59.997', -- 2023年9 月
'20101031 23:59:59.997', -- 2023年10 月
'20101130 23:59:59.997', -- 2023年11 月
'20101231 23:59:59.997' -- 2023年12 月)go
alter database test01 add filegroup [test201009]
alter database test01 add filegroup [test201010]
alter database test01 add filegroup [test201011]
alter database test01 add filegroup [test201012]
goalter database test01
add file
(name = n'test201009',filename = n'd:\datafilegroup\test201009.ndf',size = 5mb,maxsize = 100mb,filegrowth = 5mb)
to filegroup [test201009]
goalter database test01
add file
(name = n'test201010',filename = n'd:\datafilegroup\test201010.ndf',size = 5mb,maxsize = 100mb,filegrowth = 5mb)
to filegroup [test201010]
goalter database test01
add file
(name = n'test201011',filename = n'd:\datafilegroup\test201011.ndf',size = 5mb,maxsize = 100mb,filegrowth = 5mb)
to filegroup [test201011]
goalter database test01
add file
(name = n'test201012',filename = n'd:\datafilegroup\test201012.ndf',size = 5mb,maxsize = 100mb,filegrowth = 5mb)
to filegroup [test201012]
gocreate partition scheme [fiveyeardaterangepscheme]
aspartition fiveyeardaterangepfn to
( [test201009],[test201010],[test201011],[test201012],[primary])go
create table [dbo].[test](
[id] [uniqueidentifier] not null,
[name] [nvarchar](10) collate chinese_prc_ci_as null,
[date] [datetime] not null
) on fiveyeardaterangepscheme(date)
alter table [test]
add constraint [objteaching_pk] primary key clustered ([id], [date])
goinsert into test(id,name,date) values(newid(),'20100901','2010-09-01')
insert into test(id,name,date) values(newid(),'20101001','2010-10-01')
insert into test(id,name,date) values(newid(),'20101101','2010-11-01')
insert into test(id,name,date) values(newid(),'20101201','2010-12-01')
select $partition.fiveyeardaterangepfn(date),date,*
from test a
order by a.date asc
go
Redis高效能資料庫
redis高效能資料庫 redis 本質上是乙個非關係型資料庫,採用鍵值的方式記錄資料,由於其獨特的執行模式和資料儲存模式,在作用上通常可以用來當做關係型資料庫的快取來使用,從而提高資料查詢效率 redis最大特點 執行速度很快 原因 1 redis使用c語言開發,和作業系統的相容性更強,執行效率更...
Druid 高效能資料庫元件
druid是什麼?druid是乙個jdbc元件,它包括四個部分 druiddriver,是乙個proxyjdbcdriver,它提供了filter chain模式的擴充套件機制,使得在jdbc擴充套件程式設計特別方便。druid提供了一些內建的擴充套件機制,包括stat log trace ha等擴...
Druid 高效能資料庫元件
druid是乙個jdbc元件,它包括四個部分 druiddriver,是乙個proxyjdbcdriver,它提供了filter chain模式的擴充套件機制,使得在jdbc擴充套件程式設計特別方便。druid提供了一些內建的擴充套件機制,包括stat log trace ha等擴充套件。druid...