MYSQL网站制作之ORACLE回滚段办理(下)
一些典型的RDBMS功能并不总是在DBaaS系统中可用。例如MySQL学习教程,WindowsAzureSQLDatabase(以前的SQLAzure)是微软的DBaaS产品,提供了一个类似于SQLServer的数据库平台。oracle创立回滚段 语法: CREATEROLLBACKSEGMENTrollback_segment ]] |NULL}])] 注: 回滚段能够在创立时指明PRIVATE或PUBLIC,一旦创立将不克不及修正。 MINEXTENTS必需年夜于即是2 PCTINCREASE必需是0 OPTIMAL假如要指定,必需年夜于即是回滚段的初始巨细(由MINEXTENTS指定) 倡议: 一样平常情形下,INITIAL=NEXT 设置OPTIMAL参数来勤俭空间的利用 不要设置MAXEXTENTS为UNLIMITED 回滚段应创立在一个特定的回滚段表空间内 例: CREATEROLLBACKSEGMENTrbs01 TABLESPACErbs STORAGE(INITIAL100KNEXT100KMINEXTENTS10 MAXEXTENTS500OPTIMAL1000K);使回滚段在线 当回滚段创立后,回滚段是离线的,不克不及被数据库利用,为了使回滚段被事件使用,必需将回滚段在线。能够用以下命令使回滚段在线: ALTERROLLBACKSEGMENTrollback_segmentONLINE; 例: ALTERROLLBACKSEGMENTrbs01ONLINE; 为了使回滚段在数据库启动时主动在线,能够在数据库的参数文件中列出回滚段的名字。比方在参数文件中到场以下一行: ROLLBACK_SEGMENT=(rbs01,rbs02)修正回滚段的存储参数 可使用ALTERROLLBACKSEGMENT命令修正回滚段的存储参数(包含OPTIMAL,MAXEXTENTS)。 语法: ALTERROLLBACKSEGMENTrollback_segment ] |NULL}])] 例: ALTERROLLBACKSEGMENTrbs01STORAGE(MAXEXTENTS1000);接纳回滚段的空间 假如指定了回滚段的OPTIMAL参数,ORACLE将主动接纳回滚段到OPTIMAL指定的地位。用户也能够手动接纳回滚段的空间。 语法: ALTERROLLBACKSEGMENTrollback_segmentSHRINK]; 申明: 假如不指明TOinteger的数值,ORACLE将试图接纳到OPTIMAL的地位。 例: ALTERROLLBACKSEGMENTrbs01SHRINKTO2M;使回滚段离线 为了到达以下两个目标将要回滚段离线: 1.制止新的事件利用该回滚段; 2.该回滚段必需删除。 语法: ALTERROLLBACKSEGMENTrollback_segmentOFFLINE; 例: ALTERROLLBACKSEGMENTrbs01OFFLINE; 申明: 假如有事件正在利用该回滚段,运转该命令后,回滚段的形态将是PENDINGOFFLINE。事件停止后,形态将改成OFFLINE,能够经由过程V$ROLLSTAT查询回滚段的形态。删除回滚段 当回滚段不再必要或要重修以改动INITIAL,NEXT或MINEXTENTS参数时,能够将其删除。要删除回滚段,不准使该回滚段离线。语法: DROPROLLBACKSEGMENTrollback_segment;例: DROPROLLBACKSEGMENTrbs01;查询回滚段的信息 所用数据字典:DBA_ROLLBACK_SEGS 能够查询的信息:回滚段的标识(SEGMENT_ID)、称号(SEGMENT_NAME)、地点表空间(TABLESPACE_NAME)、范例(OWNER)、形态(STATUS)。 例: SQL>SELECTsegment_name,tablespace_name,owner,statusFROMdba_rollback_segs;回滚段的统计信息 数据字典:V$ROLLNAME,V$ROLLSTAT 例: SQL>SELECTn.name,s.extents,s.rssize,s.optsize,s.hwmsize,s.xacts,s.status FROMv$rollnamen,v$rollstats WHEREn.usn=s.usn;回滚段确当前举动事件 数据字典:V$SESSION,V$TRANSACTION 例: SQL>SELECTs.username,t.xidusn,t.ubafil,t.ubablk,t.used_ublk FROMv$sessions,v$transactiont WHEREs.saddr=t.ses_addr; USERNAME XIDUSN UBAFIL UBABLK USED_UBLK ------- ----------------------------------------- SYSTEM 2 2 7 1 SCOTT 1 2 163 1 2rowsselected.回滚段的数目计划 关于OLTP体系,存在大批的大事务处置,一样平常倡议: 数目多的小回滚段;每四个事件一个回滚段;每一个回滚段不要凌驾十个事件。 关于批处置,一样平常倡议: 少的年夜回滚段;每一个事件一个回滚段。回滚段的成绩及办理办法 成绩一:事件请求的回滚段空间不敷,体现为表空间用满(ORA-01560毛病),回滚段扩大抵达参数MAXEXTENTS的值(ORA-01628)。 办理办法:向回滚段表空间增加文件或使已有的文件变年夜;增添MAXEXTENTS的值。 成绩二:读分歧性毛病(ORA-01555SNAPSHOTTOOOLD) 办理办法:增添MINEXTENTS的值,增添区的巨细,设置一个高的OPTIMAL值。列举选择MySQL的理由的最困难的地方在于,如何对这些理由进行排序。MySQL学习教程这就如同我们经常争论的故事:先有鸡还是先有蛋? 但换公司用MSSQL2K感觉自己好像根本就不了解MSSQL。什么DTS触发器以前根本没用过。 XML字段类型更好的解决了XML数据的操作。XQuery确实不错,但是个人对其没好感。(CSDN的开发者应该是相当的熟了!) 如果我们从集合论(关系代数)的角度来看,一张数据库的表就是一组数据元的关系,而每个SQL语句会改变一种或数种关系,从而产生出新的数据元的关系(即产生新的表)。 呵呵,这就是偶想说的 不好!如果出了错;不好调试;不好处理!其实web开发将代码分为3层:web层;业务逻辑层和数据访问层;一般对数据库的操作都在数据访问层来做;这样便于调试和维护!而且将来如果是换了数据库的话;你只需要改数据层的代码;其他层的基本可以不变!要是你在jsp中直接调用sql数据库;那么如果换了数据库呢?岂不都要改?如果报了异常呢?怎么做异常处理? 一个百万级别的基本信息表A,一个百万级别的详细记录表B,A中有个身份证id,B中也有身份id;先要找出A中在B的详细记录。 理解了存储结构,再阅读下性能优化的章节基本上会对sqlserver有个清晰地认识 个人感觉没有case直观。而且默认的第三字段(还可能更多)作为groupby字段很容易造成新手的错误。
页:
[1]