最近参加Oracle的培训,对Oracle有了更加深入的认识,在此做个学习总结。
1、Oracle数据库调优不能仅指望修改几项数据库参数就能有明显效果,问题更多出在应用方面,教育开发者正确地使用数据库是一项任重道远的工作。
2、Oracle数据库性能瓶颈主要有:CPU,网络,磁盘I/O,进程间协调;
3、数据库反应时间是影响用户体验和体现数据库性能的重要指标,一般为2ms;
4、数据库响应时间是用户感知到的上层应用响应时间的一部分;
5、SQL中的JOIN和集合运算
6、物理数据库设计:
1)索引设计(Index Design):
索引是为了加快查询特定的几行的速度,但是会使insert变慢。
索引类型:Btree Indexes,Bit Mapped Indexes,Storage Indexes;
2)分区设计(Partition Design)
随着数据库的增大,分区策略能保证查询性能和方便管理。
分区类型:RANGE Partitioning(按日期分区,例如按年),HASH Partitioning(按哈希分布分区),LIST Partitioning(按列表分区,例如按省份),Composite Partitioning(2个维度上分区,例如RANGE-LIST)
分区数量一般在1万以下。
3)压缩设计(Compression Design)
好处:加速表扫描和磁盘占用,可以为OLTP缓存更多的行
坏处:UPDATEs, DELETEs变慢
tips: 如果数据表压缩后为10GB,如果把数据表放到内存中需要留10GB+的内存(最好为20GB),因为压缩过程需要占用额外内存。
4) Clustering
主要作用是最大化利用硬件I/O。
7、数据处理技术(Data Processing Techniques)
1) Row by row
– Procedural processing one row at a time
2) Arrays
– Procedural processing of a set of rows at a time
3) Manual Parallelism
– Multiple threads/processes each performing row by row or array processing
4) Set based processing
– Process data in groups or sets of rows
(直接提交任务,Oracle数据库本身会进行任务优化)
使用场景:
8、Oracle资源管理器目的在于使数据库系统变得可控,而不至于因占用太多系统资源而崩溃。
9、Oracle数据库连接池连接数上限不是越高越好,一般设置为CPU线程总数能获得最佳性能。
设置前:
设置后:
铸剑团队签名:
【总监】十二春秋之,3483099@qq.com;
【Master】戈稻不苍,han169@126.com;
【Java开发】雨鸶,343691194@qq.com;思齐骏惠,qiangzhang1227@163.com;小王子,545106057@qq.com;巡山小钻风,840260821@qq.com;
【VS开发】豆点,2268800211@qq.com;
【系统测试】土镜问道,847071279@qq.com;尘子与*,695187655@qq.com;
【大数据】沙漠绿洲,caozhipan@126.com;张三省,570417591@qq.com;
【网络】夜孤星,11297761@qq.com;
【系统运营】三石头,261453882@qq.com;平凡怪咖,591169003@qq.com;
【容灾备份】秋天的雨,18568921@qq.com;
【安全】保密,你懂的。
原创作者:张三省
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。