|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
提供用于管理、检查、优化数据库操作的管理工具。server
PartitionedTable
可伸缩性性是数据库办理体系的一个很主要的方面,在SQLServer2005中可伸缩性方面供应了表分区功效。
实在关于有干系弄数据库产物来讲,对表、数据库和服务器举行数据分区的从而供应年夜数据量的撑持并非甚么奇怪事,但SQLServer2005供应了一个新的系统布局功效,用于对数据库中的文件组举行表分区。程度分区可依据分区架构,将一个表分别为几个较小的分组。表分区功效是针对超年夜型数据库(从数百吉字节到数千吉字节或更年夜)而计划的。超年夜型数据库(VLDB)查询功能经由过程分区失掉了改良。经由过程对宽大分区列值举行分区,能够对数据的子集举行办理,并将其疾速、高效地从头分派给其他表。
假想一个大抵的电子买卖网站,有一个表存储了此网站的汗青买卖数据,这此数据量大概有上亿条,在之前的SQLServer版本中存储在一个表中不论关于查询功能仍是保护都是件贫苦事,上面我们来看一下在SQLServer2005怎样进步功能和可办理性:
--创立要利用的测试数据库,Demo
USE[master]
IFEXISTS(SELECTnameFROMmaster.dbo.sysdatabasesWHEREname=NDEMO)
DROPDATABASE[DEMO]
CREATEDATABASE[DEMO]
--因为表分区利用利用新的系统布局,利用文件组来举行表分区,以是我们创立将要用到的6个文件组,来存储6个工夫段的买卖数据[<2000],[2001],[2002],[2003],[2004],[>2005]
ALTERDATABASEDemoADDFILEGROUPYEARFG1;
ALTERDATABASEDemoADDFILEGROUPYEARFG2;
ALTERDATABASEDemoADDFILEGROUPYEARFG3;
ALTERDATABASEDemoADDFILEGROUPYEARFG4;
ALTERDATABASEDemoADDFILEGROUPYEARFG5;
ALTERDATABASEDemoADDFILEGROUPYEARFG6;
--上面为这些文件组增加文件来举行物理的数据存储
ALTERDATABASEDemoADDFILE(NAME=YEARF1,FILENAME=C:ADVWORKSF1.NDF)TOFILEGROUPYEARFG1;
ALTERDATABASEDemoADDFILE(NAME=YEARF2,FILENAME=C:ADVWORKSF2.NDF)TOFILEGROUPYEARFG2;
ALTERDATABASEDemoADDFILE(NAME=YEARF3,FILENAME=C:ADVWORKSF3.NDF)TOFILEGROUPYEARFG3;
ALTERDATABASEDemoADDFILE(NAME=YEARF4,FILENAME=C:ADVWORKSF4.NDF)TOFILEGROUPYEARFG4;
ALTERDATABASEDemoADDFILE(NAME=YEARF5,FILENAME=C:ADVWORKSF5.NDF)TOFILEGROUPYEARFG5;
ALTERDATABASEDemoADDFILE(NAME=YEARF6,FILENAME=C:ADVWORKSF6.NDF)TOFILEGROUPYEARFG6;
--HEREWEASSOCIATETHEPARTITIONFUNCTIONTO
--THECREATEDFILEGROUPVIAAPARTITIONINGSCHEME
USEDEMO;
GO
-------------------------------------------------------
--创立分区函数
-------------------------------------------------------
CREATEPARTITIONFUNCTIONYEARPF(datetime)
AS
RANGELEFTFORVALUES(01/01/2000
,01/01/2001
,01/01/2002
,01/01/2003
,01/01/2004)
-------------------------------------------------------
--创立分区架构
-------------------------------------------------------
CREATEPARTITIONSCHEMEYEARPS
ASPARTITIONYEARPFTO(YEARFG1,YEARFG2,YEARFG3,YEARFG4,YEARFG5,YEARFG6)
--创立利用此Schema的表
CREATETABLEPARTITIONEDORDERS
(
IDINTNOTNULLIDENTITY(1,1),
DUEDATEDATETIMENOTNULL,
)ONYEARPS(DUEDATE)
--为此表添补数据
declare@DTdatetime
SELECT@DT=1999-01-01
--startlooping,stopatendingdate
WHILE(@DT<=2005-12-21)
BEGIN
INSERTINTOPARTITIONEDORDERSVALUES(@DT)
SET@DT=dateadd(yy,1,@DT)
END
--如今我们能够看一下我们方才拔出的行都散布在哪一个Partition
SELECT*,$PARTITION.YEARPF(DUEDATE)FROMPARTITIONEDORDERS
--我们能够看一下我们如今PARTITIONEDORDERS表的数据存储在哪此partition中,和在这些分区中数据量的散布
SELECT*FROMSYS.PARTITIONSWHEREOBJECT_ID=OBJECT_ID(PARTITIONEDORDERS)
--
--如今我们假想一下,假如我们跟着工夫的流逝,如今已到了2005年,依照我们先前的设定,我们想再想进一个分区,这时候是否是从头创立表分区架构然后从头把数据导放到新的分区架构呢,谜底是完整不必。上面我们就看假如新加一个分区。
--变动分区架构界说言语,让下一个分区利用和如今已存在的分区YEARFG6分区中,如许此分区就存储了两段partition的数据。
ALTERPARTITIONSCHEMEYEARPS
NEXTUSEDYEARFG6;
--变动分区函数
ALTERPARTITIONFUNCTIONYEARPF()
SPLITRANGE(01/01/2005)
--如今我们能够看一下我们方才拔出的行都散布在哪一个Partition?
SELECT*,$PARTITION.YEARPF(DUEDATE)FROMPARTITIONEDORDERS
--我们能够看一下我们如今PARTITIONEDORDERS表的数据存储在哪此partition中,和在这些分区中数据量的散布
SELECT*FROMSYS.PARTITIONSWHEREOBJECT_ID=OBJECT_ID(PARTITIONEDORDERS)
2008年1月16号MySQLAB被Sun公司收购。而2009年,SUN又被Oracle收购。就这样如同一个轮回,MySQL成为了Oracle公司的另一个数据库项目。 |
|