我们要求审核近50个表中已更改的值,这必须在每一行进行.
这意味着,对于MYSYS.T1中的单行,MYSYS_AUDIT.T1_AUD表中可能有50行(或更多甚至更少,但最少1行).我们可能拥有每个列条目的旧值以及T1中可用的新值.
DBA给出了观察,建议反对这种方法,因为他说,单独的模式意味着每个 *** 作都有额外的I / O.基本上,AUDIT模式仅用于进行一些分析和输入值(因此SELECT和INSERT).
“单独的架构意味着额外的I / O”是真的吗?我找不到理由.
对我来说这似乎是合乎逻辑的,因为AUDIT数据不应该被篡改,因此是一个单独的模式.
此外,我们设计了一个单独的模式来存档MYSYS中的一些表.从MYSYS_ARC可以将表备份到磁带中或在足够的时间后删除.
几个统计数据:
MYSYS模式中很少有表(接近20,30)可以增长到大约50M行.
我们要求总磁盘空间为4 TB.
MYSYS_AUDIT模式可能是MYSYS的10倍,但我们不会超过3个月.
MYSYS中的少数表将具有以下事务/分钟.
MYSYS中的> 100 INSERT意味着在MYSYS_AUDIT表中插入相同数量的插入.
MYSYS表中的> 1000 UPDATE意味着MYSYS_ADIT表中的插入次数相同.
问题:
鉴于所有这些,你能建议我改进吗?
>单独的架构会影响光盘I / O吗? (每个模式一个额外的I / O?)
>任何一般性建议?
数字:
+-------------------+ +-------------------+| 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 |+-------------------+
除此之外,我们还有两个只有只读权限的模式,但主要是出于特殊目的,我们不介意它们的性能.
建议:
有几个建议.我们同意以下内容.
>逻辑分离的模式.
> TRIGGER用于将数据插入AUDIT表.
>表名称不会有_AUD后缀. 总结
以上是内存溢出为你收集整理的Oracle架构设计:具有I / O开销的单独架构?全部内容,希望文章能够帮你解决Oracle架构设计:具有I / O开销的单独架构?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)