ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 关于SQL优化以及数据库优化的话题

关于SQL优化以及数据库优化的话题

原创 Linux操作系统 作者:mugen 时间:2019-07-12 15:12:04 0 删除 编辑

本人虽然学习从事数据库工作四年多了.但是一直认为数据库优化是个很高深的学问,尤其是sql优化.但是在本人工作的过程中对sql优化以及数据库优化有下面的理解,如果有错误的话,请给我留言指正.

首先,很多人提到如何优化SQL,本人一直认为不是说简单的改写SQL本身,要根据相关表的情况,比如有无index就会影响SQL性能,尤其是在表的数据笔记多,比如几百万,而返回的数据可能又比较少的情况下.当然,盲目的建index并不一定会提高性能.这个只是需要考虑的一个方面.


其次,有无在程序中绑定变量,这里有涉及到数据库解析SQL的过程.软解析已经硬解析.如果程序中无法修改,可以通过修改cursor_sharing参数来强制oracle适用软解析.

还有,就是表连接,这里主要说的是hash join,nested loop join和sort/mergejoin.

最后要说的就是排序,创建index或者order by,group by或者distinct的sql都会导致排序的操作.排序在9i之前,可以通过改变session的sort_area-size来加大排序区,9i之后是pga自动管理的.

sql优化的两条主要原则是

1.尽可能的减少磁盘访问,也就是说访问的data都在buffer中.

比如某些经常访问的小表,可以让它cache在buffer中.

2.尽可能的减少磁盘排序.磁盘排序比内存排序慢14000倍.

以上说的大概就是sql优化跟数据库优化的东西.

当然还有其他的很多数据库的选项,比如大快,小快,

db_multi_block-read的参数大小,本地表空间,

分区,都是性能优化中经常考虑到的options

所以说,性能优化不是一个project.而是一个循环的过程,

需要调整,测试,观察,在调整,在测试在观察的过程,最后取一个最佳的状态

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9408/viewspace-102399/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 创业 上班
下一篇: 2008年5月15日
请登录后发表评论 登录
全部评论

注册时间:2002-04-05

  • 博文量
    464
  • 访问量
    354856