动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Oracle教程 ]的信息

本月文章推荐
.Oracle内存结构(四)----如何获得.
.如何强制使用者在第一次登入系统.
.oracle数据库中插入特殊符号&.
.Oracle 9i 概要文件的管理.
.ORALCE: Select into VS Insert .
.一个小技巧:工资超过5000元的员.
.在Oracle9i中使用多种Block Size.
.解析MobiLink实现基于时间戳的分.
.Red Hat Enterprise Linux AS 3上.
.ORACLE使用LogMiner分析重做日志.
.在ORACLE中利用角色增强应用系统.
.Oracle认证资料.
.案例讨论:批量删除Oracle数据库.
.RMAN和EXP/IMP转移数据的实测比较.
.ORACLE常用傻瓜问题1000问全集(.
.处理Oracle中杀不掉的锁.
.影响Oracle汉字显示的字符集问题.
.DBA必须熟悉的、最有用的DBA视图.
.一条SQL语句.
.如何设置用户密码过期时间.

Oracle数据库的大表,小表与全表扫描

发表日期:2008-2-9 |


  通常对于小表,Oracle建议通过全表扫描进行数据访问,对于大表则应该通过索引以加快数据查询,当然假如查询要求返回表中大部分或者全部数据,那么全表扫描可能仍然是最好的选择。
  从V$SYSSTAT视图中,我们可以查询得到关于全表扫描的系统统计信息: 
SQL> col name for a30
SQL> select name,value from v$sysstat
  2  where name in ('table scans (short tables)','table scans (long tables)'); NAME                                  VALUE
------------------------------     ----------
table scans (short tables)            828
table scans (long tables)             101   其中table scans (short tables)指对于小表的全表扫描的此时;table scans (long tables)指对于大表的全表扫描的次数。
  从Statspack的报告中,我们也可以找到这部分信息: Instance Activity Stats for DB: CELLSTAR  Instance: ora8i  Snaps:      20 -   

Statistic                                    Total   per Second    per Trans 
--------------------------------- ---------------- ------------ ------------ 
。。。。。。
table scan blocks gotten                38,228,349         37.0         26.9 
table scan rows gotten                 546,452,583        528.9        383.8 
table scans (direct read)                    5,784          0.0          0.0 
table scans (long tables)                    5,990          0.0          0.0 
table scans (rowid ranges)                   5,850          0.0          0.0 
table scans (short tables)               1,185,275          1.2           0.8 
  通常,假如一个数据库的table scans (long tables)过多,那么db file scattered read等待事件可能同样非常显著,和以上数据来自同一个report的Top5等待事件就是如此: Top 5 Wait Events    
~~~~~~~~~~~~~~~~~                                    Wait     % Total
Event             Waits  Time (cs)   Wt Time
-------------------------------------------- ------------ ------------ -------
log file parallel write                         1,436,993    1,102,188   10.80
log buffer space                                   16,698      873,203    8.56
log file sync                                   1,413,374      654,587    6.42
control file parallel write                       329,777      510,078    5.00
db file scattered read                            425,578      132,537    1.30   数据库内部,很多信息和现象都是紧密相关的,只要我们加深对于数据库的了解,在优化和诊断数据库问题时就能够得心应手。   Oracle通过一个内部参数_small_table_threshold来定义大表和小表的界限。缺省的该参数等于2%的Buffer数量,假如表的大小小于该参数定义,Oracle认为该表为小表,否则Oracle认为该表为大表。
  我们看一下Oracle9iR2中的情况: SQL> @@GetParDescrb.sql
Enter value for par: small
old   6:    AND x.ksppinm LIKE '%&par%'
new   6:    AND x.ksppinm LIKE '%small%' NAME                    VALUE                DESCRIB
------------------------------ -------------------- ------------------------------------------------------------
_small_table_threshold         200                  threshold level of table size for direct reads
  以上数据库中,200正好约为Buffer数量的2%:
SQL> show parameter db_cache_size NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_cache_size                        big integer 83886080
SQL> select (83886080/8192)*2/100 from dual; (83886080/8192)*2/100
---------------------
                204.8   所以要区分大小表(Long/Short)是因为全表扫描可能引起Buffer Cache的抖动,缺省的大表的全表扫描会被置于LRU的末端,以期尽快老化,减少Buffer的占用。从Oracle8i开始,Oracle的多缓冲池治理技术(Default/Keep/Recycle池)给了我们另外一个选择,对于不同大小、不同使用频率的数据表,从建表之初就可以指定其存储Buffer,以使得内存使用更加有效。
上一篇:减少临时表使用空间的几种方法 人气:424
下一篇:获得Export/Import的trace文件 人气:472
浏览全部Oracle教程的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-9-7 站长中国企业(公司)网站系统 v4.2
2008-9-7 PBDigg v2.0 Build 20080821
2008-9-7 玩玩小游戏FLASH系统 v2.1
2008-9-7 522QQ在线电视直播程序 v1.1
2008-9-7 Pcook cms 文章管理系统 (老Y CM
2008-9-7 仿代码小说小偷系统 v1.0
2008-9-7 百度一搜集成搜索管理系统
2008-9-7 小贤统计器 v1.0
2008-9-7 UCenter Home-中秋搏饼插件 v1.2
2008-9-7 iBlacklist通话黑名单汉化破解补
2008-9-7 EndlessWalls无尽壁纸 v1.0.4破解
2008-9-7 Dynolicious车载测量仪v1.1破解版
2008-9-7 iVoodoo巫毒娃娃1.0.1破解版
2008-9-7 iWallpape精品墙纸1.2破解版
2008-9-7 iChillout自然音效工具1.1破解版
2008-9-7 Todo计划提醒1.2破解版
2008-9-7 allRadio电台集合1.01破解版
2008-9-7 My Money个人理财1.0破解版
  发表评论
姓 名: 验证码:
内 容:
站长工具:网站收录查询 | Google PR查询 | ALEXA排名查询 | CSS在线编辑器 | 广告代码 | Html转换js | js/vbs加密 | md5加密 | 进制转换
实用工具:汉字翻译拼音 | 符号对照表 | 个税计算 | 经典小工具 | 汉字简繁转换 | 普通单位换算 | 公制单位换算 | 生辰老黄历 | 国内电话区号 国家代码与域名缩写 | 文字加密解密 | 健康查询 | 万年历 | 汉字横竖排版 | 手机号码查询 | 计算器 | ip搜索
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号