分区表说明

用分区表,以下是说明和方法!
SQL code
高性能网站建设之 MS Sql Server数据库分区 什么是数据库分区? 数据库分区是一种对表的横向分割,Sql server 2005企业版和之后的Sql server版本才提供这种技术,这种对表的横向分割不同于2000中的表分割,它对访问用户是透明的,用户并不会感觉的表被横向分割了。(2000中的表横向分割是建n个表例如按时间建表每月一个表,表名不同,最后需要做一个大视图) 关于具体的如何做分区,请参考数据库分区演练http://www.cnblogs.com/yukaizhao/archive/2008/05/07/sql_partition_test.html 为什么要分区? 显而易见分区是为了提高数据库的读写性能,提高数据库的效率; 分区是否总是可以提高效率? 分区是一把双刃剑,并不总能提高效率,这和具体情况有关系。 之所以有分区技术,分区技术用的好的话可以提高性能,是因为一方面分区把一大块数据分成了n小块,这样查询的时候很快定位到某一小块上,在小块中寻址要快很多;另一方面CPU比磁盘IO快很多倍,而硬件上又有多个磁盘,或者是RAID(廉价磁盘冗余阵列),可以让数据库驱动CPU同时去读写不同的磁盘,这样才有可能可以提高效率。 分区在有些时候并不能提高读写效率,比如说我们经常看到的按照日期字段去分区MSDN例子,这个实例中是按照记录的生成时间来分区的,把一年的数据分割成12个分区,每月一个。这样的分区导致分区并不能实现CPU同步写并提高写入性能,因为在同一个时段CPU总是要写入到最新的那一个分区对应的磁盘中。另一个问题是:这样分区是否可以提高读取性能呢?答案是不一定,要看根据什么字段来查询,如果是根据时间来查询,根据时间生成报表那么这种分区肯定会提高查询的效率,但是如果是按照某个客户查询客户最近1年内的账单数据,这样数据分布到不同的分区上,这样的话效率就不一定能提高了,这要看数据在同一个分区上连续分布的读性能高,还是CPU从几个磁盘上同步读取,然后在合并数据的性能更高一些,这和读取数据的记录数也有关系。 如何分区?用什么字段做分区依据? 具体如何分区和涉及的业务有关系,要看业务上最经常的写入和读取操作是什么,然后再考虑分区的策略。 既然与具体业务相关,我们就假定一个业务环境,假如我们要做一个论坛,对论坛的帖子和回复表进行分区。 论坛中最常见的写操作是1)发帖 2)回复帖子, 最常见的读操作是 1) 根据帖子id显示帖子详情和分页的帖子回复 2) 根据帖子版面帖子列表页根据版面id分页读取帖子列表数据 怎么分区更合适呢?现在还没有准确答案,我有两种可能的方案,写下来,大家讨论看看。 方案1. 根据帖子ID区域段分区(1-300w一个分区、300w-600w一个分区…),这样理论上可以提高帖子详细页的读取速度,而对于写操作性能没有益处,对于根据版面id读取帖子列表页有可能有益 方案2. 根据版面id进行分区,这样对于写性能应该有提高,不同的分区对应不同的版面,当有两个版面同时有发帖回帖操作时,有可能可以并发写。对于根据版面id获得帖子列表页数据也可以提高性能,而对于帖子详细信息页没有性能影响。 多大的数据量才需要分区? 这个问题我只能说一个内部标准,如果一张表的记录超过在超过1000w,并以每月百万的数据量增长,那就需要分区。大家有不同的看法请回复讨论 关于具体的如何做分区,请参考数据库分区演练http://www.cnblogs.com/yukaizhao/archive/2008/05/07/sql_partition_test.html [code=SQL]代码加注释,希望对初学者有用。 USE[master]GOifexists (select*from sys.databases where name ='Test_1') dropdatabase Test_1 GO--创建新库,要演练分区所以我们会多创建两个文件组Test_A,Test_B,以便在后面的分区方案中使用。CREATEDATABASE[Test_1]ONPRIMARY ( NAME = N'test_1', FILENAME = N'D:\sqldata\test_1.mdf' , SIZE = 10240KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB ), FILEGROUP [test_A] ( NAME = N'Test_A', FILENAME = N'D:\sqldata\test_A.ndf' , SIZE = 1024KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB ), FILEGROUP [test_B] ( NAME = N'Test_B', FILENAME = N'D:\sqldata\test_B.ndf' , SIZE = 1024KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB ) LOGON ( NAME = N'Test_log', FILENAME = N'D:\sqldata\Test_log.ldf' , SIZE = 7616KB , MAXSIZE = 2048GB , FILEGROWTH =10%) COLLATE Chinese_PRC_CI_AS GOUSE[Test_1]GO--若分区函数存在则先drop掉IFEXISTS (SELECT*FROM sys.partition_functions WHERE name = N'test_partition') DROP PARTITION FUNCTION[test_partition]GO/**//*创建分区函数给后面的分区方案使用,分区函数很简单就是指定一个范围确定在某个值为什么的时候放在那个分区上*/--新建一个简单的分区函数,该函数以1000为界分两个区create partition function test_partition(int) AS RANGE LEFTFORVALUES (1000) go/**//*看分区方案是否存在,若存在先drop掉*/IFEXISTS (SELECT*FROM sys.partition_schemes WHERE name = N'test_scheme') DROP PARTITION SCHEME test_scheme GO--创建分区方案,分区方案需要指定一个分区函数,并指定在分区函数中分的区需要放在哪一个文件组上create partition scheme test_scheme AS PARTITION [test_partition]TO (test_A,test_B) GO--创建分区表ifobject_id('student','U') isnotnulldroptable student; gocreatetable student ( id intidentity(1,1) notnull, name varchar(10) notnull, class intnotnull, grade int ) on test_scheme(class) --在此处指定该表要使用的分区方案,并将指定分区依据列go--随便插入几条数据insertinto student values ('AQU',10,100); -- 这条数据在A分区上insertinto student values ('AQU_边界',1000,89); -- 这边数据也在A分区上是个边界,因为我们上面在函数中指定的是RANGE LEFT,所以1000在A分区上insertinto student values ('BQU',1001,90); -- 这一条肯定是在B分区上了。go--最后看看结果。$partition.分区函数(分区列)可以返回某一行所在的分区序号select*,分区序号 = $partition.test_partition(class) from student GO
[/code]

转载于:https://www.cnblogs.com/wala-wo/archive/2012/01/16/5119514.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/297543.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GRPC在网页前端的使用

一直以来都是一个桌面端程序狗,某天突发奇想,想用网页实现一个客户端,于是开始了electronvueasp.netcore的探寻之路,这条道路很坎坷主要是css让我头疼不已(当然我们并没有放弃使用wpf,我是一个wpf老手&…

【转帖】配置管理计划(CM Plan)

作者:scmroad出自:配置管理之路 http://bbs.scmroad.com/ 版权所有,转载请注明原作者和出处,谢谢合作。目的:这篇文章主要想和大家交流下,我们在写配置管理计划的时候都应该写些什么。写配置管理计划对于一个CM来说是一…

vue 带全选和多选的表格怎么写_EXCEL五分钟,批量制作带照片的工地出入证

作者:祝洪忠 转自:Excel之家ExcelHome小伙伴们好啊,今天和大家分享一个邮件合并的技巧——批量制作带照片的工地出入证。先看效果图:要准备的材料包括:一、Excel资料表资料表中包括姓名、工号和用姓名命名的带格式后缀…

计算机统计字符数,怎么看word版本-Word文档中的字数和字符数是怎样统计的?

简介:大家知道,Word中具有字数、字符数自动统计功能,那Word文档中的字数和字符数是怎样统计的?下面给大家简单的介绍一下工具:Word2013方法一、1.点击【审阅】选项卡2.点击【字数统计】图1统计结果如图所示&#xff1a…

从小一看到数字,脑子里就开始搞颜色......

1 脑子里的数字有颜色估计都是它的锅▼2 不愧是你▼3 文科生考场惯用伎俩填满了就是胜利▼4 每年向社会输送大量精英人才▼5 ???▼6 高考最后一晚逆袭的答案在一本叫《刑法》的书里▼7 中国外卖VS俄罗斯外卖毛子送外卖坐公交你敢信&am…

android键盘弹出,聊天背景不变形

2019独角兽企业重金招聘Python工程师标准>>> android:transcriptMode"normal",如果软键盘弹出时候,设置该属性listview会自动调整到最后,这样弹出的软键盘就不会遮盖到listview了 背景图尽量用 getWindow().setBackgrou…

bpmn文件的标签为何都以bpmn2开头_C语言之两种作用域:函数的作用域与文件作用域...

作用域描述程序中可访问标识符的区域。一个C变量的作用域可以是块作用域、函数作用域、函数原型作用域或文件作用域。其中,块是用一对花括号括起来的代码区域。例如,整个函数体是一个块,函数中的任意复合语句也是一个块。定义在块中的变量具有…

集成开放平台标准化连接器之基于OAS3.0的API管理能力

源宝导读:随着企业信息化进程的逐步深入,互联网技术的发展和分布式系统应用的日益广泛,直接导致大量异构系统的存在,这些系统往往各自独立、封闭运行,相互之间不存在或很少存在数据的交互,由于这种应用分割…

数据库设计范式

数据库设计范式 范式的概念和理论是美国著名科学哲学家托马斯库恩(Thomas,Kunn) 提出并在《科学革命的结构》(The Structure of Scientific Revolutions)(1962)中系统阐述的,指常规科学所赖以运…

POJ 2533 Longest Ordered Subsequence

解题思路:最长递增子序列 #include <iostream>usingnamespacestd;intmain(){inti,j,k,n,p,q,m,len,num[1000],B[1001]; scanf("%d", &n);for(i0;i<n;i)scanf("%d", &num[i]);for(B[0]-1,B[1]num[0],len1,i1;i<n;i) {for(p0,qlen,m(pq)…

axure 组件_技巧分享 | Axure后台组件制作的全过程

点击上方蓝字&#xff0c;关注行设视觉黑马家族成员原创发布于行设视觉&#xff0c;转载请注明出处。作者 | 时光若刻http://www.woshipm.com/rp/2527010.html大家好&#xff0c;前一段时间我刚刚分享了一篇《打造高品质Axure组件库就是这么简单》&#xff0c;意在分享给大家一…

有没有测试人心里的软件,心理测评,认识自己的有效工具:(二)你做的可能是假的心理测试...

上一篇文章主要介绍了心理测评的基础知识&#xff0c;今天在上一篇的基础上&#xff0c;介绍下网上一些随处可见的心理测评&#xff0c;是如何的错误&#xff0c;以及怎么“迷惑”大家的&#xff1f;网上随便搜的一个阅读量超过10w的"心理"测试&#xff1a;测试他人会…

这相册一出手,哪个长辈搞不定?

1 这相册看着多喜庆看这花多美▼2 不会只有我一个人连最普通的都叠不好吧&#xff1f;▼3 真就史上最惨毕业生连毕业照都不配拥有吗&#xff1f;▼4 看起来经历了很严格的军训▼5 我闺蜜【偷】男票的钱给我买MAC air▼6 在台湾爸比和东北妈妈中间无缝切换▼7 先漱口、后…

医疗大数据:商业保险、移动医疗的崛起,正在形成闭环(二)

以下内容摘自华创证券分析师 吴晓雯、张伟光的《挖掘医疗大数据中的金矿》报告。 接上篇&#xff1a;医疗大数据&#xff1a;商业保险、移动医疗的崛起&#xff0c;正在形成闭环&#xff08;一&#xff09; 三、 商业保险、移动医疗等商业力量的崛起&#xff0c;加速医疗大数据…

WriteComponent,ReadComponent

WriteComponent,ReadComponent 代码 varForm1: TForm1; ms: TMemoryStream;implementation{$R *.dfm}procedureTForm1.Button1Click(Sender: TObject);varaBtn: TButton;beginaBtn :TButton.Create(Self); aBtn.Parent :Self; aBtn.Caption :Test; aBtn.Left :10; ms.WriteComp…

jquery 使用方法

jQuery是目前使用最广泛的javascript函数库。据统计&#xff0c;全世界排名前100万的网站&#xff0c;有46%使用jQuery&#xff0c;远远超过其他库。微软公司甚至把jQuery作为他们的官方库。对于网页开发者来说&#xff0c;学会jQuery是必要的。因为它让你了解业界最通用的技术…

bread是可数还是不可数_雅思官方语法教程之——这个名词到底可不可数?

名词是否可数&#xff0c;是非常隐形的扣分点。考生很可能意识不到自己犯错了&#xff0c;毕竟这是中文里不存在的语法点。这类语法点更应该重点备考。越练习&#xff0c;越熟悉&#xff0c;犯错扣分的几率也就越低。OK进入主题↓语法解释官方对可数和不可数名词的解释如下&…

PostgreSQL 统计所有数据表各自的总行数

一般来说&#xff0c;可以使用 count(*) 来获取具体某张表的总行数&#xff1a;SELECT count(0) FROM t_user;如果想获得所有表的行数信息&#xff0c;可以使用以下 SQL 语句&#xff1a;SELECTrelname,reltuples FROMpg_classCLS LEFT JOIN pg_namespace N ON ( N.oid CLS.re…

google的api key调用次数是多少_Sprint Boot如何基于Redis发布订阅实现异步消息系统的同步调用?...

前言在很多互联网应用系统中&#xff0c;请求处理异步化是提升系统性能一种常用的手段&#xff0c;而基于消息系统的异步处理由于具备高可靠性、高吞吐量的特点&#xff0c;因而在并发请求量比较高的互联网系统中被广泛应用。与此同时&#xff0c;这种方案也带来了调用链路处理…

加密、解密以及Openssl建立私有CA

一、openssl简介 OpenSSL 是一个强大的安全套接字层密码库&#xff0c;囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议&#xff0c;并提供丰富的应用程序供测试或其它目的使用。 SSL:secure socket layer 安全套接层协议 可以在internet提供秘密性的传输。…