当前位置:首页 > Library > 正文
+3°

Oracle Sort and Bloom Filter – Fuyuncat

感谢ACOUG成员黄玮投递文章《Oracle的排序以及Bloom Filter》,以下是文章概要及下载链接。

1. Oracle的排序
本节主要介绍Oracle的排序算法与跟踪。

1.1 排序(sort)算法
在Oracle的排序过程中,首先将获取到的数据放入一块私有内存区(Sort Area)中进行排序。如果需要排序的数据太大,无法一次在Sort Area中完成全部数据的排序,就会将Sort Area中排好序的数据直接写入(Direct Write,数据不被cache)临时空间作为一个数据集存在。当所有数据都在内存中排过序并写入了磁盘后,就会将磁盘上的数据集进行合并排序 (Merge Sort)。合并排序是一个递归过程,直到所有数据集都被合入一个数据集,排序才算完成。

1.2 初始化运行(Initial Runs)
数据最初在Sort Area中排序的过程被称为初始化运行。Sort Area的80~90%的空间需要被用于读缓冲,其他空间则被用于写缓冲。如果我们知道有多少数据(可以通过需要排序的记录数、记录平均长度已经数据块大 小估算出来)需要进行排序,那么就可以用下面的公式来估算初始化运行的次数(也就是会产生多少个初始数据集):

[sourcecode language=”sql” light=”true”]Initial Runs = CEIL(SORT_DATA_BLOKCS / ROUND(0.8*SORT_AREA_SIZE/BLOCK_SIZE))[/sourcecode]

查看全文请下载PDF文档 – ACOUG-OracleSortAndBloomFilter-Fuyuncat

本文章由 Kamus 于2010年04月17日发布在Library分类下,
转载请注明:Oracle Sort and Bloom Filter – Fuyuncat-中国 Oracle 用户组

好文章就要一起分享!

更多

目前共有3条留言