用户名:
密 码:
为何选择我们
  • 7年优质服务经验
  • 10万用户的共同选择
  • 更低的价格更好的服务
  • CNNIC四星级认证服务商
  • 拥有正规经营许可证(ICP)
  • 先进的解析技术10分钟生效
  • 6组DNS负载均衡更快更稳定
  虚拟主机域名注册-常见问题数据库问题 → 数据库问题


SQL数据库的优化小技巧
作者:
SQL 优化小Tips
1、不要让oracle做得太多
        1)避免复杂的多表关联,会导致很难优化。
        2)避免使用‘*’,输入要查询的列名,‘*’会转变成列名,通过查询数据字典来完成,耗时
        3)避免使用耗费资源的操作如 DISTINCT, UNION, MINUS, INSERTSECT, ORDER BY
              解决方法:使用EXISTS 替换 DISTINCT, 使用UNIONALL 替换 UNION
2、给优化器更明确的命令
        1)自动选择索引,如果是组合索引,只有在第一个列被where子句引用的时候,优化器才会选择该索引。
        2)避免在索引上使用函数。
        3)避免使用前置通配符
        4)避免在索引列上使用not
        5)避免在索引列上使用is null, is not null
        6)避免出现索引列自动转换。
        7)在查询时尽量少用格式转换
3、减少访问次数
        1)减少数据库的访问次数
        2)使用DECODE来减少处理时间。
        3)减少对表的查询
4、细节上的影响
        1)where子句中的连接顺序
             oracle自下而上解析where子句,返回行数少的表放后面。
        2)where子句中最好不要使用函数表达式,如果要使用的话,最好统一使用相同的函数或者表达式。
        3)任何在order by中的非索引项,都会降低查询速度。可以为非索引项,建立新的索引。避免在order by中使用表达式
        4)对于联接列“||”,oracle是不会使用索引的
        5)“%”在词首出现,oracle不会使用索引
        6)用where子句代替having子句,having只会在检索出所有的记录后,才会对记录进行过滤。where>group>having
        7)用not exists代替not in。NOT IN子句将执行一个内部的排序与合并。NOT EXISTS可以高效的利用索引。
5、用索引提高效率。大型表中使用索引特别有效率。当然索引也是有代价的,需要空间来存储,记录被修改的时候,索引需要      维护。
        1)避免在索引上使用计算
        2)用>=代替>
        3)通过>=和<=,避免使用not和<>
6、如果有其他办法不要使用子查询
7、外部连接(+)代替NOT IN
8、尽量多使用COMMIT;使用commit来释放事务所占的资源(回滚段上用于恢复数据的信息、被程序语句获得的锁、redo log              buffer中的空间,oracle为了管理上述资源的内部花费)。
9、用truncate 代替 delete。delete会存放被删除的消息,以便回滚,truncate不会保存被删除的数据。
10、计算记录条数,count(*)比count(1)快,通过索引检索,对索引列的计数是最快的。
11、字符型字段的引号,如果一个字段是char型,而且创建有索引,但在where条件中忘记加引号,就不会用到索引。
12、优化export和import,使用比较大的BUFFER.本文由—名站互联(http://idcmz.com)提供。
网站关键词: 
香港vps | vps主机 | 云主机 | 服务器租用 | 虚拟主机 |


来源:
阅读:2861
日期:2012/11/23

【 双击滚屏 】 【 推荐朋友 】 【 收藏 】 【 打印 】 【 关闭 】 【 字体: 】 
上一篇:[分享]MSSQL2000数据库还原图文教程
下一篇:[原创]分享各种最常用的服务器负载均衡技术!
  >> 相关文章
  没有相关文章。