oracle中加索引会不会加快更新的速度?有人说会减慢更新速度?谁知道为啥吗?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle中加索引会不会加快更新的速度?有人说会减慢更新速度?谁知道为啥吗?相关的知识,希望对你有一定的参考价值。

有5w条数据,加索引,对更新有影响吗?

五万数据量,有影响但不会很明显。如果对表添加合适的索引,能够提高用户查询该表的速度。索引类似一本书的目录,你通过目录来查看书中的内容肯定是要方便且便捷的。
但是添加索引后,oracle要自动维护索引,当有大量的update、insert等操作时,oracle同样要对索引进行更新维护,这样就增加了oracle额外的开销,从而影响速度。
所以,并不是所有的表都适合添加索引,具体情况要看你自身的业务需要。
参考技术A 基本没影响,加索引利于查询,就是你几百万数据加个索引,对更新也没啥影响。 参考技术B 5W数据量不算大,应该不会,但有索引可以加快查询速度。

Oracle统计信息(表、索引)更新怎么操作?

看到有人做过这种类似的操作,可以加快SQL的执行速度,我没有弄过,想问下:
A 如何做ORACEL针对某个用户的统计信息更新
B 如何让这种统计信息更新 (定期自动执行,比如一周执行一次)
以上操作可以在PLSQL中操作吗?
我是初学者,没有弄过,还请各位大虾多多指导,谢谢

A. oracle 提供了收集数据库统计信息的系统包,例如统计scott用户信息只需要执行:

exec dbms_stats.gather_schema_stats(
ownname => 'SCOTT',
options => 'GATHER AUTO',
estimate_percent => dbms_stats.auto_sample_size,
method_opt => 'for all columns size repeat',
degree => 15
);

dbms_stat.gather_schema_stats 的参数说请查相关资料,这里就不详述了。

B. 要定期执行用户统计信息很简单,只要在 oracle job 中调用这个过程就可以了,设置好初次调用时间和调用时间间隔即可。

以上的操作都能在plsql中操作。
参考技术A A 如何做ORACEL针对某个用户的统计信息更新

不大明白这个统计信息时什么意思?这个信息时什么信息?统计是个什么概念?

B 如何让这种统计信息更新 (定期自动执行,比如一周执行一次)
采用ORACLE的JOB作业

以上是关于oracle中加索引会不会加快更新的速度?有人说会减慢更新速度?谁知道为啥吗?的主要内容,如果未能解决你的问题,请参考以下文章

Oracle统计信息(表、索引)更新怎么操作?

带有索引的 MySQL 表:许多插入/更新会影响性能吗?如果是,如何再次加快速度?

Oracle新手入门:如何提高索引创建速度?

mysql 索引

oracle sql优化技巧

oracle速度变慢,怎样解决