SQL Server数据库进阶之表分区实战演练

一、课程介绍

1.1、需求背景

假设,你有一个销售记录表,记录着每个销售情况,那么你就可以把这个销售记录表按时间分成几个小表,例如说5个小表吧。2009年以前的记录使用一个表,2010年的记录使用一个表,2011年的记录使用一个表,2012年的记录使用一个表,2012年以后的记录使用一个表。那么,你想查询哪个年份的记录,就可以去相对应的表里查询,由于每个表中的记录数少了,查询起来时间自然也会减少。但将一个大表分成几个小表的处理方式,会给程序员增加编程上的难度。以添加记录为例,以上5个表是独立的5个表,在不同时间添加记录的时候,程序员要使用不同的SQL语句,例如在2011年添加记录时,程序员要将记录添加到2011年那个表里;在2012年添加记录时,程序员要将记录添加到2012年的那个表里。这样,程序员的工作量会增加,出错的可能性也会增加。 使用分区表就可以很好的解决以上问题。

1.2、解决方案

数据库结构和索引的是否合理在很大程度上影响了数据库的性能,但是随着数据库信息负载的增大,对数据库的性能也发生了很大的影响。可能我们的数据库在一开始有着很高的性能,但是随着数据存储量的急速增长—例如订单数据—数据的性能也受到了极大的影响,一个很明显的结果就是查询的反应会非常慢。在这个时候,除了你可以优化索引及查询外,你还可以做什么?建立分区表(Table Partition)可以在某些场合下提高数据库的性能,在SQL Server 2005中也可以通过SQL语句来创建表分区,但在SQL Server 2008中提供了向导形式来创建分区表。

1.3、本次分享课程适合人群如下

1)、有一定的.NET 开发基础。

2)、有一定的SQL SERVER基础知识。

如果您同样对本次分享《SQL Server数据库进阶之表分区实战演练》课程感兴趣的话,那么请跟着阿笨一起学习吧。废话不多说,直接上干货,我们不生产干货,我们只是干货的搬运工。

二、什么场景适合使用表分区?

三、什么是表分区以及核心原理?

四、SQL Server分区表有什么好处?

五、Microsoft SQL Server 2014表分区在线案例实操演练

六、思考

七、总结

原文地址:https://www.cnblogs.com/51net/p/12271461.html

时间: 2024-09-27 23:57:08

SQL Server数据库进阶之表分区实战演练的相关文章

清空SQL Server数据库中所有表数据的方法

其实删除数据库中数据的方法并不复杂,为什么我还要多此一举呢,一是我这里介绍的是删除数据库的所有数据,因为数据之间可能形成相互约束关系,删除操作可能陷入死循环,二是这里使用了微软未正式公开的sp_MSForEachTable存储过程. 也许很多读者朋友都经历过这样的事情:要在开发数据库基础上清理一个空库,但由于对数据库结构缺乏整体了解,在删除一个表的记录时,删除不了,因为可能有外键约束,一个常见的数据库结构是一个主表,一个子表,这种情况下一般都得先删除子表记录,再删除主表记录. 说道删除数据记录,

SQL SERVER数据库文件删除、分区格式化解决方案

[故障类型]数据库文件删除.分区格式化.文件大小变为"0",或使用备份还原数据库时覆,盖数据库? [典型特征]◎ 数据库文件(MDF.NDF或LDF)丢失"置疑"状态:◎ 数据库数据恢复至早期数据: ◆ 检测流程a. 通过文件系统对丢失的数据库文件进行分析:b. 针对MDF(或NDF)文件内部结构,对硬盘进行全面分析. ◆ 恢复流程a. 将故障硬盘接入安全的数据恢复平台中,对硬盘做完整的全盘镜像,以防二次破坏:b. 分析原来的文件系统格式:c. 查找文件目录索引及文

获取SQL Server数据库中的表和字段描述

获取所有dbo表的扩展属性: SELECT * FROM fn_listextendedproperty (NULL, 'schema', 'dbo', 'table', default, NULL, NULL) 大概的结果: objtype objname name value TABLE 表名 扩展属性名 值 获取表的扩展属性: select * from ::fn_listextendedproperty (null,'user','dbo','table','表名','column',n

Sql Server数据库之多表查询

一.连接查询 概念:根据两个表或多个表的列之间的关系,从这些表中查询数据 目的:实现多表查询操作 语法:From join_table join_type join_table[ON(join_condition)] join_table:连接的表名 join_type:连接类型 join_condition:连接条件 连接类型:内连接,外连接,交叉连接 二.内连接 1.等值连接 概念:在连接条件中使用"="运算符,其查询结果中列出被连接表中的所有列,包括其中的重复列 示例: 1 cr

Sql Server数据库由于未知原因丢失的恢复方法

故障描述: 5块2T硬盘组建RAID5,划分LUN供windows服务器使用.在windows服务器内装有Sql Server2008数据库.存储空间内共有三个逻辑分区,大小分别为500G.800G.2.3T.数据库文件丢失,主要涉及五个数据库,表个数约为6000个左右.丢失原因未知,且不能确定数据存储位置.三个数据库的大小分别为8G.15G.20G.在文件丢失后服务器仍处于开机状态,但并未写入大量数据. 初检流程: 1.使用RAID信息及内部数据块信息重组RAID.重组RAID2.提取LUN内

我的SQL SERVER数据库会装满吗?

原文:我的SQL SERVER数据库会装满吗? 概述 今天有个客户问我一个蛮有意思的问题.我使用的SQL SERVER 2008数据库,目前数据库130多G,其中某个表的记录条数就有3亿1千多万,占用了50多G.那SQL SERVER 数据库中的表有没有行数和列数限制呢?会不会突然有一天,超过这个限制,我的系统就不能使用了? 最大容量 SQL SERVER 是否会被装满,主要是在于数据库的最大容量.包括最大行数和最大列数 以及其他. 具体内容,我们可以查看下面列表: SQL Server 数据库

千万级SQL Server数据库表分区的实现

千万级SQL Server数据库表分区的实现 2010-09-10 13:37 佚名 数据库 字号:T | T 一般在千万级的数据压力下,分区是一种比较好的提升性能方法.本文将介绍SQL Server数据库表分区的实现. AD:51CTO 网+ 第十二期沙龙:大话数据之美_如何用数据驱动用户体验 最近使用SQL SERVER一个的缓存,数据量一天100w的速度增长,同时接受客户查询,速度由于数据量越来越大越来越慢,这里感谢  KillKill 和 邀约, 最近读了一套书不错,感兴趣的同学可以读读

SQL Server数据库表重置自增主键号(通常是指ID)

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86

SQL server 数据库用户表名称

转自(http://blog.163.com/jlj_sk/blog/static/22579293200861422833924/) 取得SQL server 数据库中 所有用户表名称 select name from sysobjects where xtype='U' order by name SQL server数据库系统表详解: sysaltfiles 主数据库 保存数据库的文件 syscharsets 主数据库字符集与排序顺序 sysconfigures主数据库 配置选项 sysc