热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

为sqlserver进行表分区

为sqlserver进行表分区最近项目中数据量超过的千万级别,一个普通单表查询也慢的要命,对客户来说长时间的等待是不能容忍的。于是想尽各种办法对数据库进行优化,包括索引,单表查询等等。但结果都不近人意。最终选择对单表进行分区。经过测试,效率确实提

为sql server进行表分区 最近项目中数据量超过的千万级别,一个普通单表查询也慢的要命,对客户来说长时间的等待是不能容忍的。于是想尽各种办法对数据库进行优化,包括索引,单表查询等等。但结果都不近人意。最终选择对单表进行分区。经过测试,效率确实提

为sql server进行表分区

最近项目中数据量超过的千万级别,一个普通单表查询也慢的要命,,对客户来说长时间的等待是不能容忍的。于是想尽各种办法对数据库进行优化,包括索引,单表查询等等。但结果都不近人意。最终选择对单表进行分区。经过测试,效率确实提高了不少。

创建分区表一般包括四个步骤。

    1:为分区创建文件组和文件

    2:设计分区函数

    3:设计分区架构

    4:创建分区表

  (1) 创建文件组和文件可以用sql创建,也可以通过管理工具创建具体方法如下:

    1:管理工具:

      打开Management Studio,选择要操作的数据库右键-属性-文件/文件组。根据相应的提示创建即可

    2:通过sql创建

     创建文件组:ALTER DATABASE Mytest ADD FILEGROUP MytestFileGroup ,其中Mytest是当前操作的数据库,MytestFileGroup是文件组名称

     创建文集并将文件添加到文件组:

     ALTER DATABASE Mytest ADD FILE

      (
       FILEGROWTH=1MB,
      NAME='Mytest0' ,
      FILENAME='C:\data\Mytest0.NDF',
      SIZE=3MB
      )TO FILEGROUP MytestFileGroup

     通过一上操作,我们已经创建了一个名为MytestFileGroup的文件组以及文件组下面的文件Mytest0.NDF,文件的存放位置在c盘的data文件夹下。可以将不同文件存放   在不同的磁盘下面,这样可以提高IO效率,增加查询速度。

  (2) 创建完成文件组和文件之后我们便可以设计分区函数了。直接上sql:

      CREATE PARTITION FUNCTION MytestPartFunction (INT)
      AS RANGE RIGHT
      FOR VALUES
      (2000000,4000000,6000000,8000000,10000000,12000000,14000000,16000000,18000000,20000000)

      其中MytestPartFunction是函数名称。RANGE RIGHT表示分区的边界处理方式,这里RIGHT表示以右边界为准,既边界值分到右边的分区中。

    分区依据是根据INT类型的值。

  

  (3)创建完分区函数后,就要进行分区架构设计了。分区架构根据分区函数将不同的分区对应到不同的文件组。以达到不同分区数据存放到不同文件。分区架构代码如下:

      CREATE PARTITION SCHEME MytestPartFunction
      AS PARTITION MytestPartFunction
      TO

(MytestFileGroup0,MytestFileGroup1,MytestFileGroup2,MytestFileGroup3,MytestFileGroup4,MMytestFileGroup5,MytestFileGroup6,MytestFileGroup7,MytestFileGroup8,MytestFileGroup9,MytestFileGroup10)

     MytestPartFunction 是分区架构名称。MytestPartFunction是刚刚创建的分区函数名称,这里表示分区架构是以该函数进行分区。后面的MytestFileGroup0-MytestFileGroup10分别代表将不同的区域内的数据存放到不同的文件组。

  (4) 创建完成分区函数和分区架构之后,就可以创建分区表了。创建分区表跟创建普通的表差不多。这里用代码实现如下:
    create table UserInfo (
     ID int identity,
     UserCode nvarchar(50) not null,

     UserName  nvarchar(50) not null
    ) ON MytestPartFunction(ID)

    后面的MytestPartFunction就是分区架构。其中括号中的ID表示以ID作为分区依据。

  这样一个完整的分区表就完成了。其中有些细节没有说明。以后慢慢完善吧。本人对数据库了解的不太多,大部分东西都是从网上现找的,可能其中有些不足。恳请大家指正。

posted on

推荐阅读
  • 本文探讨了领域驱动设计(DDD)的核心概念、应用场景及其实现方式,详细介绍了其在企业级软件开发中的优势和挑战。通过对比事务脚本与领域模型,展示了DDD如何提升系统的可维护性和扩展性。 ... [详细]
  • 迎接云数据库新时代:程序员如何应对变革?
    在数据无处不在的时代,数据库成为了管理和处理数据的核心工具。从早期的信息记录方式到现代的云数据库,数据库技术经历了巨大的变革。本文将探讨云数据库的特点及其对程序员的影响。 ... [详细]
  • 本文介绍了MySQL数据库的安全权限管理思想及其制度流程,涵盖从项目开发、数据库更新到日常运维等多个方面的详细流程控制,旨在通过严格的流程管理和权限控制,有效预防数据安全隐患。 ... [详细]
  • 收割机|篇幅_国内最牛逼的笔记,不接受反驳!!
    收割机|篇幅_国内最牛逼的笔记,不接受反驳!! ... [详细]
  • 本文介绍了如何通过 Maven 依赖引入 SQLiteJDBC 和 HikariCP 包,从而在 Java 应用中高效地连接和操作 SQLite 数据库。文章提供了详细的代码示例,并解释了每个步骤的实现细节。 ... [详细]
  • 探讨架构师在项目中应如何平衡对产品的关注和对团队成员的关注,以实现最佳的开发成果。 ... [详细]
  • 本文详细介绍了如何在 Android 中使用值动画(ValueAnimator)来动态调整 ImageView 的高度,并探讨了相关的关键属性和方法,包括图片填充后的高度、原始图片高度、动画变化因子以及布局重置等。 ... [详细]
  • 云屏系统基于嵌入式微系统msOS,旨在解决当前嵌入式彩屏GUI编程中硬件要求高、软件开发复杂、界面效果不佳等问题。该系统通过结合MCU和Android技术,利用Html5+JavaScript实现高效、易用的图形用户界面开发,使嵌入式开发人员能够专注于业务逻辑。 ... [详细]
  • 本文探讨了现代分布式架构的多样性,包括高并发、多活数据中心、容器化、微服务、高可用性和弹性架构等,并介绍了与这些架构相关的重要管理技术,如DevOps、应用监控和自动化运维。文章还深入分析了分布式系统的核心概念、主要用途及类型,同时对比了单体应用与分布式服务化的优缺点。 ... [详细]
  • 三星Galaxy S8/S8+即将登场,全面解析新旗舰
    3月29日晚11点,备受瞩目的三星Galaxy S8/S8+将正式发布。作为三星在Note 7爆炸事件后的重磅产品,S8/S8+不仅承载着恢复消费者信心的重任,其创新的设计和技术也备受期待。 ... [详细]
  • Spring Cloud因其强大的功能和灵活性,被誉为开发分布式系统的‘一站式’解决方案。它不仅简化了分布式系统中的常见模式实现,还被广泛应用于企业级生产环境中。本书内容详实,覆盖了从微服务基础到Spring Cloud的高级应用,适合各层次的开发者。 ... [详细]
  • 探讨了在PHP应用中处理多个多对多关系时的MySQL数据库设计方案,特别是如何通过一个统一的连接表来管理这些复杂的关系,并保持数据库的性能和可维护性。 ... [详细]
  • 技术总监的角色定位与代码实践
    关于技术总监是否应当参与代码编写,这一议题始终伴随着技术行业的成长而引发广泛的讨论。本文旨在从多个角度探讨技术总监参与代码编写的必要性和影响因素,包括公司背景、发展阶段及团队规模等。 ... [详细]
  • 车载T-BOX智能网联终端的设计与实现
    本文介绍了一款基于瑞萨RH850微控制器、TICC2640R2F蓝牙微控制器和高通MDM9628处理器的T-BOX车载终端的设计。该终端通过集成CAN总线、GPS定位、数据加密、蓝牙通信和LTE无线数据传输技术,实现了车辆信息的高效采集与云端通信,支持远程车辆控制和诊断等功能。 ... [详细]
  • 在软件开发中,接口设计是一项至关重要的任务,它直接影响到系统的可扩展性、可维护性和性能。本文将探讨接口设计的核心理念,并提供一系列实用的设计步骤。 ... [详细]
author-avatar
橙橙_贲1999
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有