1、实验结论

  1. 同等分区粒度下,使用分区空间索引进行空间查询,比使用全局空间索引进行查询,对数据字典表的访问次数更多。假设分区数为X,则大概多3X次访问。具体说明见6实验结论。

2、实验目的

在之前的测试中,发现这样一个现象:同等分区粒度下,分区空间索引效率不如全局空间索引。可是,深层次的原因是什么呢?

3、实验方法

分别以按县分区、按省分区组织数据,按县分区表共有2531个分区,按省分区表共有43个分区。数据内容为2531个区县,共46982394条要素。分别在两个分区表上创建本地空间索引。

开启10046事件,跟踪SDO_FILTER操作。使用tkpof分析trc文件中耗时最多的SQL,对根据绑定变量的值分析不同SQL(主要是对数据字典的递归查询)查询的数据内容。比较在使用分区索引时所查询的数据字典内容,与在使用全局索引时查询的数据字典内容。

4、实验结果

在使用分区空间索引时,按县分区与按省分区对数据字典的访问次数及返回记录数如下:

  1. Seg$

查询内容包括LOB INDEX PARTITION、LOB PARTITION、TABLE PARTITION、少量sys和mdsys用户下的表、其它表。

以按县分区表为例,包括:

INDEX PARTITION : 2531 * 3 = 7593 (此处不包括分区空间索引,仅包括LOB INDEX PARTITION)

LOB PARTITION : 2531 * 3 = 7593

TABLE PARTITION:2531

  1. Obj$

查询内容包括LOB PARTITION、SPATIAL INDEX PARTITION、相关的TABLE PARTITION

以按省分区表分为,包括:

LOB PARTITION : 43 * 3 =129

INDEX PARTITION : 43 (此处包括SPATIAL INDEX PARTITION ,不包括LOB INDEX PARTITION)

TABLE PARTITION : (仅包括与查询范围相关的分区,可忽略不计)

  1. Lobfrag$

查询内容与全局空间索引下一致。

  1. Indpart$

查询内容包括INDEX PARTITION,包括LOB INDEX PARTITON 以及 SPATIAL INDEX PARTITION。

以按省分区表为例,包括:

INDEX PARTITION : 43 * 4 =172

  1. Obj$(2)

查询内容包括LOB PARTITION、SPATIAL INDEX PARTITION,少量其它表。

以按省分区表为例,包括:

LOB PARTITION : 43 * 3 =129

INDEX PARTITION : 43 (此处包括SPATIAL INDEX PARTITION ,不包括LOB INDEX PARTITION)

其它:82个sys和mdsys用户下的表、以及test用户下的其他一些表,可忽略。

  1. Tabpart$

    查询内容全局空间索引下一致。

5、实验结论

结合3实验结果中的说明,假设分区数以X表示,lob column个数以Y表示,在使用分区空间索引进行查询时,不同字典表的访问次数见下表:

数据字典表

访问次数

Seg$

(1+2Y)*X

Lobfrag$

XY

Obj$

(1+Y)*X

Indpart$

(1+Y)*X

Obj$(2)

(1+Y)*X

Tabpart$

X

若已经获知对各数据字典表的平均访问时间,甚至可以估算查询耗时。在每例中seg$ 、lobfrag$ 、obj$ 、indpart$、obj$(2) 、tabpart$,各数据字典表的平均访问时间约为100us、240us、50us、150us、180us、120us。因此可估算时间为:

Elapsed all= 100*(1+2Y)*X+240XY+50*(1+Y)*X+150*(1+Y)X+180*(1+Y)*X+120X

=X(820Y+600)

与全局索引X(820Y+220)相比,查询数据字典多耗时380X(单位是us)。

最新文章

  1. SVN版本控制系统学习(中文配置)
  2. 银行卡BIN: Bank Identification Number
  3. 从数据包谈如何封杀P2SP类软件
  4. Java5、Java6、Java7的新特性
  5. [HDOJ1232]畅通工程
  6. CUDA中修饰符的解释
  7. Invalidate、RedrawWindow与UpdateWindow
  8. LeeCode-Merge Sorted Array
  9. JS中通过call方法实现继承
  10. C# IIS7.0+ Web.Config 配置Session过期时间
  11. Identity Server 4登陆后返回登录前页面
  12. AFNetworking源码浅析
  13. racle SQL性能优化
  14. TestNg 3.忽略测试
  15. tomcat启动闪退问题
  16. VSTO:使用C#开发Excel、Word【14】
  17. 总结Hibernate4.1+版本与Hibernate3.3+版本区别
  18. [LeetCode&Python] Problem 21. Merge Two Sorted Lists
  19. [转]session和cookie的区别和联系,session的生命周期,多个服务部署时session管理
  20. Shell 基本语法

热门文章

  1. Flutter在iOS上的表现就是一坨屎
  2. 硬币游戏1——打表&&记忆化搜索
  3. keepalived是什么及作用?
  4. 上传OSS报错
  5. itertools 高效的循环
  6. json-server模拟服务器API
  7. 网卡可以绑定cpu提高吞吐量
  8. C复习---动态内存分配
  9. [Beta]Scrum Meeting#8
  10. python windows下安装pip及rarfile