Oracle优化思路

优化思路:
1)高效SQL:能用exists,不用in还有partition by分析函数,?绑定变量减少SQL硬解析,减少latch争用
2)分区PARTITION (oracle自动,pg需要自己写触发器),分表,历史归档
3)构建索引,常用B树,唯一索引,反向索引(避免后向匹配不走索引),伪复合索引,函数索引,OLAP上用bitmap索引,看执行计划
4)定期重新统计,定期重新统计,准备高效执行路径。analyze table abc compute statistics
5)buffer cache,sort_area_size,shared_pool_size 等参数设置
6)检查是否有等待事件V$session_wait检查是否有等待事件

伪复合索引:CREATE INDEX my_index ON my_table(my_column,0);  my_column IS NULL 
函数索引:  CREATE INDEX my_index ON my_table(DECODE(status_id,0,0)); 只对值为0建索引,因为大部分为1

Oracle访问数据的存取方法:
–1、全表扫描(Full Table Scans, FTS)
–2、用ROWID访问表(Table Access by ROWID)
–3、索引扫描(Index Scan) 
 (3.1)索引唯一扫描(index unique scan)
 (3.2)索引范围扫描(index range scan) 
 (3.3)索引全扫描(index full scan) 
 (3.4)索引快速扫描(index fast full scan):直接在索引中获取数据块

表之间的连接方法:(强制走连接方式)
–排序合并连接(Sort Merge Join, SMJ) 适用场景: 非等值连接
–嵌套循环(Nested Loops, NL)  适用场景:大小表驱动表(小表全表扫描)+内部表(有索引)
–哈希连接(Hash Join, HJ)  适用场景:  等值连接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值