最近对公司数据库性能方面改造。现已初建成效。

公司原先数据库问题颇多,简单列举下:

1.数据表文档缺失。

2.数据库900多张表,接近一半都是备份和一些报表,没有分库处理

3.大数量的表按照年份人工导出创建历史库

4.字段类型存在滥用,毫无数据库优化

如果有哪位兄弟不幸同命相连 ,说的寒心点,这基本就是个烂摊子。好在天下难事必作于细,一步一步优化。

我的优化步骤是分析业务代码->补全数据库文档->改造业务系统->优化数据库->改造业务系统

由于业务太过复杂,不易重做,所以还是采取比较悲催的做法。

经过此次也算是个学习与实践的过程吧。

使用表分区的场景:

其实公司的数据量真不多,每年最多的数据就百来万,和上家根本没法比。但是由于数据库设计实在糟糕,查询性能简直不忍直视啊。

除了建索引外,我还对对日期进行的分区处理。

以下是用到的命令, 记录下备用

--========================================
-- 创建文件组

选中数据库->属性->文件组->新建

--========================================
-- 创建表分区函数
create partition function fnPartition (int) as Range right
for values(100,200,300)

select * from sys.partition_functions
--========================================
-- 创建表分区架构
create partition scheme schemaforpartition
as partition fnPartition
to ([primary],[primary],[primary],[primary])
select * from sys.partition_schemes

--========================================
-- 修改表分区
alter table Base_User drop constraint PK_Base_User_UserID--删除现有表的主键(对有全文索引的只能再管理器中去除主键)
ALTER TABLE [dbo].Base_User WITH NOCHECK ADD
CONSTRAINT PK_Base_User_ID PRIMARY KEY CLUSTERED
(
[UserID]--注意ID这里是你原来的那些主键组成的列
) ON schemaforpartition ([UserID])--将主键创建到ps_Product_Scheme_mTb分区函数上

SELECT *, $PARTITION.fnPartition([UserID]) AS PF FROM Base_User
--=============================================
-- 分割后多出来的分区存在在哪个文件组
alter partition scheme schemaforpartition next Used 'primary'
--添加分割点
alter partition function fnPartition() split range (400)
--=============================================
--合并分割点
alter partition function fnPartition() merge range (100)

参考:

http://kb.cnblogs.com/page/73921/

http://www.cnblogs.com/sienpower/archive/2011/12/31/2308741.html

sqlserver-表分区的更多相关文章

  1. sqlserver表分区

    参考:http://www.cnblogs.com/knowledgesea/p/3696912.html 及百度搜索sqlserver表分区 create partition function sg ...

  2. sqlserver表分区与调优与行列转换

    转自: http://www.cnblogs.com/knowledgesea/p/3696912.html http://www.open-open.com/lib/view/open1418462 ...

  3. (转)SQLSERVER表分区的介绍(一)

    下面进入正题吧,很多时候当单张数据表的数据量比较大的时候比如千万级别条记录.上亿级别记录,如果不做优化,那么查询的效率大家清楚. 有经验的人会通过各种手段做优化,其中表分区就是其中一种手段. 个人对表 ...

  4. sqlserver表分区小结

    为什么要表分区?  当一个表的数据量太大的时候,我们最想做的一件事是什么?将这个表一分为二或者更多分,但是表还是这个表,只是将其内容存储分开,这样读取就快了N倍了 原理:表数据是无法放在文件中的,但是 ...

  5. (转)SQLSERVER表分区的介绍(二)

    分区函数和分区方案的创建和使用方法 具体设计过程如下: (1)首先创建一个名为partionTest的数据库.然后分别为数据库partionTest添加四个文件组,文件组名依次为FileGroup00 ...

  6. 优化SQLServer——表和分区索引(二)

    简介     之前一篇简单的介绍了语法和一些基本的概念,隔了一段时间,觉得有必要细致的通过实例来总结一下这部分内容.如之前所说,分区就是讲大型的对象(表)分成更小的块来管理,基本单位是行.这也就产生了 ...

  7. 优化SQLServer——表和分区索引

    概念: 简单地说,分区是将大型的对象(如表)分成更小的且易于管理的小块.分区的基本单位是行,需要注意的是与分区视图不同的地方时,分区必须位于同一个数据库内. 分区的原因:            对于非 ...

  8. 第十三章——表和索引分区(1)——使用Range Left进行表分区

    原文:第十三章--表和索引分区(1)--使用Range Left进行表分区 前言: 如果数据表的数据持续增长,并且表中的数据量已经达到数十亿甚至更多,数据的查询和操作将非常困难,面对非常庞大的表,几时 ...

  9. 如何在大型的并且有表分区的数据库中进行DBCC CHECKDB操作

    如何在大型的并且有表分区的数据库中进行DBCC CHECKDB操作 其实这个问题已经在<SQLSERVER企业级平台管理实践>里徐老师已经讲过了,不过我想用自己的语言再讲详细一些 笔记链接 ...

  10. SqlServer 自动化分区方案

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

随机推荐

  1. Tidb缩减tikv机器

    生产环境下,如何缩减机器? 1.首先是检查出来那个tikv节点需要缩减 " -d store { ", "stores": [ { "store&qu ...

  2. ActiveX多线程回调JavaScript

    http://www.cnblogs.com/zdxster/archive/2011/01/27/1945872.html

  3. 不能用c99的情况下,如何动态定义数组的长度

    #include <stdio.h>#include <stdlib.h> int main(int argc, char const *argv[]){    int num ...

  4. java通过反射调用有参数的方法

    public static void eachCfg(Class Initclass,String taskType){ Field[] fields = Initclass.getDeclaredF ...

  5. UMI开源项目

    本文主要围绕UMI是什么及其特征.安装应用.模板例子等四个方面内容来讲解UMI,希望能够对初学者有所启发. 一. UMI是什么 UMI是可插拔的企业级反应应用程序框架. 二. 特征 特征

  6. mysql 导出表数据表结构

    在命令行下mysql的数据导出有个很好用命令mysqldump,它的参数有一大把,可以这样查看: mysqldump 最常用的: mysqldump -uroot -pmysql databasefo ...

  7. 客户端本地存储的比较及使用window.name数据传输

    一:cookie: 1. 什么是cookie? Cookie是在客户端用于存储会话信息的,用户请求页面在web服务器与浏览器之间传递.每当同一台计算机通过浏览器请求某个页面时,就会发送这个 cooki ...

  8. 几个简单易懂的排序算法php

    几个简单易懂的排序算法.排序算法,在应用到解决实际问题的时候(由于不一定总是数字排序),重点要分析出什么时候该交换位置. <?php // 冒泡排序 function bubble_sort(a ...

  9. Android Layout属性笔记

    android:id 为控件指定相应的ID android:text 指定控件当中显示的文字,需要注意的是,这里尽量使用strings.xml文件当中的字符串 android:gravity 指定Vi ...

  10. Cloud Foundry 组件

    原文:https://blog.csdn.net/little_crab_0924/article/details/78022391 Cloud Foundry 组件概述 Cloud Foundry ...