`
j2eeli
  • 浏览: 45366 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

SQL Server 2005 表分区

阅读更多

SQL Server 2005引入的表分区技术,让用户能够把数据分散存放到不同的物理磁盘中,提高这些磁盘的并行处理性能以优化查询性能。

-- 创建要使用的测试数据库,Demo

USE [master]

IF EXISTS (SELECT name FROM master.dbo.sysdatabases WHERE name = N'DEMO')

DROP DATABASE [DEMO]

CREATE DATABASE [DEMO]

--由于表分区使用使用新的体系结构,使用文件组来进行表分区,所以我们创建将要用到的6个文件组,来存储6个时间段的交易数据[<2000],[ 2001], [2002], [2003], [2004], [>2005]

ALTER DATABASE Demo ADD FILEGROUP YEARFG1;

ALTER DATABASE Demo ADD FILEGROUP YEARFG2;

ALTER DATABASE Demo ADD FILEGROUP YEARFG3;

ALTER DATABASE Demo ADD FILEGROUP YEARFG4;

ALTER DATABASE Demo ADD FILEGROUP YEARFG5;

ALTER DATABASE Demo ADD FILEGROUP YEARFG6;

-- 下面为这些文件组添加文件来进行物理的数据存储

ALTER DATABASE Demo ADD FILE (NAME = 'YEARF1', FILENAME = 'C:\ADVWORKSF1.NDF') TO FILEGROUP YEARFG1;

ALTER DATABASE Demo ADD FILE (NAME = 'YEARF2', FILENAME = 'C:\ADVWORKSF2.NDF') TO FILEGROUP YEARFG2;

ALTER DATABASE Demo ADD FILE (NAME = 'YEARF3', FILENAME = 'C:\ADVWORKSF3.NDF') TO FILEGROUP YEARFG3;

ALTER DATABASE Demo ADD FILE (NAME = 'YEARF4', FILENAME = 'C:\ADVWORKSF4.NDF') TO FILEGROUP YEARFG4;

ALTER DATABASE Demo ADD FILE (NAME = 'YEARF5', FILENAME = 'C:\ADVWORKSF5.NDF') TO FILEGROUP YEARFG5;

ALTER DATABASE Demo ADD FILE (NAME = 'YEARF6', FILENAME = 'C:\ADVWORKSF6.NDF') TO FILEGROUP YEARFG6;

-- HERE WE ASSOCIATE THE PARTITION FUNCTION TO

-- THE CREATED FILEGROUP VIA A PARTITIONING SCHEME

USE DEMO;

GO

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

-- 创建分区函数

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

CREATE PARTITION FUNCTION YEARPF(datetime)

AS

RANGE LEFT FOR VALUES ('01/01/2000'

                                          ,'01/01/2001'

                                          ,'01/01/2002'

                                          ,'01/01/2003'

                                          ,'01/01/2004')

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

-- 创建分区架构

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

CREATE PARTITION SCHEME YEARPS

AS PARTITION YEARPF TO (YEARFG1, YEARFG2,YEARFG3,YEARFG4,YEARFG5,YEARFG6)

-- 创建使用此Schema的表

CREATE TABLE PARTITIONEDORDERS

(

ID INT NOT NULL IDENTITY(1,1),

DUEDATE DATETIME NOT NULL,

) ON YEARPS(DUEDATE)

--为此表填充数据

declare @DT datetime

SELECT @DT = '1999-01-01'

--start looping, stop at ending date

WHILE (@DT <= '2005-12-21')

BEGIN

       INSERT INTO PARTITIONEDORDERS VALUES(@DT)

       SET @DT=dateadd(yy,1,@DT)

END

-- 现在我们可以看一下我们刚才插入的行都分布在哪个Partition

SELECT *, $PARTITION.YEARPF(DUEDATE) FROM PARTITIONEDORDERS

--我们可以看一下我们现在PARTITIONEDORDERS表的数据存储在哪此partition中,以及在这些分区中数据量的分布

SELECT * FROM SYS.PARTITIONS WHERE OBJECT_ID = OBJECT_ID('PARTITIONEDORDERS')

--

--现在我们设想一下,如果我们随着时间的流逝,现在已经到了2005年,按照我们先前的设定,我们想再想入一个分区,这时是不是重新创建表分区架构然后重新把数据导放到新的分区架构呢,答案是完全不用。下面我们就看如果新加一个分区。

--更改分区架构定义语言,让下一个分区使用和现在已经存在的分区YEARFG6分区中,这样此分区就存储了两段partition的数据。

ALTER PARTITION SCHEME YEARPS

NEXT USED YEARFG6;

--更改分区函数

ALTER PARTITION FUNCTION YEARPF()

SPLIT RANGE ('01/01/2005')

--现在我们可以看一下我们刚才插入的行都分布在哪个Partition

SELECT *, $PARTITION.YEARPF(DUEDATE) FROM PARTITIONEDORDERS

--我们可以看一下我们现在PARTITIONEDORDERS表的数据存储在哪些partition中,以及在这些分区中数据量的分布

SELECT * FROM SYS.PARTITIONS WHERE OBJECT_ID = OBJECT_ID('PARTITIONEDORDERS')

分享到:
评论

相关推荐

    sqlserver2005表分区

    【SQL Server 2005 表分区】 分区表是SQL Server 2005提供的一种高级数据管理技术,主要用于优化大规模数据表的性能。当你的数据库中存在数据量巨大且查询频繁的表时,分区表能够显著提升查询效率,降低维护成本。...

    SQL Server 2005表分区在企业数据库中的应用.pdf

    SQL Server 2005表分区在企业数据库中的应用.pdf

    SQL Server 2005 表分区功能和索引

    SQL Server 2005 視屏學習資料

    查看sqlserver表分区数据分布

    ### 查看SQL Server表分区数据分布 在SQL Server中,为了提高大型数据库的管理效率与查询性能,常常会采用表分区技术。通过合理地将一个表的数据分散到多个物理文件或文件组上,可以显著提升数据处理的速度。本文将...

    sqlServer数据库大表分区方案

    ### SQL Server 大表分区方案详解 #### 一、大表分区条件 在数据库管理过程中,随着业务数据的不断增长,单个表的数据量可能会变得非常庞大,这不仅会导致数据库性能下降,还会影响数据处理效率。为了有效解决这些...

    sql2005表分区辅助程序

    以下是关于SQL Server 2005表分区的一些关键知识点: 1. **分区函数**:定义了如何将数据分配到各个分区。例如,你可以创建一个时间分区函数,将数据按年或季度进行分区。 2. **分区方案**:定义了如何在物理上...

    SQL_SERVER_2005表分区的使用

    以下是对SQL Server 2005表分区的详细说明: 1. **表分区的概念**: 表分区是将一个大表逻辑上划分为多个更小的部分,每个部分称为一个分区。这些分区可以分布在不同的物理存储上,从而实现数据的分散和管理。分区...

    MS SQL Server分区表、分区索引详解

    ### MS SQL Server 分区表、分区索引详解 #### 一、分区表简介 使用分区表的主要目的是为了改善大型表及具有多种访问模式的表的可伸缩性和可管理性。这里的“大型表”指的是数据量巨大的表,“访问模式”是指因不同...

    SQL Server 2005 中的分区表和索引

    ### SQL Server 2005 中的分区表和索引:深入解析 #### 分区的由来与演变 分区的概念在SQL Server的历史中占据着重要地位。从早期的SQL Server版本开始,数据库管理员就意识到,面对不断增长的数据量,传统的单一...

    sqlserver2005 创建分区表 分区索引 注意事宜 分区索引

    【SQL Server 2005 创建分区表与分区索引详解】 分区表和分区索引是SQL Server 2005为企业级数据管理和性能优化提供的重要特性,尤其适用于处理大量数据的大型表。分区能够将数据划分为独立的、易于管理的块,这有...

    SQLServer创建表分区脚本

    在SQL Server中,表分区是一种优化数据库性能的技术,它允许将大表的数据分布在多个物理存储上,以便于管理和查询。这种技术尤其适用于处理海量数据,因为它可以提高数据的读写速度,减少I/O操作,并简化维护任务。...

    SQL Server 2005新特性之表分区的功能

    ### SQL Server 2005新特性之表分区的功能 #### 一、引言 随着企业数据量的不断增加,数据库管理系统的性能优化变得尤为重要。为了应对海量数据带来的挑战,SQL Server 2005引入了表分区功能。通过将表中的数据...

    sqlserver 表分区 详解

    SQL Server 2005及以上版本开始支持表分区功能。 **2. 表分区的原理** 表分区基于一种叫做“分区函数”的机制,这个函数将表的行映射到不同的分区。分区可以按照时间、数量或其他业务关键字段进行。例如,根据日期...

    SQL Server分区表

    从 SQL Server 2005 开始,微软引入了分区表功能,以帮助提高对大型数据集的操作效率。 **分区表**是指将一个表中的数据按照一定的规则(如范围或列表)分散存储在多个物理文件或文件组中的一种技术。这样做的目的...

    SQL Server 表分区操作详解

    在 SQL Server 2005 中引入的表分区技术,允许用户将数据分散存放到不同的物理磁盘中,以提高查询性能。表分区操作过程由三个步骤组成:创建分区函数、创建分区架构和对表进行分区。 创建分区函数 创建分区函数是...

    SQLServer2005分区表

    ### SQL Server 2005 分区表技术详解 #### 一、引言 随着数据库规模的不断扩大,数据管理和查询效率成为了重要的考虑因素。SQL Server 2005引入了一项重要的特性——**分区表**,它为解决大型表的性能和可管理性...

    sqlserver 2008创建表分区

    在SQL Server 2008中,创建表分区是一种优化大型数据库性能的技术。它通过将一个大表的数据分成多个逻辑部分,或者称为“分区”,来提高查询效率和管理大规模数据的便捷性。以下是对这个主题的详细解释: 一、表...

    sqlserver 2005 express X64

    SQL Server 2005 Express Edition 是微软推出的一款轻量级数据库管理系统,特别适用于小型企业和个人开发者。在64位(X64)系统上安装SQL Server 2005 Express,可以充分利用更大的内存和处理器资源,从而提高数据...

    SQL Server 2005 技术内幕四部

    这个压缩包包含四本关于SQL Server 2005的技术内幕书籍,分别聚焦于T-SQL查询、T-SQL程序设计、存储引擎以及查询、调整和优化,另外还附带了一本与.NET相关的文档,对于深入理解SQL Server 2005的各个方面有着重要的...

Global site tag (gtag.js) - Google Analytics