商务英语口语网 加入收藏  -  设为首页
您的位置:商务英语口语网 > 英语词汇 > 正文
画蛇添足的意思是什么? 寓意是什么?
画蛇添足的意思是什么? 寓意是什么?
提示:

画蛇添足的意思是什么? 寓意是什么?

画蛇添足:
画蛇时给蛇添上脚.比喻做了多余的事,非但无益,反而不合适.也比喻虚构事实,无中生有.
画蛇添足 (发音 huà shé tiān zú)
【解 释】 画蛇时给蛇添上脚.比喻做了多余的事,反而有害无益,徒劳无功.
【出 处】 西汉·刘向《战国策·齐策二》:“蛇固无足,子安能为之足?”
【用 法】 连动式;作宾语;含贬义
【示 例】 周而复《上海的早晨》第四部:“他想接上去说,又觉得是~,只好惋惜地坐着没动.”
【近义词】 徒劳无功、多此一举
【反义词】 画龙点睛、恰到好处、恰如其分
【灯 谜】 巳
【典 故】
故事发生在古代楚国.有一家人家祭祀祖宗.仪式完毕后,把剩下的一壶酒,赏给手下的办事人员喝.人多酒少,很难分配.这几个人就商量分酒的办法.有个人说:“一壶酒分给几个人喝,太少了.要喝就喝个痛快.给一个人喝才过瘾呢!”大家都这样想,可是谁也不肯放弃这个权利.另一个提议说:“这样吧,让我们来个画蛇比赛.每个人在地上画一条蛇,谁先画完,谁就喝这壶酒.”大伙儿都赞成这个办法.于是每个人折了一根树枝,同时开始画起来.有一个人画得最快,转眼之间,把蛇画好了.他左手抓过酒壶,得意地看看同伴,心想,他们要赶上我还差得远哩.便洋洋自得地说:“我再给蛇添上几只脚,也能比你们先画完.”正当他画第二只脚的时候,另一个人把蛇画完了.他一把夺过酒壶说:“蛇本来是没有脚的,你画的根本就不是蛇.还是我先画完,酒应当归我喝.” 添画蛇脚的人无话可说,只好咽着唾沫,看别人喝酒.
[提示]
画蛇,就要象一条蛇;添上脚,就成了“四不象”.做任何事情都要实事求是,不卖弄聪明,不节外生技.否则,非但不能把事情做好,反而会把事情办糟.
[原文]
楚有祠者①,踢其舍人卮酒②.舍人相谓曰③:“数人饮之不足,一人饮之有余,请画地为蛇,先成者饮酒.”一人蛇先成,引酒且饮之④;乃左手持卮,右手画蛇曰:“吾能为之足.”未成.一人之蛇成,夺其卮曰:“蛇固无足⑤,子安能为之足⑥?”遂饮其
酒⑦.为蛇足者,终亡其酒⑧.——《战国策》
[注释]
①祠(cí)——春祭.
②舍人——古代王公贵族手下的办事人员.卮(zhī)—— 古代盛酒的器具.
③相谓——互相商量.
④引酒——拿过酒杯.引,取过来.且——将要.
⑤固——本来.
⑥子——对人的尊称.安——怎么.
⑦遂——就.
⑧亡——失去.
示例 将军功绩已成,威声大震,可以止矣.今若前进,倘不如意,正如“~”也.(明·施耐庵《水浒全传》第一百十回)
英文:draw a snake and add feet to it—ruin the effect by adding sth.superfluous 蛇本来没有脚有人却给它加上脚,故事见《战国策·齐策二》.比喻做事多此一举,反而坏事.例:今若前进,倘不如意,正如画蛇添足也.——《三国演义》

DROP TABLE在删除表时释放表空间吗
提示:

DROP TABLE在删除表时释放表空间吗

一、drop表

执行drop table xx 语句

drop后的表被放在回收站(user_recyclebin)里,而不是直接删除掉。这样,回收站里的表信息就可以被恢复,或彻底清除。

通过查询回收站user_recyclebin获取被删除的表信息,然后使用语句

flashback table to before drop [rename to ];

将回收站里的表恢复为原名称或指定新名称,表中数据不会丢失。

若要彻底删除表,则使用语句:drop table purge;

清除回收站里的信息

清除指定表:purge table ;

清除当前用户的回收站:purge recyclebin;

清除所有用户的回收站:purge dba_recyclebin;

不放入回收站,直接删除则是:drop table xx purge;

举例如下:

===============================================================================

SQL> select * from test1;

A B C

-- -- ----------

11 5

11 10

2 rows selected

SQL> create table test2 as select * from test1;

Table created

SQL> select * from test2;

A B C

-- -- ----------

11 5

11 10

2 rows selected

SQL> drop table test2;

Table dropped

SQL> select object_name, original_name, operation, type from user_recyclebin;

OBJECT_NAME ORIGINAL_NAME OPERATION TYPE

------------------------------ -------------------------------- --------- -------------------------

BIN$vQwemDg4R9mK9fYJNdYzvg==$0 TEST2 DROP TABLE

SQL> flashback table test2 to before drop rename to test3;--【to test3】将表重命名

Done

SQL> select * from test3;

A B C

-- -- ----------

11 5

11 10

2 rows selected

SQL> select * from test2

ORA-00942: 表或视图不存在

--彻底删除表

SQL> drop table test3 purge;

Table dropped

二、清除表中的数据

truncate操作 同没有where条件的delete操作十分相似,只是把表里的信息全部删除,但是表依然存在。

例如:truncate table XX

Truncate不支持回滚,并且不能truncate一个带有外键的表,如果要删除首先要取消外键,然后再删除。

truncate table 后,有可能表空间仍没有释放,可以使用如下语句:

alter table 表名称 deallocate UNUSED KEEP 0;

注意如果不加KEEP 0的话,表空间是不会释放的。

例如:

alter table F_MINUTE_TD_NET_FHO_B7 deallocate UNUSED KEEP 0;

或者:

TRUNCATE TABLE (schema)table_name DROP(REUSE) STORAGE才能释放表空间。

例如: truncate table test1 DROP STORAGE;

三、查询分区表存在哪些分区:

查询分区表的情况,可以在USER_TAB_PARTITIONS中查询。例如:

select 'alter table '||t.table_name ||' truncate partition ' || t.partition_name from USER_TAB_PARTITIONS t where t.table_name like 'F_%'

清除指定某个分区表的分区数据:

alter table 表名称 truncate partition 分区名称;

四、清除分区表占用的空间:

alter table 表名称 DROP partition 分区名称;

例如:

alter table F_HOUR_TD_NET_MPVOICE DROP partition P_09121913 ;

五、查询表空间信息

可以利用如下语句查询各表在存储空间的使用分情况:

SELECT TABLESPACE_NAME,TO_CHAR(SUM(BYTES)/(1024*1024),'999G999D999') CNT_MB FROM DBA_EXTENTS WHERE OWNER='&OWNER' AND SEGMENT_NAME='&TABLE_NAME' AND SEGMENT_TYPE LIKE 'TABLE%' GROUP BY TABLESPACE_NAME;

可以使用如下语句,查询存储空间情况:

Select Tablespace_Name, Sum(bytes)/1024/1024 From Dba_Segments group By Tablespace_Name

六、查询用户下的表

如果你的用户权限不是DBA:

那你用

select * from user_tables;

可以查询到当前用户所拥有的表。

如果是DBA用户:

select * from dba_tables;

Oracle 删除表中记录 如何释放表及表空间大小
提示:

Oracle 删除表中记录 如何释放表及表空间大小

解决方案 执行 alter table jk_test move或 alter table jk_test move storage(initial 64k)或 alter table jk_test deallocate unused或 alter table jk_test shrink space.注意:因为alter table jk_test move 是通过消除行迁移,清除空间碎片,删除空闲空间,实现缩小所占的空间,但会导致此表上的索引无效(因为ROWID变了,无法找到),所以执行 move 就需要重建索引。 找到表对应的索引 select index_name,table_name,tablespace_name,index_type,status from dba_indexes where table_owner='SCOTT'根据status 的值,重建无效的就行了。sql='alter index '||index_name||' rebuild'; 使用存储过程执行,稍微安慰。 还要注意alter table move过程中会产生锁,应该避免在业务高峰期操作! 另外说明:truncate table jk_test 会执行的更快,而且其所占的空间也会释放,应该是truncate 语句执行后是不会进入oracle回收站(recylebin)的缘故。如果drop 一个表加上purge 也不会进回收站(在此里面的数据可以通过flashback找回)。 不管是delete还是truncate 相应数据文件的大小并不会改变,如果想改变数据文件所占空间大小可执行如下语句: alter database datafile 'filename' resize 8g重定义数据文件的大小(不能小于该数据文件已用空间的大小)。 另补充一些PURGE知识Purge操作: 1). Purge tablespace tablespace_name : 用于清空表空间的Recycle Bin 2). Purge tablespace tablespace_name user user_name: 清空指定表空间的Recycle Bin中指定用户的对象 3). Purge recyclebin: 删除当前用户的Recycle Bin中的对象。 4). Purge dba_recyclebin: 删除所有用户的Recycle Bin中的对象,该命令要sysdba权限 5). Drop table table_name purge: 删除对象并且不放在Recycle Bin中,即永久的删除,不能用Flashback恢复。 6). Purge index recycle_bin_object_name: 当想释放Recycle bin的空间,又想能恢复表时,可以通过释放该对象的index所占用的空间来缓解空间压力。 因为索引是可以重建的。 二、如果某些表占用了数据文件的最后一些块,则需要先将该表导出或移动到其他的表空间中,然后删除表,再进行收缩。不过如果是移动到其他的表空间,需要重建其索引。 1、 SQL> alter table t_obj move tablespace t_tbs1; ---移动表到其它表空间也可以直接使用exp和imp来进行 2、 SQL>alter owner.index_name rebuild; --重建索引3、删除原来的表空间