1. 1、实验目的

在上一轮的实验中,oracle 11g r2版本下,在87县市实验数据的基础上,比较了分表与分区的效率,得出了分区+全局索引效率较高的结论(见上一篇博客)。不过我们尚未比较过不同的分区粒度有什么效率差异。这一轮的实验,着重于以下几个目的:

  1. 使实验场景更接近真实使用场景——使用oracle 12c,用更大的数据量进行实验。
  2. 对比分析按县分区与按省分区的查询效率。
  3. 继续比较本地空间索引与全局空间索引在不同算法下的查询效率。
  1. 2、实验数据

实验数据为全国2531个区县,要素总数为46982394。根据不同的数据组织+索引形式,形成了3个不同的实验主体:

  • 按县分区+本地空间索引
  • 按县分区+全局空间索引
  • 按省分区+本地空间索引
  1. 3、实验方法

在1:500、1:2000、1:10000、1:25000、1:50000、1:100000比例尺下,随机从全国范围内选择3个样本范围,作为空间查询时的查询范围。将6*3个样本范围分别与3个实验主体进行空间查询运算,记录每次查询的耗时。

空间查询所用的算法仍然同于上一篇博客《Oracle Spatial分区应用研究之一:分表与分区性能对比》中介绍的、适用于分区的3种算法,即part_query、part_query2、part_query3。同时,本次实验中,还将通过并行框架对3种算法进行衍生,得到另外3种算法,标记为part_query_p、part_query2_p、part_query3_p。

因此,对每一个实验主体来说,在每一种比例尺样本下均需要用6种算法来进行查询运算。另外,因为算法执行有先后顺序,后执行的算法由于缓存的原因,会比先执行的算法有优势。为了尽量避免这种干扰,会将算法以不同的执行顺序进行两组实验。

  1. 4、实验结果

    1. 4.1 第一组实验结果

第一组实验,其算法执行顺序为:

Part_query→Part_query2→Part_query3→Part_query_p→Part_query2_p→Part_query3_p

执行结果如下图:

说明:表中蓝色区域为按县分区+本地空间索引在不同比例尺、不同算法下的查询效率;同理,红色区域代表按县分区+全局空间索引,绿色区域代表按省分区+本地空间索引。黄色斑块表示该行的最小值。

根据黄色斑块坐落的位置,可知:

  1. 在所有比例尺下,按省分区+本地空间索引效率最高,所有耗时最小的查询均发生在该区域。
  2. Part_query_p算法的查询效率最高,18个实验样本,耗时最小命中17次。
  1. 4.2 第二组实验结果

第二组实验,其算法执行顺序为:

Part_query_p→Part_query2_p→Part_query3_p→Part_query→Part_query2→Part_query3

执行结果如下图:

根据黄色斑块坐落的位置,可知:

  1. 在所有比例尺下,按省分区+本地空间索引效率最高,所有耗时最小的查询均发生在该区域。
  2. Part_query算法的查询效率最高,18个实验样本,耗时最小命中18次。
  1. 4.3 补充说明

两种实验,分别得出Part_query_p与Part_query算法效率最高的结论。这看似矛盾,实际上正是上文提到的,当算法执行有先后顺序时,会受到缓存的原因。那么对于Part_query_p与Part_query,谁的效率更高呢?

在两组实验中,Part_query_p与Part_query分别是最先执行的算法。分别从两组实验结果中取出Part_query_p与Part_query的实验数据,就可几乎完全排除缓存的影响。

两种算法,各命中9次。说明效率相当。但很明显的是,part_query在大比例尺下(大于1:25000)命中率较高;part_query_p在小比例尺下命中率较高。这与我们的认知一致,即在大任务作业时,并行才会体现优势。

  1. 5、实验结论

    1. Oracle 12c环境下,在要素量为四千万级别时,按省分区+本地空间索引效率较高。
    2. 采用按省分区+本地空间数据组织方式时,Part_query算法较为高效。

(未完待续)

Oracle Spatial分区应用研究之二:按县分区与按省分区对比测试报告的更多相关文章

  1. Oracle Spatial分区应用研究之七:同等分区粒度下全局索引优于分区索引的原因分析

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

  2. Oracle Spatial分区应用研究之六:全局空间索引下按县分区与按省分区效率差异原因分析

    1.实验结论 全局空间索引下,不同分区粒度之所有效率会有不同,差异并不在于SDO_FILTER操作本身,而在于对于数据字典表的访问次数上: 分区越多.表上的lob column越多,对数据字典表的访问 ...

  3. Oracle Spatial分区应用研究之三:县市省不同分区粒度的效率比较

    在<Oracle Spatial分区应用研究之一:分区与分表查询性能对比>中已经说明:按县分区+全局空间索引效率要优于按县分区+本地空间索引,因此在该实验报告中,将不再考虑按县分区+本地空 ...

  4. Oracle Spatial分区应用研究之五:不同分区粒度+本地空间索引效率对比

    1.实验目的 若使用本地空间索引,不同分区粒度将产生不同索引组织,其索引分区个数.大小.R-TREE树结构均不相同.那么,在什么分区粒度下的本地空间索引效率较高呢? 2实验数据 实验数据为全国2531 ...

  5. Oracle Spatial中的空间索引

    转自cryolite原文 Oracle Spatial中的空间索引 Oracle Spatial可对空间数据进行R-tree索引,每个空间图层(Spatial Layer)的空间索引元信息都可以在US ...

  6. Oracle Spatial 中的弧段及弧相关拓扑错误

    1.报告说明 此报告用于验证下列问题: ORACLE SPATIAL 0.05m的最小拓扑容差值是否可以被修改 原始数据通过ARCGIS入库数据精度是否有损失 修改ORACLE SPATIAL图层的最 ...

  7. Oracle Spatial中SDO_Geometry详细说明[转]

    在ArcGIS中通过SDE存储空间数据到Oracle中有多种存储方式,分别有:二进制Long Raw .ESRI的ST_Geometry以及基于Oracle Spatial的SDO_Geometry等 ...

  8. 细说Oracle数据库与操作系统存储管理二三事

    在上大学的时候,学习操作系统感觉特别枯燥,都是些条条框框的知识点,感觉和实际应用的关联不大.发现越是工作以后,在工作中越想深入了解,发现操作系统知识越发重要.在实践中结合理论还是不错的一种学习方法.自 ...

  9. Oracle数据库基础入门《二》Oracle内存结构

    Oracle数据库基础入门<二>Oracle内存结构 Oracle 的内存由系统全局区(System Global Area,简称 SGA)和程序全局区(Program Global Ar ...

随机推荐

  1. adb命令过滤w级别日志命令

    adb logcat *:W 过滤某关键字日志 adb logcat *:W | find "woyihome" 过滤某关键字日志,生成txt文档 adb logcat *:W | ...

  2. MySql常用函数大全

    MySql常用函数大全 MySQL数据库中提供了很丰富的函数.MySQL函数包括数学函数.字符串函数.日期和时间函数.条件判断函数.系统信息函数.加密函数.格式化函数等.通过这些函数,可以简化用户的操 ...

  3. 题解 UVa11752

    题目大意 输出所有小于 \(2^{64}-1\) 的正整数 \(n\), 使得 \(\exists p, q, a, b\in \mathbb{N+}, p\neq q\rightarrow a^p= ...

  4. make 命令出现:"make:*** No targets specified and no makefile found.Stop."

    我们在Linux 安装包的时候,使用make 命令出现:"make:*** No targets specified and no makefile found.Stop."这样的 ...

  5. junit4的初级用法

    junit4初级用法: 一:各个标签的意思 1.@Test用来标注测试函数 2.@Before用来标注此函数在每次测试函数运行之前运行(每执行一个@Test之前都要运行一遍@Before) 3.@Af ...

  6. graphql-inspector graphql schema比较&&文档校验&&查找破坏性变动工具

    graphql-inspector 是一个方便的graphql 周边工具,可以加速graphql 应该的开发,同时可以帮助我们排查问题 包含以下特性: 进行schema 的比较 文档校验(通过sche ...

  7. 洛谷 P2949 [USACO09OPEN]工作调度Work Scheduling 题解

    P2949 [USACO09OPEN]工作调度Work Scheduling 题目描述 Farmer John has so very many jobs to do! In order to run ...

  8. 定量变量和定性变量的转换(Transform of Quantitative & Qualitative Variables)

    定量变量(Quantitative Variables):也称为数值型变量(Numerical Variables),可以用连续值或离散值表示.比如:气温(连续值),学生人数(离散值). 为什么要对定 ...

  9. 蚂蚁金服开源机器学习工具SQLFlow,机器学习比SQL还简单

    来自:开源最前线(ID:OpenSourceTop) 综合自:AI前线.https://github.com/sql-machine-learning/sqlflow 5月6日,蚂蚁金服副 CTO 胡 ...

  10. [Beta]第七次 Scrum Meeting

    [Beta]第七次 Scrum Meeting 写在前面 会议时间 会议时长 会议地点 2019/5/17 22:00 10min 大运村公寓6F寝室 附Github仓库:WEDO 例会照片 工作情况 ...