Chinaunix首页 | 论坛 | 博客
  • 博客访问: 427384
  • 博文数量: 239
  • 博客积分: 8010
  • 博客等级: 中将
  • 技术积分: 2431
  • 用 户 组: 普通用户
  • 注册时间: 2008-06-02 21:12
文章分类
文章存档

2008年(239)

我的朋友

分类:

2008-06-17 23:48:34

了解优化器处理过程的意义

SQL语言是用户访问数据库数据的通用接口。要达到同样的目的,可以有很多种不同的SQL语句书写方式。不同的SQL语句,尽管会产生相同的结果,但其执行过程、执行效率将会有明显的区别。

例如,要从员工表employee中返回所有员工的姓名,使用下面的SQL语句:

SELECT *

FROM employee

优化器将选用表扫描作为执行方式,通过扫描整个表返回结果,不管员工表employee上是否存在索引。而使用下面的SQL语句:

SELECT empy_name

FROM employee

如果列empy_name上存在索引,优化器将选用索引扫描作为该语句的执行方式。这种方式被称为索引覆盖。由于索引中每条记录包含较少的字段,一个索引页包含更多的记录,使用索引扫描,将使用更少的磁盘I/O操作。

对程序员、数据库管理员来说,清楚优化器对SQL语句的优化处理过程,能够大体上判断出一个SQL语句的执行计划,不但有助于写出好的、效率高的SQL语句,而且能够找出引起系统性能瓶颈的SQL语句,从而保证系统的正常、稳定运行。

阅读(565) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~