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. stm32控制电机

    一.总体思路       使用端口GPIOA来连接电机,所以给GPIOA编程就可以控制电机.使用系统时钟SysTick来周期性的给电机发送脉冲.用四个按钮来控制需要发送脉冲的个数,每个按钮被按下就设置 ...

  2. MySQL索引下推技术

    索引下推整个思路如下: To see how this optimization works, consider first how an index scan proceeds when Index ...

  3. 简析将shp导入Oracle并利用geoserver将导入的数据发布

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.环境准备 1.1 软件准备 首先要安装有支持空间数据的Oracle ...

  4. 【LeetCode】Increasing Triplet Subsequence(334)

    1. Description Given an unsorted array return whether an increasing subsequence of length 3 exists o ...

  5. TCP三次握手,四次挥手

    前言 在面试的过程中,TCP的传输协议经常会出现.以前我参加面试的过程中就被问到过,现在轮到我面试其他人的时候,我也会问一些相关的问题.作为一名开发者,无论使用什么样的开发语言,最基本的网络知识一定要 ...

  6. HTML元素坐标定位,这些知识点得掌握

    文档坐标和视口坐标 视口坐标是相对于窗口的坐标,而文档坐标是相对于整个文档而言.例如,在文档坐标中如果一个元素的相对于文档的Y坐标是200px,并且用户已经把浏览器向下滚动了75px,那么视口坐标中元 ...

  7. LINQ to SQL语句(13)之开放式并发控制和事务

    Simultaneous Changes开放式并发控制 下表介绍 LINQ to SQL 文档中涉及开放式并发的术语: 术语 说明 并发 两个或更多用户同时尝试更新同一数据库行的情形. 并发冲突 两个 ...

  8. ActiveX(一)第一个简单的Demo

    说道ActiveX,我的第一直觉就是Flash,利用ActiveX.我们可以创建丰富的可交互式应用程序.同时.利用ActiveX特性.我们可以实现Js 与 ActiveX 的无缝连接(包括数据共享.和 ...

  9. C# Enum Name String Description之间的相互转换

    最近工作中经常用到Enum中Value.String.Description之间的相互转换,特此总结一下. 1.首先定义Enum对象 public enum Weekday { [Descriptio ...

  10. System.Diagnostics.Process.Start的妙用

    我们经常会遇到在Winform或是WPF中点击链接或按钮打开某个指定的网址, 或者是需要打开电脑中某个指定的硬盘分区及文件夹, 甚至是"控制面板"相关的东西, 那么如何做呢? 答案 ...