搜索
首页 电脑/网络 软件 系统软件

Informix数据库如何利用索引提高查询效率?

Informix数据库如何利用索引提高查询效率?

全部回答

2017-07-28

45 0
    sysmaster中sysptntab表中的pf_seqscnas列显示了所进行的顺序扫描。SET EXPLAIN命令同样可以提供关于SQL语句如何访问数据库中的重要信息。
   DSS环境中的应用经常会查询出大量数据(低选择性 low selecviity),甚至整张表。  顺序扫描对于这样的查询更为适合,因为此时顺序扫描可以利用light scan。
  light scan缓冲区位于共享内存的虚拟段与驻留段无关。关于light scan,以后章节中还将详述。 建立索引的代价 虽然索引可以很大地提高高选择性查询的性能,但维护这些索引是需要付出代价的。
     以INSERT语句为例,在进行插入时系统首先将读取被插入表的索引以定位新记录关键字的位置。然后系统在将新记录写入数据页的同时还必须将新索引项写入索引节点。如果导致索引节点分裂,系统则必须多次写索引页 。
   与INSERT语句相似,DELETE语句也要求读入整个索引以定位索引节点位置,并置上删除标志。  在删除索引时还需要处理索引节点合并、整理等问题。 在执行UPDATE语句时,必须首先定位并且删除旧的关键字然后插入新的关键字。
  所以在UPDATE语句必须两次读取索引。 在实际系统中通常把索引的根节点和第一级节点读入共享内存中,但如果需要访问更低层次的索引节点则必须进行磁盘操作。   索引类型 通常建立分离索引(detached)或基于表达式的索引分片(expression based fragmented)。
  分离索引和分片索引可以使得索引的extent内页连续,因而能提高性能。而对于不分片的表来说,附加索引(attached)在建立索引时,索引页和数据页交叉存放在一起,因而会增加磁头寻找时间。   对于中、小型表应该建立分离索引。
  对于经常访问的大表应建立基于表达式的分片索引,以减少索引页的数量和提高检索速度。索引分片不宜太多,以免表达式计算开销过大。根据索引的大小,一般可以分为4片。索引分片不支持轮转法(round robin)。
  
   分离式索引与数据页分别存放在不同的数据空间中。   例如: CREATE INDEX index1 ON TABLE table_name(col1) in idxldbs;。

类似问题换一批

热点推荐

热度TOP

相关推荐
加载中...

热点搜索 换一换

电脑/网络
系统软件
硬件
电脑装机
程序设计
互联网
操作系统/系统故障
笔记本电脑
反病毒
百度
软件
软件
系统软件
多媒体软件
办公软件
网络软件
图像处理软件
系统软件
系统软件
举报
举报原因(必选):
取消确定举报