网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > ORACLE > 正文
Oracle 10g sql优化之索引篇
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/12/01
下载{$ArticleTitle}原创论文样式

  网站速度变慢时,你会考虑到什么解决方法?笔者最近公司网站的速度一起很不理想,文章页面基本都要 10s 以上才能打开。数据库用的是 Oracle 10g Express Edtion,存放文章的表超过了 10 万数据量,类似执行一个 select count(1) from res where class_id=1 这样的语句就经常在 10s 以上。然而,今天我在 class_id 上加了一个索引,这条语句的执行时间就几乎变成了 0s。效果之显著,完全出乎我的预料。下面是Oracle 10g sql优化相关的总结:

  1. 监控 select 语句

  (“数据库主页”从开始菜单里“Oracle Database 10g Express Edition”的“转至数据库主页”进入)

  进入“数据库主页>管理>数据库监视器>会话>SQL”页面,在“搜索”里输入“select”,点击“开始”。这样就可以看到最近执行的 select 语句。点击“SQL”列里的 SQL 语句链接,查看执行情况。其中,“CPU时间”即为执行所用的时间,“已处理的行数”为查询结果的行数。下面的“SQL文本”是 SQL 语句的完整内容,“索引”区域显示该查询使用了哪个索引。

  找到“CUP时间”超过 1 秒的查询,看是否需要添加索引。

  2. 添加索引

  进入“数据库主页>对象浏览器”页面,在右边偏上方有一个“创建”按钮。点击“创建” 按钮,在出现的菜单里选择“索引”,然后输入“表名”,“索引类型”使用“常规”,再点击“下一步”。

  在新出现的页面,输入索引的名称和索引列。如果是不唯一的字段,最好将“单性值”设置为唯一,可能有助提高检索速度。再点击“下一步”,点击“完成”按钮。

  照我的理解,创建索引时选择什么索引列,应该是由 select 语句的 where 部分决定的。比如 where id=1 ,只需选择 id 一个索引列;如果是 where id=1 and name=2 ,则需要选择 id 和 name 两个索引列来创建索引。只对主键进行索引,因为是唯一的,所以将“单性值”设置为“唯一”。

  数据量比较大的表,都应在其主键上创建一个索引,其它需要的另加。

  order by 语句里的字段,一般无法使用索引,所以,尽量在 order by 之前将查询结果的行数缩到最少。

  要提高 order by 语句的执行效率,可适当增加 sort_area_size 的值( 10240000=10m ):

alter system set sort_area_size=10240000 scope=spfile; 

  这样就实现了Oracle 10g sql优化的索引优化。

  附一:为表添加主键

  进入“数据库主页>对象浏览器”页面,在左则选择要创建主键的表。在右边出现的表页面中,点击“约束条件”->“创建”,“约束条件类型”设置为“主键”,其它自行填写。

  附二:Oracle 配置参数查询语句

SELECT NAME,VALUE  
FROM v$parameter  
WHERE NAME IN 
(’sga_max_size’,''db_cache_size’,  
’shared_pool_size’,’shared_pool_reserved_size’,''large_pool_size’,''Java_pool_size’,  
‘db_block_size’,''db_block_buffers’,''log_buffer’,’sort_area_size’,’sort_area_retained_size’,  
‘hash_area_size’,’sessions’,''open_cursors’  
)ORDER BY NAME; 

  附三:其它参数设置命令

alter system set sga_max_size=700m scope=spfile;  
 
alter system set sga_target=700m scope=spfile;  

(责任编辑:admin)

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号