ORACLE优化相关

数据库优化最关键的因素在于IO,因为操作内存是是很快的,但是读写磁盘文件的速度是很慢的,优化SQL最关键的在减少IO的读取,这就从逻辑优化和物理优化两方面

物理优化: 1. oracle 的运行环境 2. 合理配置Oracle 实例的参数 3. 建立合适的索引 4.将索引数据和表数据分开在不同的表空间上 5. 建立表分区,将数据分开存在不同的分区上

索引:  建立索引就跟字典的目录一样,有了目录,查询某个字的速度就快一些,不用全部遍历所有的字。数据库在执行一条SQL的时候,默认方式是根据搜索条件进行全表扫描,如果我们队某一列添加索引,查询时就会先去索引列表中一次定位到特定值的行数,大大减少遍历匹配的行数。

什么时候该增加索引? 1. 如果每次都需要取到表里所有记录,增加索引没意义,对于非唯一性字段,例如性别男女,对于记录比较少的数据量,增加索引不仅不会增加查询速度反而浪费了存储空间,因为索引是需要存储空间的,任何update/delete/insert的执行,索引就会计算更新。

2. select distinct dept_charger, first_value(dept_name) over (partition by dept_charger order by dept_name asc) dept_name from dpt where dept_id is not null and start with dept_id in ('_01') connect by prior dept_id = parent_id

以上 代码的意思是 按照部门id 由第一层级逐层递增,展示所有数据,然后 按照部门负责人分组后按照部门名称降序展示,取第一个分组的部门名称展示,最后再去重

http://cache.baiducontent.com/c?m=9d78d513d9971aef19ab837f7d01d0120e55f0276f8997426b93d3169c3e1d070571e2c83a3f405a8e906b6776f40f1eada02172405f77f186c88241ddb0952f2595636f2759c70341824eb8cb3026c22a935becab04&p=8b2a9715d9c043a509a8c22c57579f&newp=8b2a970ac78c15b708e2977c075591231610db2151d6d01f6b82c825d7331b001c3bbfb423251304d5c0796d03a54c56e1f03d7135012ba3dda5c91d9fb4c57479c7367b2404&user=baidu&fm=sc&query=first%5Fvalue&qid=cc3912f00000b2d0&p1=1

3. 逻辑上的优化

1. 可以对表进行逻辑分割,如中国移动用户表,可以根据手机尾号建10个表,这样对性能有一定的作用

2. SQL语句使用占位符

 







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值