@H_404_8@
我们要求审核近50个表中已更改的值,这必须在每一行进行.@H_404_8@
这意味着,对于MYSYS.T1中的单行,MYSYS_AUDIT.T1_AUD表中可能有50行(或更多甚至更少,但最少1行).我们可能拥有每个列条目的旧值以及T1中可用的新值.@H_404_8@
DBA给出了观察,建议反对这种方法,因为他说,单独的模式意味着每个操作都有额外的I / O.基本上,AUDIT模式仅用于进行一些分析和输入值(因此SELECT和INSERT).@H_404_8@
“单独的架构意味着额外的I / O”是真的吗?我找不到理由.@H_404_8@
对我来说这似乎是合乎逻辑的,因为AUDIT数据不应该被篡改,因此是一个单独的模式.@H_404_8@
此外,我们设计了一个单独的模式来存档MYSYS中的一些表.从MYSYS_ARC可以将表备份到磁带中或在足够的时间后删除.@H_404_8@
几个统计数据:
MYSYS模式中很少有表(接近20,30)可以增长到大约50M行.
我们要求总磁盘空间为4 TB.
MYSYS_AUDIT模式可能是MYSYS的10倍,但我们不会超过3个月.
MYSYS中的少数表将具有以下事务/分钟.@H_404_8@
MYSYS中的> 100 INSERT意味着在MYSYS_AUDIT表中插入相同数量的插入.
MYSYS表中的> 1000 UPDATE意味着MYSYS_ADIT表中的插入次数相同.@H_404_8@
问题:
鉴于所有这些,你能建议我改进吗?@H_404_8@
>单独的架构会影响光盘I / O吗? (每个模式一个额外的I / O?)
>任何一般性建议?@H_404_8@
数字:@H_404_8@
@H_404_8@
+-------------------+ +-------------------+ | MYSYS | | MYSYS_AUDIT | | | | | | 1. T1 | | 1. T1_AUD | | 2. T2 | | 2. T2_AUD | | 3. T3 |--------->| 3. T3_AUD | | 4. T4 |(SELECT,| 4. T4_AUD | | . | INSERT) | . | | . | | . | | . | | . | | 100. T100 | | 50. T50_AUD | +-------------------+ +-------------------+ | | | | |(INSERT) | | | * +-------------------+ | MYSYS_ARC | | | | 1. T1_ARC | | 2. T2_ARC | | 3. T3_ARC | | 4. T4_ARC | | . | | . | | . | | 100. T100_ARC | +-------------------+
除此之外,我们还有两个只有只读权限的模式,但主要是出于特殊目的,我们不介意它们的性能.@H_404_8@
>逻辑分离的模式.
> TRIGGER用于将数据插入AUDIT表.
>表名称不会有_AUD后缀.