通过过滤方法操作的聚合/分组的硬件实现的制作方法

文档序号:8367470阅读:194来源:国知局
通过过滤方法操作的聚合/分组的硬件实现的制作方法
【技术领域】
[0001] 本公开一般涉及用于执行数据库操作的技术,并且更具体地涉及用于执行过滤和 创建操作的技术。
【背景技术】
[0002] 本节中描述的方法是可以进行的方法,但不必是先前已被构思或者进行的方法。 因此,除非另外指出,不应假定本节中描述的任何方法仅仅由于包含在本节中就将他们视 为现有技术。
[0003] 数据库包括存储在诸如硬盘集合等的一个或多个存储设备上的元数据和数据。依 赖于实施方式,可以根据各种数据模型逻辑上组织数据库内的数据。例如,关系数据库系统 通常在表的集合中存储数据,其中每个表被组织成行和列的集合。大多数情况下,每个行代 表不同的对象,并且每个列代表不同的属性。但是,其它数据模型也可以用于组织数据。
[0004] 为了访问并操作数据库中的数据,数据库管理系统(DBMS)通常被配置为接收并 处理各种数据库命令,数据库命令通常被称为查询。在许多实施方式中,DBMS支持符合诸如 结构化查询语言(SQL)等的数据操作语言(DML)的查询。当DBMS接收查询时,DBMS执行 由查询指定的一个或多个数据库操作并且可以输出查询结果。示例数据库操作包括过滤、 创建、聚合、以及分组操作,其在下面更详细地描述。
[0005] 过滤和创建操作
[0006] 过滤和创建操作是从某些行的某些列输出值的数据库操作,其中行基于被称为谓 词的某些标准被过滤。在SQL中,创建和过滤操作使用SELECT和WHERE语法。具体地, SELECT语句指示创建什么数据(即从哪些列检索输出值)以及WHERE子句包括谓词以过滤 输出(即指示从哪些行检索输出值)。用于WHERE子句的运算符的示例包括但不限于下面 表1所示的运算符。
[0007]
【主权项】
1. 一种方法,包括: 接收用于聚合按第一列分组的数据的请求; 响应于接收所述请求,将来自于第一列的值加载到输入高速缓存中; 其中加载到输入高速缓存中的值包括来自所述第一列的、来自行集合的值; 利用逻辑编程过滤单元W执行在W下项之间的比较 来自第一行的所述第一列的特定值,和 所述行集合中的多个行的所述第一列中的值; 基于所述特定值与所述多个行的第一列中的值的比较,生成识别所述多个行内的、在 第一列中具有匹配所述特定值的值的行的谓词结果;W及 通过聚合由所述谓词结果识别的每个行的第二列中的值生成用于第二列的聚合值; 其中所述方法由一个或多个计算设备执行。
2. 如权利要求1所述的方法, 其中所述谓词结果是位向量并且所述位向量的每个位对应于行集合中的对应行; 其中生成所述谓词结果包括: 当对应行的值匹配所述特定值时,将位向量的位设置到第一位值; 当对应行的值不匹配所述特定值时,将位向量的位设置到第二位值。
3. 如权利要求2所述的方法,进一步其中: 其中所述位向量是在位向量集合中的第一位向量;并且 所述方法还包括: 从所述行集合中选择第二行,对于所述第二行,对应位还未被设置为所述位向量集合 中的任何位向量中的第一位值; 利用逻辑编程过滤单元W执行在W下项之间的比较 来自于第二行的第一列的第二值,和 所述行集合中的第二多个行的第一列中的值; 基于所述第二值与所述第二多个行的第一列中的值的比较,生成识别所述第二多个行 内的、在第一列中具有匹配所述第二值的值的行的第二位向量;W及 通过聚合由所述第二位向量识别的每个行的第二列中的值生成用于第二列的第二聚 合值。
4. 如权利要求3所述的方法,其中所述第二多个其它行是其对应位还未被设置为位向 量集合中的任何位向量中的第一位值的行。
5. 如权利要求3所述的方法,其中确定对应位是否还未被设置为位向量集合中的任何 位向量中的第一位值包括;对位向量集合中的一个或多个位向量执行按位NOT操作或按位 X0R操作中的至少一个W生成位向量掩码,所述位向量掩码识别其对应位还未被设置为第 一位值的行。
6. 如权利要求1所述的方法,还包括: 编程聚合单元W执行在请求中指定的聚合操作; 其中为由所述谓词结果识别的每个行聚合第二列的值包括: 使得聚合单元对第二列的值应用聚合操作。
7. 如权利要求1所述的方法,还包括输出结果,所述结果包括: 由所述特定值标识的组名;w及 通过为由所述谓词结果识别的每个行聚合第二列的值所生成的聚合值。
8. 如权利要求1所述的方法,还包括: 将所述谓词结果转换成存储器地址集合; 其中存储器地址集合中的每个存储器地址识别作为第一组的一部分的行的存储器位 置。
9. 一种存储指令的非瞬时计算机可读介质,所述指令在由一个或多个处理器执行时使 得一个或多个计算设备执行操作,所述操作包括: 接收用于聚合按第一列分组的数据的请求; 响应于接收所述请求,将来自于第一列的值加载到输入高速缓存中; 其中加载到输入高速缓存中的值包括来自所述第一列的、来自行集合的值; 利用逻辑编程过滤单元W执行在W下项之间的比较 来自第一行的所述第一列的特定值,和 所述行集合中的多个行的所述第一列中的值; 基于所述特定值与所述多个行的第一列中的值的比较,生成识别所述多个行内的、在 第一列中具有匹配所述特定值的值的行的谓词结果;W及 通过聚合由所述谓词结果识别的每个行的第二列中的值生成用于第二列的聚合值。
10. 如权利要求9所述的非瞬时计算机可读介质, 其中所述谓词结果是位向量并且所述位向量的每个位对应于行集合的对应行; 其中用于生成所述谓词结果的指令包括用于如下操作的指令: 当对应行的值匹配所述特定值时,将位向量的位设置到第一位值; 当对应行的值不匹配所述特定值时,将位向量的位设置到第二位值。
11. 如权利要求9所述的非瞬时计算机可读介质, 其中所述位向量是在位向量集合中的第一位向量;并且 所述指令还使得一个或多个计算设备执行包括如下的操作: 从所述行集合中选择第二行,对于所述第二行,对应位还未被设置为所述位向量集合 中的任何位向量中的第一位值; 利用逻辑编程过滤单元W执行在W下项之间的比较 来自于第二行的第一列的第二值,和 所述行集合中的第二多个行的第一列中的值; 基于所述第二值与所述第二多个行的第一列中的值的比较,生成识别所述第二多个行 内的、在第一列中具有匹配所述第二值的值的行的第二位向量;W及 通过聚合由所述第二位向量识别的每个行的第二列中的值生成用于第二列的第二聚 合值。
12. 如权利要求11所述的非瞬时计算机可读介质,其中所述第二个多个其它行是其对 应位还未被设置为在位向量集合中的任何位向量中的第一位值的行。
13. 如权利要求11所述的非瞬时计算机可读介质,其中用于确定对应位是否还未被设 置为位向量集合中的任何位向量中的第一位值的指令包括用于对位向量集合中的一个或 多个位向量执行按位NOT操作或按位XOR操作的至少一个W生成位向量掩码的指令,所述 位向量掩码识别其对应位还未被设置为第一位值的行。
14. 如权利要求9所述的非瞬时计算机可读介质,还存储使得所述一个或多个计算设 备执行包括W下的操作的指令: 编程聚合单元W执行在请求中指定的聚合操作; 其中用于为由所述谓词结果识别的每个行聚集第二列的值的指令包括用于执行W下 操作的指令: 使得聚合单元对第二列的值应用聚合操作。
15. 如权利要求9所述的非瞬时计算机可读介质,还存储用于输出结果的指令,所述结 果包括: 由所述特定值标识的组名;W及 通过为由所述谓词结果识别的每个行聚集第二列的值所生成的聚合值。
16. 如权利要求9所述的非瞬时计算机可读介质,还存储使得所述一个或多个计算设 备执行包括W下的操作的指令: 将谓词结果转换成存储器地址集合; 其中存储器地址集合中的每个存储器地址识别作为第一组的一部分的行的存储器位 置。
17. -种用于执行分组和聚合操作的系统,包括: 控制单元,其被配置为: 接收用于聚合按第一列分组的数据的请求; 使得来自第一列的值加载到输入高速缓存中; 其中加载到输入高速缓存中的值包括来自所述第一列的、来自行集合的值; 编程过滤单元W比较来自于第一行的第一列的特定值和行集合中的多个其它行的第 一列中的值; 过滤单元,其被配置为: 比较来自于第一行的第一列的特定值和行集合中的多个其它行的第一列中的值; 基于所述比较,生成识别所述多个行之内的、在第一列中具有匹配所述特定值的值的 行的位向量; 聚合单元,其被配置为: 通过聚合由所述位向量识别的每个行的第二列中的值生成用于第二列的聚合值。
18. 如权利要求17所述的系统, 其中由过滤单元生成的位向量的每个位对应于所述行集合中的对应行; 其中为了生成位向量,所述过滤单元被配置为: 当对应行的值匹配所述特定值时,将位向量的位设置到第一位值; 当对应行的值不匹配所述特定值时,将位向量的位设置到第二位值。
19. 如权利要求17所述的系统,还包括地址生成器单元,其被配置为: 将位向量转换成存储器地址集合; 其中所述存储器地址集合中的每个存储器地址识别作为第一组的一部分的行的存储 器位置。
【专利摘要】描述用于执行分组和聚合操作的技术。在实施例中,接收聚合按第一列分组的数据的请求。响应于接收请求,值从第一列被加载到输入高速缓存中。值包括来自于行集合的、来自于第一列中的值。利用逻辑编程过滤单元以执行来自于第一行的第一列的特定值和行集合的多个其它行的第一列中的值之间的比较。基于比较,生成识别多个行内的、在第一列中具有匹配特定值的行的谓词结果。通过聚合由谓词结果识别的每个行的第二列中的值生成用于第二列的聚合值。
【IPC分类】G06F17-30
【公开号】CN104685497
【申请号】CN201380050945
【发明人】J·施奥尔, P·安博格, R·D·霍博金斯二世
【申请人】甲骨文国际公司
【公开日】2015年6月3日
【申请日】2013年8月16日
【公告号】EP2885730A1, US20140052713, WO2014031481A1
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1