飘飘悠悠 发表于 2015-1-16 22:36:27

MYSQL教程之怎样坚持Oracle数据库的优秀功能

平台即服务PaaS、基础设施即服务IaaS、软件即服务SaaS都是我们比较熟悉的MySQL学习教程,现在又出现了数据库即服务DBaaS,以基于云的方式存储结构化数据。oracle|数据|数据库|功能Brent
  Oracle数据库以其高牢靠性、平安性、可兼容性,失掉愈来愈多的企业的喜爱。怎样使Oracle数据库坚持优秀功能,这是很多数据库办理员体贴的成绩,依据笔者履历倡议无妨针对以下几个方面加以思索。
1、分区
  依据实践履历,在一个年夜数据库中,数据空间的尽年夜多半是被大批的表所占据。为了简化年夜型数据库的办理,改良使用的查询功能,一样平常可使用分区这类手腕。所谓分区就是静态表中的纪录分别到多少分歧的表空间上,使数据在物理上被支解开来,便于保护、备份、恢复、事件及查询功能。当利用的时分可创建一个毗连一切分区的视图,使其在逻辑上仍以一个全体呈现。

1.创建分区表
CreatetableEmployee(
EmpNovarchar2(10)primarykey,
Namevarchar2(30),
DeptNoNumber(2)

Partitionbyrange(DeptNo)
(partitionPART1valueslessthan(11)
tablespacePART1_TS,
partitionPART2valueslessthan(21)
tablespacePART2_TS,
partitionPART3valuselessthan(31)
tablespacePART3_TS
partitionPART4valueslessthan(MAXVALUE)
tablespacePART4_TS
);
表Employee根据DeptNo列举行分区。
2.分区索引
CreateindexEmployee_DeptNoonEmployee(DeptNo)local(
partitionPART1tablespacePART1_NDX_TS,
partitionPART2tablespacePART2_NDX_TS,
partitionPART3tablespacePART3_NDX_TS,
partitionPART4tablespacePART4_NDX_TS,
);
  当分区中呈现很多事件而且要包管一切分区中的数据纪录的唯一性时接纳全局索引,在创建全局索引时,Global子句同意指定索引的局限值,这个局限值能够分歧于表分区的局限值。只要创建部分索引才会使索引分区与表分区间创建起逐一对应干系。因而,在年夜多半情形下,应当利用部分索引分区。若利用了此索引,分区就可以够很简单地将索引分区与表分区创建联系关系,部分索引比全局索引更容易于办理。
3.分区办理
  依据实践必要,还可使用Altertable命令来增添、删除、互换、挪动、修正、重定名、分别、截短一个已存在分区的布局。
2、重修索引
  假如表中纪录频仍地被删除或拔出,只管表中的纪录总量坚持稳定,索引空间的利用量会不休增添。固然纪录从索引中被删除,可是该纪录索引项的利用空间不克不及被从头利用。因而,假如表变更不定,索引空间量会不休增添,不管表中纪录数目是不是增添,只是由于索引中有效空间会增添。
要接纳那些曾被删除纪录利用的空间,必要利用Alterindexrebuild命令。能够做一个按期运转的批处置程序,来重修最举动表的索引。这个批处置程序能够在余暇时运转,以免该程序与其他使用程序抵触。若能保持索引的这一程序计划,即可和时接纳那些未利用空间,进步空间使用率。
3、段的碎片收拾
  当天生一个数据库工具时(一个表或一个索引),经由过程用户缺省值或指定值来为它指定表空间。一个在表空间中天生的段,用于存储工具的相干数据。在段被封闭、压缩、截断之前,段所分派的空间将不被开释。
  一个段是由局限构成,而局限是由相邻的Oracle块构成。一旦存在的局限不克不及再存储新的数据,这个段就会往取得新的局限,但其实不请求这些局限是相互相邻的。如许的扩大会一向持续下往,直到表空间中的数据文件不克不及供应更多的自在空间,大概局限数目已到达极限。
 
  因而,一个碎片太多的数据段,不但会影响运转,也会激发表空间中的空间办理成绩。以是,每一个数据段只含有一个局限是非常无益的。借助监控体系,能够经由过程反省DBA_SEGMENTS数据字典视图来懂得哪些数据库工具含有10个或更多局限的段,断定其数据段碎片。
  若一个段的碎片过量,可用两种办法办理:
  1. 用准确的存储参数创建一个新表,将旧表的数据拔出到新表中,在删除旧表;
  2. 使用Export/Import工具。
  如:expsystem/managerfile=exp.dmpcompress=Ygrants=Yindexes=Y
  tables=(T1,T2)
  若输入乐成,进进Oracle,删除上述表。
  注:compress=Y暗示将在输入过程当中修正它们的存储参数。
  impsystem/managerfile=exp.dmpcommit=Ybuffer=64000full=Y
4、自在局限的碎片收拾
  表空间中的一个自在局限是表空间中相连的自在(空间)块的汇合。当一个段封闭时,它的局限将被开释,并被标志为自在局限。但是,这些自在局限不再能与相邻的自在局限兼并,它们之间的界限一直存在。可是当表空间的缺省值pctincrease设置不是0时,SMON背景历程会按期将这些相邻的自在局限互助。若pctincrease设置为0,那末相邻自在局限不会被数据库主动兼并。但可使用Altertable命令"coalesce"选项,来强制举行相邻自在局限的兼并。
  不举行自在局限兼并,在往后的空间哀求中,会影响到表空间中的空间分派。当必要一个充足年夜的局限时,数据库其实不会集并相邻的自在局限,除非没有其他选择。如许,当表空间中后面较小的自在局限已被利用时,将利用表空间中前面部分最年夜的一个自在局限。了局,会由于没有充足多的利用空间,从而招致表空间需求的冲突。因为如许的情形呈现,使数据库的空间分派距幻想愈来愈远。自在空间碎片常会呈现在那些常常封闭又从头天生的数据库表和索引中。
  在幻想的Oracle表空间中,每个数据库工具存储在一个独自的局限中,而且一切无效自在空间会合在一个伟大而一连的局限中。如许,在一个工具必要附加存储空间时,能够在增添猎取充足年夜自在空间的大概性的同时,最小化空间中的轮回挪用,进步自在空间利用率。
由于MySQL数据库已经如此普及,对企业来说它无疑是一个更好的选择。

飘灵儿 发表于 2015-1-19 18:20:53

SP4是一个累积性的ServicePack,包含自以前的ServicePack发布以来所有的修补程序(包括MS03-031安全公告)。

分手快乐 发表于 2015-1-26 09:43:15

Mirror可以算是SQLServer的Dataguard了。但是能不能被大伙用起来就不知道了。

深爱那片海 发表于 2015-2-4 13:52:46

比如日志传送、比如集群。。。

谁可相欹 发表于 2015-2-10 01:23:37

作了些试验,发现使用CLR的存储过程或函数在达到一定的阀值的时候,系统性能会呈指数级下滑!这是非常危险的!只使用几个可能没有问题,当一旦大规模使用会造成严重的系统性能问题!

只想知道 发表于 2015-2-28 12:46:09

SP4是一个累积性的ServicePack,包含自以前的ServicePack发布以来所有的修补程序(包括MS03-031安全公告)。

因胸联盟 发表于 2015-3-9 23:39:01

从项目平台的选择上讲,我们关心的,应该是一款产品能不能满足任务需求,而不是网上怎么说。

金色的骷髅 发表于 2015-3-17 03:10:21

having子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having条件显示特定的组,也可以使用多个分组标准进行分组。

愤怒的大鸟 发表于 2015-3-23 18:07:23

从底层原理到表层引用,书籍多的很。个人认为没有什么那本书好?这样的说法。主要看和个人的学习方法是否适合。
页: [1]
查看完整版本: MYSQL教程之怎样坚持Oracle数据库的优秀功能