SQL普通表转分区表的方法

复制代码 代码如下:
CREATE TABLE Sale( 
    [Id] [int] identity(1,1) NOT NULL,          --自动增长
    [Name] [varchar](16) NOT NULL, 
    [SaleTime] [datetime] NOT NULL, 
    constraint [PK_Sale] primary key clustered  --创建主键
    ( 
        [Id] ASC 
    ) 

--插入一些记录
insert Sale ([Name],[SaleTime]) values ('张三','2009-1-1')   
insert Sale ([Name],[SaleTime]) values ('李四','2009-2-1')   
insert Sale ([Name],[SaleTime]) values ('王五','2009-3-1')   
insert Sale ([Name],[SaleTime]) values ('钱六','2010-4-1')   
insert Sale ([Name],[SaleTime]) values ('赵七','2010-5-1')   
insert Sale ([Name],[SaleTime]) values ('张三','2011-6-1')   
insert Sale ([Name],[SaleTime]) values ('李四','2011-7-1')   
insert Sale ([Name],[SaleTime]) values ('王五','2011-8-1')   
insert Sale ([Name],[SaleTime]) values ('钱六','2012-9-1')   
insert Sale ([Name],[SaleTime]) values ('赵七','2012-10-1')   
insert Sale ([Name],[SaleTime]) values ('张三','2012-11-1')   
insert Sale ([Name],[SaleTime]) values ('李四','2013-12-1')   
insert Sale ([Name],[SaleTime]) values ('王五','2014-12-1')

alter table Sale drop constraint PK_Sale 
--创建主键,但不设为聚集索引
alter TABLE Sale add constraint PK_Sale primary key nonclustered

    [ID] ASC 
) ON [PRIMARY]

--创建分区函数
GO
create partition function [pf_Sale](SaleTime) as range left for values(N'2010-5-1T00:00:00.000', N'2012-9-1T00:00:00.000'
GO

--创建分区结构
GO
create partition scheme [pt_Sale] as partition [pf_Sale] TO ([Sale1], [Sale3], [Sale2])
GO

--创建一个使用[pt_Sale]架构
GO
create table [dbo].[AvCache](
[Id] [int] identity(1,1) NOT NULL,          --自动增长
    [Name] [varchar](16) NOT NULL, 
    [SaleTime] [datetime] NOT NULL, 
)on [pt_Sale](SaleTime) --注意这里使用[pt_Sale]架构,根据SaleTime 分区

-- 查看使用情况
SELECT *, $PARTITION.[pt_Sale](SaleTime)
 FROM dbo.[AvCache]

时间: 2024-09-21 00:07:41

SQL普通表转分区表的方法的相关文章

SQL普通表转分区表的方法_MsSql

复制代码 代码如下: CREATE TABLE Sale(      [Id] [int] identity(1,1) NOT NULL,          --自动增长     [Name] [varchar](16) NOT NULL,      [SaleTime] [datetime] NOT NULL,      constraint [PK_Sale] primary key clustered  --创建主键     (          [Id] ASC      )  )  -

sql多表查询语句与方法

下面使用等值连接列出authors和publishers表中位于同一城市的作者和出版社: Select * FROM authors AS a INNER JOIN publishers AS p ON a.city=p.city   又如使用自然连接,在选择列表中删除authors 和publishers 表中重复列(city和state) : Select a.*,p.pub_id,p.pub_name,p.country FROM authors AS a INNER JOIN publi

Oracle 分区表的新增、修改、删除、合并。普通表转分区表方法

一. 分区表理论知识 Oracle提供了分区技术以支持VLDB(Very Large DataBase).分区表通过对分区列的判断,把分区列不同的记录,放到不同的分区中.分区完全对应用透明. Oracle的分区表可以包括多个分区,每个分区都是一个独立的段(SEGMENT),可以存放到不同的表空间中.查询时可以通过查询表来访问各个分区中的数据,也可以通过在查询时直接指定分区的方法来进行查询. When to Partition a Table什么时候需要分区表,官网的2个建议如下: Tables

Sql Server如何查看被锁的表及解锁的方法_MsSql

查看被锁表: select spId from master..SysProcesses where db_Name(dbID) = '数据库名称' and spId <> @@SpId and dbID <> 0 解除锁: exec ('Kill '+cast(@spid as varchar)) 查看被锁表: select request_session_id spid,OBJECT_NAME(resource_associated_entity_id) tableName f

sql 求两表交集两种方法

sql 求两表交集两种方法 dept表 id deptid 1 20 2 20 3 20 user表 id userid 1 33 2 34 3 34 方法一 select distinct userid from user u where id in (select id from dept where deptid=20) and not exists (select 1 from user where id in (select id from dept deptid=20) and us

sql alert table 修改表结构的使用方法

sql alert table 修改表结构的使用方法 ALTER TABLE 语句用于在已有的表中添加.修改或删除列 ADD [COLUMN] column name (column definitions) [FIRST or AFTER column_name] ADD INDEX [index_name] (column_list) ADD PRIMARY KEY (column_list) ADD UNIQUE [index_name] (column_list) ALTER [COLU

sql update多表联合更新的方法

sql update多表联合更新的方法 可以根据一个表的字段的值 像关联查询一样 修改 一个表的字段值 和另一个表关联 update 表一 set 表一.列名= 表二.列名 from 表一,表二 where 表一.ID = 表二.ID 本文总结了Update语句更新多表时在SQL Server,Oracle,MySQL三种数据库教程中的用法.我也试 了SQLite数据库,都没成功,不知是不支持多表更新还是咋的. 在本例中: 我们要用表gdqlpj 中的gqdltks,bztks字段数据去更新la

sql server 表结构修改方法_MsSql

如果我们需要修改sql server表结构,应该怎么做呢?下面就将教您如何修改sql server表结构的方法,希望对您学习sql server表结构方面能够有所帮助. 向sql server表中增加一个varchar列: ALTER TABLE distributors ADD COLUMN address varchar(30); 从sql server表中删除一个字段: ALTER TABLE distributors DROP COLUMN address RESTRICT; 在一个操作

Sql Server如何查看被锁的表及解锁的方法

查看被锁表: select spId from master..SysProcesses where db_Name(dbID) = '数据库名称' and spId <> @@SpId and dbID <> 0 解除锁: exec ('Kill '+cast(@spid as varchar)) 查看被锁表: select request_session_id spid,OBJECT_NAME(resource_associated_entity_id) tableName f