1.查看文件组 sql语句

SELECT Data_located_on_filegroup = fg.groupname,
Table_name = obj.name
FROM sysfilegroups fg, sysindexes idx, sysobjects obj
WHERE idx.id = obj.id
AND obj.type in ('S ','U ')

AND idx.groupid = fg.groupid
 and  obj.name like '%%'       --表名
ORDER BY fg.groupname

2.更改文件组

说明: 在给表 创建索引的时候,可以指定索引在 不同的文件组, 这样 使 表 迁移到 另外的文件组

步骤1: 给表 创建索引 指定 文件组

步骤2: 将表的 索引删除(是表结构复原)

3.使用案例

CREATE procedure [olap].[usp_SwitchOutFact_Partition]
())
as
begin
BEGIN TRANSACTION
)
)  

 ),   + day(@date))
 ), ,  ,  , @date)))

 /*
 --逻辑描述:
 1.先检查 临时表是不是存在, 存在则删除后 使用select into 新建表
 2.select into 创建的表 默认存放在 PRIMARY 文件组, 我们要更改 文件组
 3.给临时表创建索引的时候, 可以更改文件组
 4.使表结构一致(包括索引) 所以删除刚创建的索引,此时完成 表的 文件组的更改
 5.进行表 压缩 ,指定 WITH(DATA_COMPRESSION = PAGE
 6. SWITCH PARTITION
 */

 from sys.tables where object_id=object_id('[olap].[staging_'+@tablename+']'))
    exec('drop table [olap].[staging_'+@tablename+']')

exec ('select top(0) * into olap.staging_'+@tablename+' from olap.'+@tablename)

exec('CREATE CLUSTERED INDEX PK_staging_'+@tablename+' ON [olap].[staging_'+@tablename+']([PartitionRangeKey]) WITH(ONLINE=ON) ON [FactFG]')
exec('DROP INDEX PK_staging_'+@tablename+' ON [olap].[staging_'+@tablename+']')

exec('ALTER TABLE olap.staging_' + @tablename + ' REBUILD WITH(DATA_COMPRESSION = PAGE )')
exec('ALTER TABLE [olap].[staging_'+@tablename+']  WITH CHECK ADD  CONSTRAINT [chk_staging_'+@tablename+'] CHECK  ([PartitionRangeKey]>=' + @RangeKey1 + ' AND [PartitionRangeKey]<' + @RangeKey2 + ' AND [PartitionRangeKey] IS NOT NULL)')

exec('ALTER TABLE [olap].[staging_'+@tablename+'] CHECK CONSTRAINT [chk_staging_'+@tablename+']')

exec('ALTER TABLE [olap].['+@tablename+'] SWITCH PARTITION $PARTITION.[pf_'+@tablename+'] ('+@RangeKey1+')  TO [olap].[staging_'+@tablename+']')

COMMIT TRANSACTION
end

调用语句

declare @date datetime
set @date = convert(datetime,'2016-09-23')
print @date
) ),   + day(@date))
print @RangeKey1
exec [olap].[usp_SwitchOutFact_Partition] @date,'Fact_XM_XMBJXX'

查看表分区情况

SELECT $PARTITION.[pf_Fact_XM_XMBJXX](PartitionRangeKey) AS Partition,
COUNT(*) AS [COUNT] FROM olap.Fact_XM_XMBJXX
GROUP BY $PARTITION.[pf_Fact_XM_XMBJXX](PartitionRangeKey)
ORDER BY Partition ;

sqlserver2012更改文件组的更多相关文章

  1. Linux 命令 - chown: 更改文件的所有者和所属群组

    chown 命令用来更改文件或者目录的所有者和所属群组.使用这个命令需要超级用户的权限. 命令格式 chown [OPTION]... [OWNER][:[GROUP]] FILE... chown ...

  2. SQL Server架构 -- 数据库文件和文件组

    在SQL SERVER中,数据库在硬盘上的存储方式和普通文件在Windows中的存储方式没有什么不同,也是在特定文件夹下创建不同的文件,然后经过文件存储系统去抓取数据信息.理解文件和文件组的概念可以帮 ...

  3. C#更改文件访问权限所有者(适用于各个Windows版本)

    前面也提到了,前段时间在做Online Judge系统,在正式上线前有几个比较老的版本,其中第一个版本使用ACL来控制权限以确保安全(但是这个版本完全建立在IIS上,所以这样做是没效果的),遇到了一些 ...

  4. SQL Server 文件和文件组

    文件和文件组简介 在SQL Server中,数据库在硬盘上的存储方式和普通文件在Windows中的存储方式没有什么不同,仅仅是几个文件而已.SQL Server通过管理逻辑上的文件组的方式来管理文件. ...

  5. ubuntu chmod 无法更改 文件夹权限 系统提示“不允许的操作 2、linux 如何修改只读文件 3、ubuntu安装

    1.ubuntu chmod 无法更改 文件夹权限 系统提示“不允许的操作 答案:需要超级用户权限 sudo 2.linux 如何修改只读文件 答案:可以使用chmod命令,为改文件提供其他的权限.u ...

  6. 关于SQL Server中分区表的文件与文件组的删除(转)

    在SQL Server中对表进行分区管理时,必定涉及到文件与文件组,关于文件与文件组如何创建在网上资料很多,我博客里也有两篇相关转载文件,可以看看,我这就不再细述,这里主要讲几个一般网上很少讲到的东西 ...

  7. Linux 命令 - chmod: 更改文件模式

    文件的模式 当使用 ls -l 命令查看目录内容时 [huey@huey-K42JE cmdline]$ ls -l /etc/passwd -rw-r--r-- 1 root root 1917 J ...

  8. sqlserver 理解文件和文件组

    在sqlserver中,数据库在硬盘的存储方式和普通文件存储一样,仅仅几个文件而已,sqlserver通过管理逻辑上的文件组的方式来管理存储数据的文件, 如图: 文件组管理着磁盘上的文件,而文件中存放 ...

  9. SQL Server 2008文件与文件组的关系

    此文章主要向大家讲述的是SQL Server 2008文件与文件组,其中包括文件和文件组的含义与关系,文件.文件组在实践应用中经常出现的问题,查询文件组和文件语句与MSDN官方解释等相关内容的介绍. ...

随机推荐

  1. EntityFramework 7 Left Join Where is error(Test record)

    First of all, my English is very poor, so I may not be a very good expression, very sorry! In this b ...

  2. Solr学习总结(六)SolrNet的高级用法(复杂查询,分页,高亮,Facet查询)

    上一篇,讲到了SolrNet的基本用法及CURD,这个算是SolrNet 的入门知识介绍吧,昨天写完之后,有朋友评论说,这些感觉都被写烂了.没错,这些基本的用法,在网上百度,资料肯定一大堆,有一些写的 ...

  3. Java中的反射和注解

    前言 在Java中,反射机制和注解机制一直是一个很重要的概念,那么他们其中的原理是怎么样呢,我们不仅仅需要会使用,更要知其然而之所以然. 目录 反射机制 反射如何使用 注解定义 注解机制原理 注解如何 ...

  4. git版本回退, github版本回退

    上周提交了更改,过了周末回来说要撤销上个story.于是,需要找到上周提交的版本,rollback回来. git版本管理命令,自从习惯使用管理工具之后就很少接触了,当突然寻找其他指令的时候就成浆糊了, ...

  5. Hibernate ——二级缓存

    一.Hibernate 二级缓存 1.Hibernate 二级缓存是 SessionFactory 级别的缓存. 2.二级缓存分为两类: (1)Hibernate内置二级缓存 (2)外置缓存,可配置的 ...

  6. GitHub-版本控制

    GitHub的使用:注册,登录,邮箱激活,创建第一个repository.如果branch是master,修改,提交,master直接改变. 稳妥起见创建另一个branch,修改,提交,再发出pull ...

  7. C#基础-技术还债2-枚举

    定一个枚举如下: using System; using System.Collections.Generic; using System.Linq; using System.Reflection; ...

  8. Levenshtein Distance算法(编辑距离算法)

    编辑距离 编辑距离(Edit Distance),又称Levenshtein距离,是指两个字串之间,由一个转成另一个所需的最少编辑操作次数.许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符, ...

  9. log4Net(写入日志文件)

    这里就简单介绍下log4Net对写入日志文件的一些了解,写入数据库类似,就不在一一介绍了. 首先去log4net下载. 然后我们新建一个控制台应用程序,并引入log4net.dll程序集,log4ne ...

  10. Java时间和时间戳的相互转换

    时间转换为时间戳: /* * 将时间转换为时间戳 */ public static String dateToStamp(String s) throws ParseException{ String ...