[发明专利]在基表上减小TEMP大小有效
申请号: | 202080061411.5 | 申请日: | 2020-08-27 |
公开(公告)号: | CN114341833B | 公开(公告)日: | 2023-09-19 |
发明(设计)人: | I·R·芬雷;C·祖扎特;J·F·霍尼布罗克 | 申请(专利权)人: | 国际商业机器公司 |
主分类号: | G06F16/2453 | 分类号: | G06F16/2453 |
代理公司: | 北京市柳沈律师事务所 11105 | 代理人: | 邓亚楠 |
地址: | 美国纽*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基表上 减小 temp 大小 | ||
1.一种计算机实现的方法,包括:
由计算机系统的一个或多个处理器接收SQL查询;
由所述计算机系统的所述一个或多个处理器解析所述SQL查询;
由所述计算机系统的所述一个或多个处理器识别在所述SQL查询内被多次使用并且在来自先前执行的SQL查询的存储的公共子表达式和子查询的列表中未被识别的至少一个公共子表达式或子查询或其组合;
由所述计算机系统的所述一个或多个处理器为所述至少一个公共子表达式或子查询或其组合构建查询执行计划,所述查询执行计划将使用第一标志值和第二标志值的事实表的位矢量维护作为初始结果集合的一部分,当来自基表的元组是所述初始结果集合的一部分时所述位矢量使用所述第一标志值来指示,当来自所述基表的所述元组不是所述初始结果集合的一部分时所述位矢量使用所述第二标志值来指示;
当在所述查询执行计划中指示TEMP操作时,由所述计算机系统的所述一个或多个处理器存储结果位矢量和跟踪被处理以产生所述结果位矢量的最后有效元组的指示符;
由所述计算机系统的所述一个或多个处理器在所述查询执行计划的其他部分中重新评估TEMP结果;
由所述计算机系统的所述一个或多个处理器使用所述TEMP结果来准备元组列表;以及
由所述计算机系统的所述一个或多个处理器取得相应列以用于所述查询执行计划中的进一步处理。
2.根据权利要求1所述的方法,还包括:
由所述计算机系统的所述一个或多个处理器从先前执行的SQL查询中搜索存储的公共子表达式和子查询的列表;
由所述计算机系统的所述一个或多个处理器取得所述结果位矢量的TEMP表。
3.根据权利要求2所述的方法,还包括:
由所述计算机系统的所述一个或多个处理器测试,以确保与在所述存储的公共子表达式和子查询的列表中涉及的每个表相关联的最后元组序列号、行标识符或日志序列号仍然是当前的;
由所述计算机系统的所述一个或多个处理器将高速缓存的结果标记为部分的;
由所述计算机系统的所述一个或多个处理器使用所述高速缓存的结果来准备所述查询执行计划,使得允许所述查询执行计划在所述最后元组序列号、行标识符或日志序列号处开始,并且继续向前到当前最后元组序列号、行标识符或日志序列号;
由所述计算机系统的所述一个或多个处理器确定所述高速缓存的结果不再有效;以及
由所述计算机系统的所述一个或多个处理器丢弃被确定为不再有效的所述高速缓存的结果。
4.根据权利要求3所述的方法,还包括:
由所述计算机系统的所述一个或多个处理器指示用于继续评估所述高速缓存的结果的起始点。
5.根据权利要求1所述的方法,还包括:
由所述计算机系统的所述一个或多个处理器以允许其他查询利用所述结果位矢量的方式存储所述TEMP操作的公共子表达式和子查询。
6.根据权利要求5所述的方法,还包括:
由所述计算机系统的所述一个或多个处理器存储一个或多个维度表元组序列号或行标识符与所述结果位矢量,以允许从至少一个维度表直接取得任何列。
7.根据权利要求6所述的方法,还包括:
由所述计算机系统的所述一个或多个处理器存储从至少一个维度表具体化的所述结果位矢量的一个或多个相关联的列。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国际商业机器公司,未经国际商业机器公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202080061411.5/1.html,转载请声明来源钻瓜专利网。
- 上一篇:用于粘性产品的分配器
- 下一篇:停车锁止机构