SQL2005分区表可以在一定程度上解决海量数据的性能问题,比如可以规避高访问量数据区段的io竞争,可以缩小你查询数据范围的索引大小。
msdn参考
http://msdn.microsoft.com/zh-cn/library/ms345146.aspx
一个完整的脚本示例
--drop database dbPartitionTest
--测试数据库
create database dbPartitionTest
go
use
dbPartitionTest
go
--增加分组
alter database dbPartitionTest ADD FILEGROUP P200801
alter database dbPartitionTest ADD FILEGROUP P200802
alter database dbPartitionTest ADD FILEGROUP P200803
go
--分区函数
CREATE PARTITION FUNCTION part_Year(datetime)
AS RANGE LEFT FOR VALUES
(
'20080131 23:59:59.997','20080229 23:59:59.997','20080331 23:59:59.997'
)
go
--增加文件组
ALTER DATABASE dbPartitionTest ADD FILE (NAME = N'P200801',FILENAME = N'c:\tb_P200801.ndf',SIZE = 1MB,MAXSIZE = 500MB,FILEGROWTH = 1MB)TO FILEGROUP P200801
ALTER DATABASE dbPartitionTest ADD FILE (NAME = N'P200802',FILENAME = N'c:\tb_P200802.ndf',SIZE = 1MB,MAXSIZE = 500MB,FILEGROWTH = 1MB)TO FILEGROUP P200802
ALTER DATABASE dbPartitionTest ADD FILE (NAME = N'P200803',FILENAME = N'c:\tb_P200803.ndf',SIZE = 1MB,MAXSIZE = 500MB,FILEGROWTH = 1MB)TO FILEGROUP P200803
go
--分区架构
CREATE PARTITION SCHEME part_YearScheme AS PARTITION part_Year TO (P200801,P200802,P200803,[PRIMARY])
go
CREATE TABLE [dbo].t_part
(name varchar(100) default newid(),date datetime NOT NULL)
ON part_YearScheme (date)
go
--添加测试数据,每天1条
declare @date datetime
set @date='2007-12-31'
while @date<='2008-04-01'
begin
insert into t_part(date)values(@date)
set @date=@date+1
end
go
--查询数据分布在哪些分区
select $partition.part_Year(date) as 分区编号,* from t_part order by date
--查询数据库文件
go
sp_helpfile
分享到:
相关推荐
用来实现SQL Server 数据分区存储的最基础的SQL示例,用来将海量数据分区存储,提高数据库性能。
Oracle数据库中的表分区是一种优化大型数据表性能的技术,它将一个大表划分为多个更小、更易管理的部分,每个部分称为一个分区。通过分区,可以提高查询速度、简化管理和维护,以及改善备份和恢复的效率。以下是...
该书解释并比较了SQL Server 2000和SQL Server 2005在数据库开发相关问题上的解决方案,深入讨论了SQL Server 2005中新增的T-SQL编程特性,包含了大量的代码示例、表示例和逻辑难题以帮助数据库开发人员和管理员理解...
### Hive 分区表与分桶表详解 #### 一、Hive 分区表概念与应用场景 **分区表**是Hive中的一个重要特性,主要用于优化大数据量下的查询性能。通过将表按照一个或多个列的值划分为不同的部分,可以极大地减少扫描的...
在本例中,我们关注的是范围分区,特别是在时间维度上的应用,即按年进行分区。 范围分区通常基于连续的数值或日期范围,例如年份。这种方式适用于记录有明确时间戳的数据,如订单、交易记录等。以下是一个创建按年...
在本例中,如果新分区尚未存在,会将最大分区`PAR_NAME_MAX`分裂,形成新的分区`PAR_NAME`和更新后的`PAR_NAME_MAX`。 7. **分区命名约定**: 分区名称通常基于分区键的值,如日期,通过`CONCAT`函数将表名和日期...
首先,确认DB2的安装环境,例如,这里的实例名为"db2inst1",DB2版本为"SQL1005B",表示DB2 v10.5.0.11。通过`db2level`命令可以获取这些信息。 2. **数据备份**: 在进行任何重大操作之前,如表分区,通常需要...
四、创建分区表示例 例如,创建一个范围分区的销售表,根据销售日期进行分区: ```sql CREATE TABLE sales_range (salesman_id NUMBER(5), salesman_name VARCHAR2(30), sales_amount NUMBER(10), sales_date DATE)...
“where 1=1” 是表示选择全部 “where 1=2”全部不选, 如: if @strWhere !='' begin set @strSQL = 'select count(*) as Total from [' + @tblName + '] where ' + @strWhere end else begin set @strSQL = '...
在安装MS SQLServer之前,需要在两台服务器上各准备一个分区用于做镜像盘(以下简称“X盘”),其大小应能满足MS SQLServer实例数据的存放需求。由于镜像后X盘的大小将以较小的那个为准,因此建议两台服务器上的X盘...
- `PARTITION BY` 子句用于将结果集划分为多个分区,本例中按`mat12id`进行分区。 - `ORDER BY` 子句定义了每个分区内部的排序规则。 - `WHERE RN = 1` 表示只选择每个分区的第一条记录。 ### 2. 查询从多少行到...
- `ORDER BY`则是定义了在每个分区内的行逻辑顺序,我们用`E.zpcj DESC`来表示按总评成绩降序排列。 完整的查询语句如下: ```sql SELECT LEFT(O.xq, 9) AS 学年, RIGHT(O.xq, 2) AS 学期, O.kh AS 课号, E....
表示支持分区。 或者通过: SHOW PLUGINS; 显示所有插件,如果有partition ACTIVE STORAGE ENGINE GPL 插件则表明支持分区 ps:什么是数据库分区 前段时间写过一篇关于mysql分表的的文章,下面来说一下什么是数据库...
在本例中,我们有一个名为"全国地区数据.sql"的压缩包文件,这很可能是用来导入到SQL数据库的一个文件,里面包含了创建表的SQL语句以及相应的数据插入语句。 1. **SQL语言基础**: SQL(Structured Query Language)...
作者通过总结各自多年的软件开发和教学培训经验,与大家分享了掌握Oracle SQL所独有的丰富功能的技巧所在,内容涵盖SQL执行、联结、集合、分析函数、子句、事务处理等多个方面。读者可以学习到以下几个方面的技巧:...
创建外部表示例: ```sql CREATE EXTERNAL TABLE page_view ( viewTime INT, userid BIGINT, page_url STRING, referrer_url STRING, ip STRING COMMENT 'IP Address of the User', country STRING COMMENT '...
“where 1=1” 是表示选择全部 “where 1=2”全部不选, 如: if @strWhere !='' begin set @strSQL = 'select count(*) as Total from [' + @tblName + '] where ' + @strWhere end else begin set @strSQL = '...
在本例中,我们关注的是`geography`类型,它用于表示地球表面的几何对象,如点、线和多边形。`geography`数据类型支持WGS 84(世界大地测量系统)坐标系,这是一个广泛使用的全球参考系统,用于定义地理位置。 计算...