易截截图软件、单文件、免安装、纯绿色、仅160KB

ORACLE索引介绍与高性能SQL优化

什么是索引
  
  索引是建立在表的一列或多个列上的辅助对象,目的是加快访问表中的数据;
  
  Oracle存储索引的数据结构是B*树,位图索引也是如此,只不过是叶子节点不同B*数索引;
  
  索引由根节点、分支节点和叶子节点组成,上级索引块包含下级索引块的索引数据,叶节点包含索引数据和确定行实际位置的rowid。
  
使用索引的目的
  加快查询速度
  减少I/O操作
  消除磁盘排序
  
何时使用索引
  查询返回的记录数
  排序表<40%
  非排序表 <7%
  表的碎片较多(频繁增加、删除)
  
索引的种类
  非唯一索引(最常用)
  唯一索引
  位图索引
  局部有前缀分区索引
  局部无前缀分区索引
  全局有前缀分区索引
  散列分区索引
  基于函数的索引
  
管理索引的准则
  在表中插入数据后创建索引 。在用SQL*Loader或import工具插入或装载数据后,建立索引比较有效;
  
索引正确的表和列
  
  。经常检索排序大表中40%或非排序表7%的行,建议建索引;
  。为了改善多表关联,索引列用于联结;
  。列中的值相对比较唯一;
  。取值范围(大:B*树索引,小:位图索引);
  。Date型列一般适合基于函数的索引;
  。列中有许多空值,不适合建立索引
  
为性能而安排索引列
  
  。经常一起使用多个字段检索记录,组合索引比单索引更有效;
  。把最常用的列放在最前面,例:dx_groupid_serv_id(groupid,serv_id),在where条件中使用groupid或groupid,serv_id,查询将使用索引,若仅用到serv_id字段,则索引无效;
  。合并/拆分不必要的索引。
  
限制每个表索引的数量
  
  。一个表可以有几百个索引(你会这样做吗?),但是对于频繁插入和更新表,索引越多系统CPU,I/O负担就越重;
  。建议每张表不超过5个索引。
  
删除不再需要的索引
  
  。索引无效,集中表现在该使用基于函数的索引或位图索引,而使用了B*树索引;
  。应用中的查询不使用索引;
  。重建索引之前必须先删除索引,若用alter index … rebuild重建索引,则不必删除索引。
  
索引数据块空间使用
  
  。创建索引时指定表空间,特别是在建立主键时,应明确指定表空间;
  。合理设定pctfress,注意:不能给索引指定pc


相关文档:

Oracle数据库分区表操作方法


Oracle数据库分区表操作方法
(2009-10-19 16:20:45)
标签:
杂谈
 
摘要:在大量业务数据处理的项目中,能考虑使用分区表来提高应用系统的性能并方便数据管理,本文周详介绍了分区表的使用。
  在大型的企业应用或企业级的数据库应用中,要处理的数据量通常能达到几十到几百GB,有的甚至能到TB级。虽然存储 ......

oracle实例名、数据库名与服务名的理解 转贴蔡俊

    实例名(instance_name),一个用于数据库和操作系统之间通信的标志,数据库和操作系统之间要进行交互用的就是实例名,实例名可以和数据库名相同,一会再说数据库名,一般一个数据库名对应一个实例名,一对一关系,但在oracle的集群应用中,数据库名和实例名就是一对多的关系了。
  查看实例名:sele ......

SQL日期时间不能早于1753年

SQL日期时间不能早于1753年
   
1.公元元年的第一天,也就是公元1年1月1日,那天是星期六。
    2.
现行的公历是格利戈里历法,这个历法并不是连续的,中间缺少了11天。1752年9月2日的后一天并不是9月3日,而是9月14日。也就是说,从1752年9月3日到9月13日的11天并不存在。
 &nb ......

DataGridView的增加,修改,删除命令指定SQL语句

 '保存数据
    Private Sub Save()
        Try
            If MsgBox("确定要保存所修改的数据吗?", MsgBoxStyle.Question Or MsgBoxStyle.DefaultButton2 Or MsgBoxStyle.YesNo, "系统提示") = Ms ......

sql server 连接池

SQL Server 加载驱动和url的语句则为
驱动包为com.microsoft.sqlserver.jdbc.SQLServerDriver
String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
String dbURL = "jdbc:sqlserver://localhost:1433; DatabaseName=sample";
驱动包为com.microsoft.jdbc.sqlserver.SQLServerDriver时
String driver ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号