首页 > 数据库 >SqlServer 表分区

SqlServer 表分区

时间:2023-07-21 18:46:57浏览次数:36  
标签:00 -- 分区 PARTITION SqlServer ALTER CREATE

--添加文件组
--ALTER DATABASE <数据库名称> ADD FILEGROUP <文件组名称>
ALTER DATABASE CoreShop ADD FILEGROUP MyFileGroup

--添加文件
--ALTER DATABASE <数据库名称> ADD FILE <数据表示> TO FILEGROUP <文件组名称>
ALTER DATABASE CoreShop ADD FILE (
NAME = 'MyFileName',--文件名
FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA\MyFileName.mdf', --文件完整名
SIZE = 5MB, --文件初始大小(单位:kb/mb/gb/tb)
FILEGROWTH = 5MB, --文件自动增量(单位:kb/mb/gb/tb)
MAXSIZE = 2GB --文件增大的最大大小(单位:kb/mb/gb/tb/unlimited)
) TO FILEGROUP MyFileGroup

--定义分区函数
--分区函数用于判定数据行数据哪个分区,通过分区函数中设置边界值来使得根据行中特定列的值来确定其分区。
--其中[LEFT | RIGHT]决定了VALUES中的边界值被划分到哪一个分区中(即,边界值数据左分区还是右分区)。
--CREATE PARTITION FUNCTION <分区函数名>(datetime2(0))
--AS RANGE [LEFT | RIGHT] FOR VALUES('','')
CREATE PARTITION FUNCTION MyPartitionFun(DATETIME2(0))
AS RANGE LEFT FOR VALUES('2022-01-01 00:00:00','2023-01-01 00:00:00')
--查看分区函数
SELECT * FROM sys.partition_functions

--定义分区架构
--分区架构用于定义每个区的存储方式,分区架构仅仅是依赖分区函数
--分区架构中负责分配每个区属于哪个文件组,而分区函数是决定如何在逻辑上分区。
--CREATE PARTITION SCHEME <分区架构名>
--AS PARTITION <分区函数名> ALL TO(<文件组名>,[DEFAULT])
CREATE PARTITION SCHEME MyPartitionSch
AS PARTITION MyPartitionFun ALL TO(MyFileGroup)
--查看分区架构
SELECT * FROM sys.partition_schemes

--定义分区表
--CREATE TABLE <表名>
--(
-- <列属性>。。。
--) ON <分区架构名>(<列名>)
CREATE TABLE Student(
Id BIGINT NOT NULL,
Name NVARCHAR(50) NULL,
Age INT NULL,
CreateDate DATETIME2(0) NULL,
) ON MyPartitionSch(CreateDate)


--插入一些测试数据,看一下每个分区中的数据量
SELECT * FROM sys.partitions  WHERE OBJECT_NAME(OBJECT_ID)='Student';

 

表分区的优点:
1、改善查询性能:对分区对象的查询可以仅搜索自己关心的分区,提高检索速度。
2、增强可用性:如果表的某个分区出现故障,表在其他分区的数据仍然可用;
3、维护方便:如果表的某个分区出现故障,需要修复数据,只修复该分区即可;
4、均衡I/O:可以把不同的分区映射到磁盘以平衡I/O,改善整个系统性能。

表分区的缺点:
已经存在的表没有方法可以直接转化为分区表

什么时候使用分区表:
1、表的大小超过2GB。
2、表中包含历史数据,新的数据被增加都新的分区中。

标签:00,--,分区,PARTITION,SqlServer,ALTER,CREATE
From: https://www.cnblogs.com/2023-02-14/p/17262099.html

相关文章

  • 编辑引导扇区修复分区引导解决磁盘分区打不开
    关键词:raw格式 数据错误循环冗余错误  编辑引导扇区 修复分区引导问题描述:E盘双击打不开,提示是否将其格式化,点取消,提示数据错误(循环冗余错误)。计算机-管理-磁盘管理显示格式为raw格式。系统变得很卡很卡。。。解决过程:1:用磁盘精灵DiskGenius-坏道检测与修复-开始检测,检测结......
  • 人大金仓学习之三-表空间与跨磁盘存储和分区表
    人大金仓学习之三-表空间与跨磁盘存储和分区表背景最近在用人大金仓的数据库.前期学习了kwr和ksh等工具.今天想验证一下性能相关的情况.因为机器正好有多个磁盘的分区.想着能够将所有的硬盘都用上.提高性能,感觉总体还不错,所以想总结一下.注意这里只考虑OLTP比较......
  • 【项目实战】Kafka 生产者写入分区的策略
    ......
  • mysql 按月自动分区
    Mysql按月自动分区实现方法一、整体流程下面是实现mysql按月自动分区的整体流程:步骤描述1创建一个存储过程2获取当前日期3判断是否需要创建新分区4创建新分区5删除过期分区6设置定时任务在以下段落中,我将逐步解释每个步骤需要做什么,并提供相......
  • kafka分区分配策略
    前言现有主流消息中间件都是生产者-消费者模型,主要角色都是:Producer->Broker->Consumer,上手起来非常简单,但仍有需要知识点需要我们关注,才能避免一些错误的使用情况,或者使用起来更加高效,例如本篇要讲的kafka分区分配策略。在开始前我们先简单回顾一下kafka消息存储设计,如下图......
  • 一步一步来,带你轻松搞定磁盘分区
    新买的本本只有一个系统盘怎么办?别慌,今天手把手教你磁盘分区,自己动手也能解决!第一步点击【开始】-【搜索】,搜索硬盘分区,搜索出结果后,点击创建并格式化硬盘分区。第二步鼠标右键点击“OS(C)”,弹出菜单后,点击压缩卷。第三步因为系统和软件安装默认安装在C盘中,为了稳定性建议用......
  • hbase预分区
    HBase预分区HBase是一个基于Hadoop的分布式列存储系统,它提供了高可靠性、高可扩展性和高性能的数据存储和访问能力。在HBase中,数据是以表的形式进行组织和存储的,而表是由行和列组成的。HBase的数据模型非常灵活,可以根据需要进行动态的列扩展。而在实际应用中,表的大小和数据的分布......
  • Hive分区/分桶
    分区hive的分区的是针对于数据库的分区,将原来的数据(有规律的数据)分为多个区域,数据和表的信息是不会有变化的,但是会增加namenode的压力分区的目的是提升查询效率,将原来的文件进行多层次的管理分区有三种,静态分区,动态分区,混合分区关键字:partitionedby(字段)分桶分......
  • 在树莓派启动分区创建配置文件,使其加入无线网络
    在树莓派的启动分区创建一个名为“wpa_supplicant.conf”配置文件,在文件中输入以下内容:country=CNctrl_interface=DIR=/var/run/wpa_supplicantGROUP=netdevupdate_config=1network={ssid="xxx"psk="xxx"priority=5}ssid:指定要连接的无线网络psk:网络......
  • Linux磁盘专题-常用分区命令
    划分分区fdisk专门用于划分MBR类型的分区。(mbr分区类型在linx中也叫msdos)注意:fdisk在centos7上已经可以用来划分gpt类型的分区。详细不说了,N年之前学习过gdisk专用与划分gpt类型分区。大致操作和fdisk一样,不记录了,N年前学过。。partedparted之前懒得学,现在看了下也是......