Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3597530
  • 博文数量: 1575
  • 博客积分: 19423
  • 博客等级: 上将
  • 技术积分: 16102
  • 用 户 组: 普通用户
  • 注册时间: 2007-06-19 21:36
个人简介

专注专心

文章分类

全部博文(1575)

文章存档

2020年(10)

2018年(7)

2016年(6)

2015年(21)

2014年(32)

2013年(279)

2012年(516)

2011年(309)

2010年(260)

2009年(92)

2008年(15)

2007年(28)

我的朋友

分类: 数据库开发技术

2010-03-26 22:04:46

truncate,delete,drop的异同点

说明:本文摘自oracle技术用户讨论组

truncate
,delete,drop的异同点  
注意:这里说的delete是指不带where子句的delete语句
  
相同点:truncate和不带where子句的delete, 以及drop都会删除表内的数据  
不同点:  
1. truncate和 delete只删除数据不删除表的结构(定义)  
     drop语句将删除表的结构被依赖的约束(constrain),触发器(trigger),索引(index); 依赖于该表的存储过程/函数将保留,但是变为invalid状态.  
2.delete语句是dml,这个操作会放到rollback segement中,事务提交之后才生效;如果有相应的trigger,执行的时候将被触发.  
    truncate,drop是ddl, 操作立即生效,原数据不放到rollback segment中,不能回滚. 操作不触发trigger.  
3.delete语句不影响表所占用的extent, 高水线(high watermark)保持原位置不动  
   显然drop语句将表所占用的全部释放  
   truncate 语句缺省情况下将释放到 minextents个 extent,除非使用reuse storage;   truncate会将高水线复位(回到最开始).  
4.速度,一般来说: drop> truncate > delete  
5.安全性:小心使用drop 和truncate,尤其没有备份的时候.否则哭都来不及  
使用上,想删除部分数据行用delete,注意带上where子句. 回滚段要足够大.  
想删除表,当然用drop  
想保留表而将所有数据删除. 如果和事务无关,用truncate即可. 如果和事务有关,或者想触发trigger,还是用delete.  
如果是整理表内部的碎片,可以用truncate跟上reuse stroage,再重新导入/插入数据 

 

 

分类:

> 透明表
每个透明表在数据库中有一个相应的物理表。物理表的名称和数据字典中的逻辑表
定义的名称一致。所有事务和应用数据存贮在透明表中。
结构
结构在数据库不存在数据记录。结构用于在程序之间或程序与屏幕之间的接口定义。
附加结构
附加结构定义字段的子集,该字段属于其他表格或结构,但是在修正管理中作为单
独的对象。
存贮表
存储表可以用来存贮控制数据(例如:屏幕顺序,程序参数或临时数据)。几个存
储表可以组合成一个表库。该表库和数据库中的一物理表库相一致。它包含了各组
合库分派给它的所有记录。
簇表
连续的文本如文档之类可以存贮在簇表中。几个簇表可以组合成一个表簇。对这种
表类型,不同表中的几个逻辑行组合到一物理记录。这可以实现一对象接一对象地
存贮或访问,访问簇中的表的一个前提是,至少关键字的一部分必须相符合。几个
簇表存贮在数据库中 一个相应的表里。

求教BSEG表和与之相关6张表的关系

SAP的财务表中有个BSEG表,比较特殊是个簇表,访问起来比较死板,而且由于是由6个相关表合成的,数据量非常巨大。
哪位大侠能够说说BSEG究竟是怎么整合6张表的,和6张表是什么关系,6张表之间是什么关系
 
ANSWER:
我对技术不是很懂,但是业务上来讲

BSAD:应收明细(已清帐)
BSID:应收明细(未清帐)
BSAS:总帐明细(已清帐)
BSIS:总帐明细(未清帐)
BSAK:应付明细(已清帐)
BSIK:应付明细(未清帐)


BSEG主要通过“凭证号”“会计年度”“行号”和这六张表关联




一般情况下一笔业务产生的凭证都是未清的,那么:
如果该业务行是客户相关的,则被记录到BSID;
如果该业务行是供应商相关的,则被记录到BSIK;
无论和客户相关还是和供应商相关,都是和总帐相关,所以也会有记录到BSIS;


但是如果这笔业务被清帐了,则相应的记录会从BSI*转移到BSA*


一般情况下:
应收账款、预收账款、其他应收款、应收汇票等科目既和客户相关,又和未清项管理的总帐科目相关;
应付账款、预付账款、其他应付款、应付汇票等科目既和供应商相关,又和未清项管理的总帐科目相关;

其他总帐科目一般不启用未清项管理,所以记录一般都放在BSIS中。
 
 
阅读(635) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~