爱飞 发表于 2015-1-16 22:22:01

MYSQL网站制作之用Oracle9i在线表格重界说来从头构造表...

“MySQL实际上是一个数据库家族,你可以从选择一个并将其配置成可以满足你的大多数情况,”开源顾问公司Ethiqa的总裁如此表示,“因此,你可以在开始的时候选择一个小巧的版本产品,以后再根据需要来对其进行性能或大小上的扩展。”在Oracle9i呈现之前,你只能经由过程导出和导进的体例来举行表格重界说,因而表格重界说的历程是一个离线历程。乃至在线变更(“ALTERTABLEADDNEW_COLNUMBER(3)”)也会招致独有性逝世锁(exclusivelocks),这就必要在DDL完成之前避免一切DML(拔出、更新)的运转。
为懂得决这个成绩,Oracle9i在其DBMS_REDEFINITION软件包中引进了在线表格重界说功效。有了DBMS_REDEFINITION软件包,你就能够:

1.拷贝表格(用CTAS)
2.创立表格的快照(snapshot)
3.把重界说表格的过程当中所产生的变更举行列队
4.并用变更行列来同步重界说后的表格。
这个特征对24/7Oracle数据库来讲十分主要,这是因为DBA如今能够在坚持表格的可更新性的同时从头构造表格的布局。
我们以上面的剧本为例来讲明从头构造表格布局的完全历程。
execdbms_redefinition.abort_redef_table(PUBS,TITLES,TITLES2);
altertabletitlesaddconstraintpk_titlesprimarykey(title_id);
execdbms_redefinition.can_redef_table(PUBS,TITLES);
createtabletitles2
as
select*fromtitles;
execdbms_redefinition.start_redef_table(PUBS,TITLES,TITLES2,title_idtitle_id,titletitle,typetype,pub_idpub_id,priceprice,advanceadvance,royalty*1.1royalty,ytd_salesytd_sales,notesnotes,pubdatepubdate);
execdbms_redefinition.sync_interim_table(PUBS,TITLES,TITLES2);
execdbms_redefinition.finish_redef_table(PUBS,TITLES,TITLES2);
droptabletitles2;
假如重构造失利,那末你就必需接纳特别的步骤来让它从头入手下手。因为重界说历程必要创立表格的快照,因而为了从头入手下手这一历程,你必需挪用DBMS_REDEFINITION.ABORT_REDEF_TABLE来开释快照。
DBMS_REDEFINITION.ABORT_REDEF_TABLE历程有三个参数,即纲目(schema)、原始表格(originaltablename)称号和持有表格称号(holdingtablename)。它“出栈”并同意你入手下手重构造表格。
dbms_redefinition.abort_redef_table(PUBS,TITLES,TITLES2);
但是,在线表格重界说也不是十全十美的。上面列出了Oracle9i重界说历程的部分限定。
你必需有足以保护两份表格拷贝的空间。
你不克不及变动主键栏。
表格必需有主键。
必需在统一个纲目中举行表格重界说。
在重界说操纵完成之前,你不克不及对新加栏加以NOTNULL束缚。
表格不克不及包括LONG、BFILE和用户范例(UDT)。
不克不及重界说链表(clusteredtables)。
不克不及在SYS和SYSTEM纲目中重界说表格。
不克不及器具体化视图日记(materializedviewlogs)来重界说表格;不克不及重界说含有详细化视图的表格。
不克不及在重界说过程当中举行横向分集(horizontalsubsetting)。



越来越多的开发者将继续选择MySQL。Evans的总裁JohnAndrews表示,MySQL学习教程用户对MySQL和其他开源数据库的评价正在赶上甚至超过很多专有商业数据库软件。

透明 发表于 2015-1-19 09:12:14

语句级快照和事务级快照终于为SQLServer的并发性能带来了突破。个人感觉语句级快照大家应该应用。事务级快照,如果是高并发系统还要慎用。如果一个用户总是被提示修改不成功要求重试时,会杀人的!

再现理想 发表于 2015-1-24 12:39:05

很多书籍啊,不过个人认为看书太慢,还不如自己学。多做实际的东西,就会遇到很多问题,网上搜下解决问题。不断重复这个过程,在配合sql的F1功能。

乐观 发表于 2015-2-1 12:09:33

至于淘汰的问题,只能说在你的项目周期之内,微软应该都不会倒闭。

谁可相欹 发表于 2015-2-7 05:17:34

索引视图2k就有。但是2005对其效率作了一些改进但是schema.viewname的作用域真是太限制了它的应用面。还有一大堆的环境参数和种种限制都让人对它有点却步。

飘飘悠悠 发表于 2015-2-20 16:41:27

另一个是把SQL语句写到服务器端,就是所谓的SP(存储过程);

冷月葬花魂 发表于 2015-3-6 18:39:51

相信各位对数据库和怎么样学习数据库都有一些经验和看法,也会有人走了一些弯路总结出自己的经验来,希望大家能把各自的看法和经验拿出来分享,给别人一份帮助,给自己一份快乐

仓酷云 发表于 2015-3-13 05:46:58

原理很简单,对要求长时间计算某一时间点的报表生成和防用户操作错误很有帮助。但是比起Oracle10g的闪回技术还是细粒度不够。可惜!

灵魂腐蚀 发表于 2015-3-20 14:31:04

作了些试验,发现使用CLR的存储过程或函数在达到一定的阀值的时候,系统性能会呈指数级下滑!这是非常危险的!只使用几个可能没有问题,当一旦大规模使用会造成严重的系统性能问题!
页: [1]
查看完整版本: MYSQL网站制作之用Oracle9i在线表格重界说来从头构造表...