参考 https://www.cnblogs.com/hhhh2010/p/10429002.html

参考 https://www.cnblogs.com/xiaomengshan/p/11139299.html

用 ssms 图形界面操作分区后,可能会需要调整分区大小及数量

下面是删除一个分区,分区删除后,分区的数据自动移到对应存在的分区里,(分区方案会自动执行删除对应的文件组不用写脚本)

  --删除一个分区ALTER PARTITION FUNCTION  [Role_FQ_Fun]() MERGE RANGE (20)

下面是添加一个分区,

  --修改分区方案,用一个新的文件组用于存放下一新增的数据ALTER PARTITION SCHEME  [Role_FQ_Scheme] NEXT USED [FileGroup4]--修改分区函数,添加下一个边界值ALTER PARTITION FUNCTION [Role_FQ_Fun]() SPLIT   RANGE ( 18)

查看分区信息


--查看分区
SELECT  SCHEMA_NAME(so.schema_id) AS schema_name ,
OBJECT_NAME(p.object_id) AS object_name ,p.partition_number ,p.data_compression_desc ,dbps.row_count ,dbps.reserved_page_count * 8 / 1024. AS reserved_mb ,si.index_id ,CASE WHEN si.index_id = 0 THEN '(heap!)'ELSE si.nameEND AS index_name ,si.is_unique ,si.data_space_id ,mappedto.name AS mapped_to_name ,mappedto.type_desc AS mapped_to_type_desc ,partitionds.name AS partition_filegroup ,pf.name AS pf_name ,pf.type_desc AS pf_type_desc ,pf.fanout AS pf_fanout ,pf.boundary_value_on_right ,ps.name AS partition_scheme_name ,rv.value AS range_value            FROM    sys.partitions p            JOIN    sys.objects soON p.object_id = so.object_idAND so.is_ms_shipped = 0            LEFT JOIN sys.dm_db_partition_stats AS dbpsON p.object_id = dbps.object_idAND p.partition_id = dbps.partition_id            JOIN    sys.indexes siON p.object_id = si.object_idAND p.index_id = si.index_id            LEFT JOIN sys.data_spaces mappedtoON si.data_space_id = mappedto.data_space_id            LEFT JOIN sys.destination_data_spaces ddsON si.data_space_id = dds.partition_scheme_idAND p.partition_number = dds.destination_id            LEFT JOIN sys.data_spaces partitiondsON dds.data_space_id = partitionds.data_space_id            LEFT JOIN sys.partition_schemes AS psON dds.partition_scheme_id = ps.data_space_id            LEFT JOIN sys.partition_functions AS pfON ps.function_id = pf.function_id            LEFT JOIN sys.partition_range_values AS rvON pf.function_id = rv.function_idAND dds.destination_id = CASE pf.boundary_value_on_rightWHEN 0 THEN rv.boundary_idELSE rv.boundary_id + 1END

===========================================

动态表分区

通过 SqlServer 代理 作业 定时执行 存储过程 动态根据 主键 id 段 划分 表分区

创建一个存储过程

ssms 右键创建就好,然后把下面的逻辑加进去

执行划分的存储过程 逻辑内容


DECLARE @dataBaseName VARCHAR(20),    --数据库名@rang int,        --每个边界数量@fileName VARCHAR(20), @filePath VARCHAR(100),@index int,@fileGroupName VARCHAR(20),@schemeName VARCHAR(20),    --分区方案名@partFunctionName VARCHAR(20),    --分区函数名@limit VARCHAR(50),    --分区界限@while_i intset @rang=5SET @dataBaseName='School'SET @schemeName='Role_FQ_Scheme'SET @partFunctionName='Role_FQ_Fun'--计算索引序号
select @index=max(id)/@rang from School.[dbo].[Role]set @while_i=@indexwhile @while_i>0
begin       --while  startset @fileName='FileGroup'+ CAST(@while_i as varchar ) set @fileGroupName=@fileNameset @filePath='C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\DATA\'+@fileName+'.ndf'set @limit=CAST(@while_i*@rang as varchar )--判断文件组 (语句要指明需要操作的数据库)
if exists(select * from School.sys.filegroups where name=@fileGroupName)beginprint '文件组存在,不需添加'break;  --推出循环end
elsebeginexec('ALTER DATABASE '+@dataBaseName+' ADD FILEGROUP ['+@fileGroupName+']')print '新增文件组'+@fileGroupNameend--判断文件
if exists(select * from School.sys.database_files where [state]=0 and (name=@fileName or physical_name=@filePath))beginprint 'ndf文件存在,不需添加';end
elsebeginexec('ALTER DATABASE '+@dataBaseName+' ADD FILE(NAME ='''+@fileName+''',FILENAME = '''+@filePath+''')TO FILEGROUP ['+@fileGroupName+']')print '添加文件'+@fileName+'至文件组'+@fileGroupNameend
--修改分区方案
if exists(select * from sys.partition_schemes where name=@schemeName)beginexec('alter partition scheme '+@schemeName+' next used ['+@fileGroupName+']')print '修改分区方案,指定下一分区的文件组'end
elsebeginprint '分区方案不存在'end--修改分区函数
if exists(select function_id from sys.partition_functions where name=@partFunctionName)beginif exists(select * from sys.partition_range_values where function_id=(select function_id from sys.partition_schemes where name=@schemeName) and value=CAST( @limit as int))beginprint '界限已存在'endelsebeginexec('alter partition function '+@partFunctionName+'() split range('''+@limit+''')')print '修改分区函数,添加划分界限为:'+@limitendend
elsebeginprint '分区函数不存在'endset @while_i=@while_i-1;
end     --while  end

创建 SqlServer 的计划任务

1、打开SQL Server Management Studio,SQL Server代理 --作业--点右键--新建作业。
2、写上定时执行存储过程名称(任意),点击确定保存。
3、点击常规下面的步骤,按箭头指示,新建步骤,选择存储过程所用的数据库,录入需要执行的命令和参数,点击确定保存。
4、新建计划,进计划属性设置窗口,设置计划自动定时执行的时间。确定保存即可。

SqlServer 表分区相关推荐

  1. SQLServer 表分区 根据时间自动扩展分区

    SQLServer 表分区 根据时间自动扩展分区 前提条件 创建文件组 创建文件并且将文件加入文件组 修改分区方案 修改分区函数 创建存储过程 利用各种定时任务执行以上存储过程 前提条件 已经创建好分 ...

  2. sqlserver表分区

    原理就类似于把一个表的资 料放在不同的分区里面,当查询时,如果都在同一个单独的分区内的话,就不用进行全表扫描,因此在这些情况下可以提高查询的效率,但如果所有分区都要查询所 有资料的话,分区并不会提高效 ...

  3. SQL Server 表分区实战系列(文章索引)

    一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 前言(Introduction) 实战说明(In Action) 表分区逻辑结构图(Construction) 表分区学 ...

  4. SqlServer 自动化分区方案

    本文是我关于数据库分区的方案的一些想法,或许有些问题.仅供大家讨论.SqlServer (SqlServer 2005\SqlServer 2008)实现分区需要在企业版下进行. SqlServer的 ...

  5. Oracle之表分区、分区索引(二)

    其实range分区你学会了,其他的分区你也学会了,在这我就不敲了,咱们简单来看一下,hash分区,hash分区实现负载均衡,平均分配值进行分区,那这个哈希就是平均分配的,也是一张表,还是partiti ...

  6. 数据库表设计、 数据库分层、myslq水平拆分、oracle表分区

    数据库表设计 数据库表结构设计方法及原则(li)数据库设计的三大范式:为了建立冗余较小.结构合理的数据库,设计数据库时必须遵循一定的规则.在关系型数据库中这种规则就称为范式.范式是符合某一种设计要求的 ...

  7. 52. SQL Server -- 表分区实战系列(文章索引)

    一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 前言(Introduction) 实战说明(In Action) 表分区逻辑结构图(Construction) 表分区学 ...

  8. 数据库Sql server 表分区

    首先明确表分区和分库分表的概念. 表分区:在不破坏原本表结构的基础上,对单个大表进行切割,分成不同文件,存储在不用文件或硬盘. 分库分表:这里涉及到垂直切分及水平切分(引用网上的文章:https:// ...

  9. mysql表分区占用存储_MySQL 分区分表应用场景分析和分区中可能遇到的坑点

    MySQL的分区和分表应用场景分析 在日常工作中当我们的某张表的数据量过大的时候,首当其冲的可能就是进行分区和分表,但是是如何分区或者分表都要结合一点的业务场景下进行分析,才会显著的提升性能,来聊一聊 ...

最新文章

  1. Appium 并发测试基于unitest
  2. linux下的hive命令大全,Hive shell 常用命令
  3. python Manager dict
  4. android ScrollView滚动距离和判断滚动停止状态
  5. python虚拟环境的安装和配置_基于virtualenv的Python虚拟环境的安装配置(Mac环境)...
  6. node.js--exports和module.exports
  7. Cloudstack系统配置(三)
  8. postman使用过程中body中的form-data,x-www-form-urlencoded,raw,binary的简单记录
  9. PyTorch 1.0 中文文档:torchvision.transforms
  10. cocos2d-x 3.0对label的改进
  11. php微博api发布微博代码,使用新浪微博API的OAuth认证发布微博实例
  12. OBS 直播、录屏软件下载安装操作教程
  13. 前端拼音首字母搜索姓名
  14. Unity3D —— 手机设备震动接口
  15. 可在WPS环境中通用的vb6代码修改方法
  16. dubbo监控中心安装
  17. 如何在一个月内快速瘦20斤?
  18. Java项目:JSP二手自行车在线销售商城平台系统
  19. 怎样阅读论文(台湾彭明辉)ZT
  20. 简单弄懂Saas是什么? Saas与传统软件有什么区别?

热门文章

  1. 大厂加持,元宇宙是炒作还是未来?
  2. 最新版Maven3.6.3下载与安装
  3. WebSphere MQ 性能调优浅谈(转IBM工程师)
  4. 批量检测六间房直播状态
  5. 【css】iconfont的使用 Unicode 引用
  6. el-table-column根据条件修改字体颜色,el-table-column序号展示
  7. 奥巴马在美国国会发表国情咨文
  8. 更新BIOS翻车的进来查看解决方案
  9. LRR1000 智能程控电阻箱
  10. 使用分区助手3.0改变C盘容量图解