仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 834|回复: 7
打印 上一主题 下一主题

[学习教程] MYSQL教程之Oracle 10G 中的接纳站

[复制链接]
精灵巫婆 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:22:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
MySQL在业界的流行所带来的另一个好处是,人们总可以很轻松地发现本行业的MySQL学习教程。厂商都希望他们的开发工具和应用程序框架可以与MySQL数据库兼容。在Oracle10G中,引进了一个接纳站(RecycleBin)的观点.
  
  接纳站,从道理下去说就是一个数据字典表,安排用户Drop失落的数据库工具信息.用户举行Drop操纵的工具并没有被数据库删除,仍旧会占用空间.除非是因为用户手工举行Purge大概由于存储空间不敷而被数据库清失落.数据库有了如许的功效,可以削减良多不用要的贫苦.经常看到开辟职员误把表删除,快快当当找DBA来想举措的情形,信任,跟着10G的年夜局限使用,这类情况应当对照少见了.
  
  DBA办理上的相干信息能够从USER_recyclebin(DBA_recyclebin)中猎取.从如今的Beta版原本看,手册上所说的经由过程SQL*Plus的showrecyclebin命令检察还不成用.
  
  为了便于测试,我们创立了一个表空间Foo,巨细为1M,创立了一个用户Foo,默许的表空间为Foo.------------------------------------
SQL>CONNECTfoo/foo
已毗连。
SQL>SELECTtable_nameFROMuser_tables;
未选定行
SQL>DESCuser_recyclebin
称号是不是为空?范例
--------------------------------------
......
......
user_recyclebin年夜多是自注释的,涵义对照简单了解.
SQL>SELECTobject_nameFROMuser_recyclebin;
未选定行
SQL>CREATETABLEfooASSELECT*FROMDUAL;

表已创立。
SQL>SELECTtable_nameFROMuser_tables;
TABLE_NAME
------------------------------
FOO
SQL>DROPTABLEfoo;
表已抛弃。
SQL>SELECTtable_nameFROMuser_tables;
TABLE_NAME
------------------------------
RB$$41888$TABLE$0
SQL>
SQL>SELECTobject_name,original_nameFROMuser_recyclebin;
OBJECT_NAMEORIGINAL_NAME
----------------------------------------
RB$$41888$TABLE$0FOO
SQL>DESCRB$$41888$TABLE$0
称号是不是为空?范例
----------------------------------------
DUMMYVARCHAR2(1)
当一个表被删除并挪动到"接纳站"中,它的名字要举行一些转换.如许的目标不言而喻是为了不同类工具称号的反复.(Windows上,经由了特别的处置,接纳站里的操纵体系文件能够重名.)
转换后的名字格局以下:
RB$$objn$object_type$version
个中的RB,代表RecycleBin.objn为表的目次工具号.object_type暗示工具范例.version暗示版本号.
由数据库指定。foo表被删除后,在数据库接纳站里酿成了RB$$41888$TABLE$0。从名字能够看出,这个工具的范例是Table,Version是0.
SQL>CREATETABLEfooASSELECT*FROMDUAL;
表已创立。
SQL>SELECTtable_nameFROMuser_tables;
TABLE_NAME
------------------------------
FOO
RB$$41888$TABLE$0

SQL>DROPTABLEfoo;

表已抛弃。
SQL>SELECTobject_name,original_nameFROMuser_recyclebin;
OBJECT_NAMEORIGINAL_NAME
---------------------------------
RB$$41889$TABLE$0FOO
RB$$41888$TABLE$0FOO
SQL>
能看出来,固然源表名字不异,在接纳站里的工具名字是分歧的。
已放到接纳站里的表是不克不及用drop命令删除的:

SQL>droptableRB$$41888$TABLE$0;
droptableRB$$41888$TABLE$0
*
ERROR位于第1行:
ORA-38301:cannotperformDDL/DMLoverobjectsinRecycleBin
假如要清失落改工具,利用purge命令:
SQL>PURGEtableRB$$41888$TABLE$0;
Tablepurged.
SQL>SELECTobject_name,original_nameFROMuser_recyclebin;
OBJECT_NAMEORIGINAL_NAME
-------------------------------------
RB$$41889$TABLE$0FOO
工具已清失落.
恢复表,利用Undrop命令.
SQL>undroptableRB$$41889$TABLE$0;
Tableundropped.
SQL>SELECTobject_name,original_nameFROMuser_recyclebin;
未选定行
SQL>SELECTtable_nameFROMuser_tables;
TABLE_NAME
------------------------------
RB$$41889$TABLE$0
SQL>descfoo;
ERROR:
ORA-04043:工具foo不存在
恢复后的表的名字为RB$$41889$TABLE$0,假如指命名字,利用"as表名字"
如:undroptableRB$$41889$TABLE$0asFoo如许的语句.更加具体的语法,请查阅10G的SQL参考手册.
SQL>
SQL>descRB$$41889$TABLE$0;
称号是不是为空?范例
---------------------------------
DUMMYVARCHAR2(1)
SQL>DROPTABLERB$$41889$TABLE$0;
表已抛弃。
SQL>SELECTtable_nameFROMuser_tables;
TABLE_NAME
------------------------------
RB$$41889$TABLE$1
SQL>
假如我们这个时分再删除RB$$41889$TABLE$0,可察看到接纳站里该表版本号的变更。
假如空间一向够用,接纳站里的工具会一向坚持(假如你不手工举行Purge的话)。假如空间不敷,接纳站里的工具会被清空。看我们上面这个例子:
让我们创立一个年夜一点的表:

SQL>selectobject_name fromuser_recyclebin;
OBJECT_NAME
------------------------------
RB$$41893$TABLE$0
SQL>CREATETABLEfoo_biggerASSELECT*FROMall_objectsWHEREROWNUM<7980;
表已创立。
SQL>SELECTtable_nameFROMuser_tables;
TABLE_NAME
------------------------------
FOO_BIGGER
SQL>SELECTobject_name,original_nameFROMuser_recyclebin;
未选定行
SQL>
哦,果然,接纳站里的内容已被删失落了。还要注重,在空间不敷的时分Drop表,也是不克不及放到接纳站里的。
参考文档:
Oracle10iDatabaseAdministrator’sGuideRelease1(10.1)-BETA
PartNo.B10739-01
Oracle10g的undrop功效一点理论byOvermars
通过支付一定费用,客户可以得到优先的24/7支持,访问内容丰富的在线知识库和联系一个专门的技术负责经理。
透明 该用户已被删除
沙发
发表于 2015-1-19 09:36:44 | 只看该作者
你觉得我的非分区索引无法对起子分区,你可以提醒我一下呀!没有任何的提醒,直接就变成了非分区表。不知道这算不算一个bug。大家也可以试试。
精灵巫婆 该用户已被删除
板凳
 楼主| 发表于 2015-1-27 12:58:15 | 只看该作者
原来公司用过MYSQL自己也只是建个表写个SQL
地板
发表于 2015-2-5 10:39:22 | 只看该作者
groupby子句可以将查询结果分组,并返回行的汇总信息Oracle按照groupby子句中指定的表达式的值分组查询结果。
只想知道 该用户已被删除
5#
发表于 2015-2-11 09:46:56 | 只看该作者
是要和操作系统进行Socket通讯的场景。否则建议慎重!
第二个灵魂 该用户已被删除
6#
发表于 2015-3-2 10:37:22 | 只看该作者
另一个是把SQL语句写到服务器端,就是所谓的SP(存储过程);
活着的死人 该用户已被删除
7#
发表于 2015-3-17 19:51:26 | 只看该作者
作了些试验,发现使用CLR的存储过程或函数在达到一定的阀值的时候,系统性能会呈指数级下滑!这是非常危险的!只使用几个可能没有问题,当一旦大规模使用会造成严重的系统性能问题!
若相依 该用户已被删除
8#
发表于 2015-3-24 23:31:44 | 只看该作者
发几份SQL课件,以飨阅者
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-29 23:56

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表