论文部分内容阅读
随着地理信息系统(GIS)、多媒体信息系统(MIS)和医疗信息系统(HIS)等在各自领域广泛和深入的应用,人们对空间数据库的设计与实现提出了越来越高的要求,特别是高效和灵活的查询处理能力成为关注的焦点。空间数据和空间操作的复杂性会带来高昂的空间操作代价,而使用在传统类型操作上的方法很难有效地评估空间操作的代价,为基于代价的查询优化带来了困难。
查询优化器是空间数据库中的重要组成部分,它负责从空间查询所有的候选计划中择出最优者作为最终的执行计划,是提高数据库查询处理性能的关键。本文在对现有空间数据库和查询优化器研究的总结和分析基础上,设计并实现了空间数据库PostSISP的查询优化器。
空间数据库PostSISP是基于开源的对象关系数据库PostgreSQL的空间扩展,它为空间类型(sdbgeometry)提供了与系统自带类型同样的支持机制支持丰富的空间操作和空间查询类型;同时,PostgreSQL开源的特点为系统深入的扩展提供了可能。本文的主要工作是设计并实现了空间数据库PostSISP的查询优化器,它不仅是对系统原有优化器的空间扩展,同时也关注于提高优化器的“自管理(self-management)”能力。本文的研究内容和主要成果包括以下几个方面:
●研究空间操作代价的评估方法
空间操作的代价评估涉及到空间选择性评估和空间操作代价评估,由于空间查询大多采用“过滤-精炼”两阶段处理,空间操作的代价包括索引代价和操作代价两部分。
●本文对比了常用的空间选择性评估方法,综合评估效果、性能和可扩展性等方面,设计并实现了等面积划分的二维直方图,评估空间选择性因子。
●空间操作中索引的代价主要来自访问索引节点的I/O代价,使用基于密度的代价模型评估。在PostSISP的查询优化器中,提供了基于R树索引的选择、连接、k最近邻居和k最近对查询的代价模型。
●对于复杂的空间操作,查询优化器需要考虑它高昂的计算代价。空间操作的代价受到各种因素不同程度的影响,本文的设计中,在系统中加入专门评估空间操作代价的查询反馈器,它是一个渐进式的评估方法,具有很好的灵活性和自适应性。同时,通过详细的实验分析,找出了影响空间操作代价的主要因素:对象个数和平均复杂度(即,对象的平均顶点个数),以及它们与操作代价的关系。系统将实验结果作为先验知识加入查询反馈器,改善了反馈初始阶段的评估效果,提高了它的可用性。
●研究空间统计信息的收集方法
为了提高评估操作代价的效率,成熟的数据库系统通常将评估模型建立在统计信息之上。空间数据库中的统计信息需要尽可能详尽地反映数据在空间中的分布和密度,它直接影响着评估模型的效果。本文提出了一种新的针对空间数据的统计信息收集方法——基于R树的空间统计信息收集方法,它充分利用了R树对空间数据很好地组织,兼顾了收集的效率和用于评估的准确性,同时具有很好的灵活性。此外,考虑数据更新会使原有统计信息过时,本文的空间统计信息收集方法中提供了自动更新的机制,通过数据库对R树索引的维护触发统计信息的更新,使查询优化器对于数据更新具有更好的适应能力。
●设计并实现了“空间”和“非空间”一体的查询优化器
空间数据库PostSISP的查询优化器集成了对空间数据和操作的查询优化方法和PostgreSQL已有的查询优化器,实现了对“空间”和“非空间”一体的查询优化。包括:利用数据库提供的扩展接口实现了在空间类型上的选择性评估和空间索引上的代价评估模型,利用PostgreSQL开源的特点,在查询优化器中新增了查询反馈组件和统计信息收集方法,使优化器能够更有效和快速地评估空间查询代价。文中通过实验证明了这些组件的有效性和基于代价的“空间”和“非空间”一体的查询优化的优势。优化组件通过函数或触发器的形式被原有的数据库系统调用,达到了无缝的集成,实现了对“空间”和“非空间”查询一体的优化。