对于有大量的写操作(插入、更新、删除)的任何Online应用环境应将逻辑和物理日志分别放在不同的磁盘/控制器上。在放置物理、逻辑日志的磁盘上不要再放其它数据。
将逻辑日志放在不同的磁盘上
避免当前日志于各份日志之间出现冲突
减少磁头移动
假如可能的话,控制原始分区的分配以减少磁头的移动
控制表分割
尽量防止表分为多个段(extent),这对OnLine 5.0及以前的各版十分重要。
避免过多的chunk
即使没有dirty页,大量的chunk也会明显增加检查点的时间。
明智地使用数据分片
不要对小表进行分片
不要对所有的表进行分片
确定数据量大且频繁访问重要表
将表的每个分片放在单独的磁盘上
使用轮转(round robin)方式分割索引要小心
OLTP--轮询方式分割数据,分离(也可分割)索引
通常为使OLTP性能最佳,要考虑用轮询方式将使用高的大表分割到不同磁盘的DBSPACE中(为分散多个磁盘间I/O)。这些表的索引也应明确地生成在特定的dbspace上(与数据不同的磁盘上)。也可以按表达式进行分片。
DSS--轮转或基于表达式方式分割数据,无索引或尽量少
通常为使DSS性能最佳,考虑哪种方式分割大表最好,是轮询还是表达式方式,对不同的表使用不同的分片方式,其目标是为了平衡总体I/O,并可以使优化器对频繁运行的查询消除对不必要分片的扫描
基于表达式方式分片
表达式应该简洁。对给定的dbspace,首先使用最有约束力的、限制条件最多的表达式:
例如使用x<=10 and x>=1 in dbspace1,而不要使用x>=1 and x<=10 in dbspace1。
将访问频度高的 dbspace放在访问频度低的dbspace前
避免使用进行类型转换的表达式
不要按经常改换值得列进行分片
在分片间进行的移动要付出额外的开销
仔细选择表达式
为了均衡I/O负载,而不是数据量
为了帮助消除查询中无需扫描的段
避免使用REMAINDER IN子句
使用多个数据库临时空间(DBSPACETEMP)
假如DBSPACETEMP列出多个dbspace的话,将大大并行涉及临时空间的操作。如使用多个临时dbspace,将它们放在与其它活动频繁的dbspace不同、且彼此分开的磁盘上。
OPTCOMPIND
OLTP--设置为0
对OLTP,应避免使用散列(hash)连接,因为该连接方式将大量消耗处理器资源。
DSS--设置为2
对DSS,散列连接可以提供很好的连接性能。
LRUS
最少4,否则等于NUMCPUVPS
缓冲区
对OLTP而言,需要较大的缓冲区池和较高的缓存命中率
对典型的OLTP工作负载,当大量访问在系统的缓存中的页时可以获得最好的性能,为了实现这点需要有大小合适的缓存区。通过onstat -p可以显示出缓存的效率,它将显示读、写的快速缓存命中百分率。在可用内存的限制下,要尽可能地提高该数字,通常获得95%以上的读命中率和85以上的写命中率是可能的。
最新相关文章
发表评论