CN111797118A - 大型数据库系统的迭代式多属性索引选择 - Google Patents

大型数据库系统的迭代式多属性索引选择 Download PDF

Info

Publication number
CN111797118A
CN111797118A CN202010260083.3A CN202010260083A CN111797118A CN 111797118 A CN111797118 A CN 111797118A CN 202010260083 A CN202010260083 A CN 202010260083A CN 111797118 A CN111797118 A CN 111797118A
Authority
CN
China
Prior art keywords
index
index set
cost
selection
cophy
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202010260083.3A
Other languages
English (en)
Inventor
赖纳·施洛瑟
扬·科斯曼
马丁·布瓦西耶
马蒂亚斯·乌夫拉克
哈索·普拉特纳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hasso Plattner Institut fur Digital Engineering Gg
Original Assignee
Hasso Plattner Institut fur Digital Engineering Gg
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hasso Plattner Institut fur Digital Engineering Gg filed Critical Hasso Plattner Institut fur Digital Engineering Gg
Publication of CN111797118A publication Critical patent/CN111797118A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2264Multidimensional index structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3034Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/211Schema design and management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

发明人在列式内存数据库中实现并研究了大型生产企业系统的访问模式。为了获得对配置的准确成本估计,发明人使用了现代查询优化器的假设功能。然而,假设调用是大多数索引选择方法的主要瓶颈。因此,主要约束是限制假设优化器调用的数量。并且即使本发明方法不限制索引候选集,其也会减少假设调用的数量,因为在每个迭代步骤中可能的(索引)扩展的数量相对较小,这导致有限数量的假设调用。

Description

大型数据库系统的迭代式多属性索引选择
技术领域
本发明涉及数据库系统,具体地涉及数据库系统的索引选择。
背景技术
处理高度并发的工作负荷的大型数据库实例需要二级索引以避免顺 序扫描、节省存储器带宽、以及由此实现可接受的时延和吞吐量。
索引换取关于附加存储器的增加的性能,附加存储器通常是数据库系 统中的稀缺资源。这强调了对高效地平衡存储器消耗与性能增益的机制的 需要。
在现有技术中,索引通常由数据库管理员(DBA)选择,他们必须依 赖于自己的直觉和索引顾问工具,而这些工具通常依赖于启发法。
索引选择(也称为索引调优)属于NP难问题类别。从大的潜在索引 集合中找到最佳的索引选择是高度挑战性的,因为存在索引元素相互影响 其效果和整体性能,这被称为索引交互(Index Interaction,本文中称为 “IIA”)。
尤其是,大型现实世界问题实例表现出大多数现有选择方法不能处理 的特性:
(i)要考虑数千个属性,
(ii)由数千个查询模板组成的工作负荷,
(iii)存储器预算约束,以及
(iv)包括关于IIA的考虑在内平衡重新配置成本与性能增益。
一系列出版物(例如[Falkowski 1992;Ip等人1983])将索引选择问 题(本文中称为“ISP”)简化为背包问题(本文中称为“KP”)[Mathews 1896]。这两个问题具有相似性,并且在一定程度上是可比较的。然而,IIA (参见[Schnaitter等人2009])致使ISP到KP的简化是对该问题的过度简 单化。
Valentin等人提出了IBM DB2的索引选择方法[Valentin等人2000], 其贪婪地选择索引直到超过给定预算。其作者提出通过索引的运行时间改 进与大小消耗的比率来评估索引。为了考虑到索引交互和维护成本,所确 定的配置被随机地打乱若干次以搜索潜在的较好配置。
Chaudhuri和Narasaya提出了用于微软SQL服务器的基于优化器的索 引选择工具[Chaudhuri和Narasaya 1997,1998]。他们解释了几种降低ISP 的复杂度的技巧。例如,为了避免考虑每个容许的索引,他们确定索引候 选集作为实际索引选择过程的输入。按照以下方式选择这些候选:只有对 于至少单个查询是最佳索引的索引才被认为是索引候选,这可能导致潜在 索引的浪费。此外,他们的解决方案(参见[Chaudhuri和Narasaya 1997,1998])采用固定数量的索引作为约束和停止标准。但是,由于索引 的大小根据底层数据而有所不同,因此可以将索引大小视为更合理的约束 并且考虑固定的存储器预算。
微软SQL服务器的索引顾问的更近版本还结合了压缩索引[Kimura等 人2011]。这里,首先对潜在的索引候选进行筛选以使其有效率(即,不 受其他主导)。然后,Kimura等人提出了一种启发法,与DB2顾问相反, 该启发法贪婪地选择具有最大预期运行时间改进的索引。只有在超出预算 之后,当顾问尝试从预算违反“恢复”并且用更节省空间的替选索引迭代 地替换索引时,才考虑索引成本。
Idreos等人的工作[Idreos等人2011]关注针对列存储的索引选择。他 们引入了自适应索引,其中索引调优不是单独的任务而是查询处理的一部 分。自适应合并[Graefe和Kuno 2010]和数据库破解[Idreos等人2007]这两 种技术与非索引扫描相比,或者需要大量的处理查询才能完全起作用,或 者对于首次查询的初始成本较高。
将ISP表示为优化问题的想法不是新的[Caprara等人,1995;Dash等 人,2011;Papadomanolaki等人,2007b]。这些工作考虑了二进制整数问 题以及相关联的连续松弛。由于整数优化问题是NP完全[Garey和 Johnson,1979],所以通常使用启发法。Caprara等人[Caprara等人,1995] 使用分支定界算法来近似他们的线性整数问题的解。他们的模型假设对于 每个查询最多使用一个索引,这是一种强简化。一个查询用一个索引的益 处是不受其他索引决策的影响。因此,通常不考虑得出次优索引配置的索 引交互。
Dash等人[Dash等人,2011]与CoPhy一起提出了用于索引选择的现 有技术解决方案。作者声称利用线性优化中的公知技术有效地解决较大的 问题实例。他们的技术还依赖于what-if(假设)优化器调用来馈送用于他 们的线性规划优化的输入。
本发明的目的是提供一种改进的索引选择装置、索引选择方法以及索 引选择计算机程序产品。
发明内容
该目的通过根据权利要求1所述的方法、根据权利要求9所述的计算 机系统以及根据权利要求10所述的计算机程序来解决。
所要求保护的发明考虑了数据库计算机系统的内部工作,并且提供了 进一步的技术效果。
发明人已经在列式内存数据库中实现并研究了大型生产企业系统的 访问模式。为了获得对配置的准确成本估计,发明人使用了现代查询优化 器的what-if功能,类似于发明方法[Chaudhuri和Narasaya,1997;Dash 等人,2011;Papadomanolaki等人,2007b]。然而,假设调用是大多数索 引选择方法的主要瓶颈(参见[Papadomanolaki等人,2007a])。因此,主 要约束是限制假设优化器调用的数量。并且即使发明方法不限制索引候选 集,假设调用的数量也会减少,因为在每个迭代步骤中可能的(索引)扩 展的数量相对较小,这导致有限数量的假设调用。
发明人已经在现实世界的企业系统中评估了本发明的构思。发明人从 数据库系统中提取了最大的500个表(按照存储器消耗),包括访问这些 表的查询。这500个表由4204个相关属性组成。这些表的行数在350 000 到15亿行之间。执行了55 758个不同查询(Q=2271个查询模板),并且 在记录的时段期间发生了5千万次以上的查询执行。工作负荷可以被表征 为主要是与大多数点访问查询的事务处理,但是也包含少量的分析查询 (在[Boissier等人,2016]中可以找到关于可比较系统的更多信息)。
图1示出了在改变发明人的索引选择策略(由(H6)表示)和CoPhy 的选择方法[Dash等人,2011]的存储器预算的条件下处理上述工作负荷的 成本(计算的存储器通信量)。此外,CoPhy的候选集的大小是变化的。 在使用所有可能的候选(在该示例中为9912个候选)的情况下,发明人 的方法的运行时间总计约半秒,而CoPhy需要数分钟。在有限的候选集的 情况下,就解的质量而言本发明的方法明显优于CoPhy的基于LP的方法。 如果CoPhy的候选集不受限制,则其性能与本发明的方法相当。
附图说明
图1示出了ERP系统示例:对于本发明的策略(H6)和具有不同的 索引候选集的CoPhy的构思,在N=4204个属性,Q=2271个查询的条件 下的扫描性能和相关联的存储器预算(表示为用来存储所有单属性索引的 存储器的份额ω)的组合的比较结果。
图2示出了针对TPC-C的用于索引选择的本发明方法的图示:构建 步骤、对不同查询加索引的适用性、以及对相关索引增强的考虑。
图3示出了对于本发明的策略(H6)和在|I|=500且所有候选为Imax, N=500,Q=1000,示例1的情况下使用(H1-M)、(H2-M)、(H3-M)的 具有不同的索引候选集合的CoPhy的构思,扫描性能和相关联的相对存储 器预算A(w),w∈[0,0.4]的组合的比较。
图4示出了对于本发明的策略(H6)和使用(H1-M)的具有不同的 索引候选集的CoPhy的构思并且在|I|=100,1000,|Imax|个候选, w∈[0,0.4],N=500,Q=1000,示例1的条件下扫描性能和相关联的相对 存储器预算(参见A(ω))的组合的比较。
图5示出了ERP系统示例:对于本发明的策略(H6)和使用(H1-M) 的具有不同的索引候选的CoPhy的构思并且在|I|=100,1000,|Imax|, N=4 204,Q=2 271的条件下,扫描性能和相关联的相对存储器预算(参 见A(ω),ω∈[0,0.1])的组合的比较。
图6示出了端到端的评估:对于本发明策略(H6)与基于频率的启 发法(H1)、不使用天际线方法并且使用所有2937个候选的(H4)、使用 天际线方法的(H4)、使用所有候选的(H5)、以及以10%的索引候选使 用候选启发法(H1-M)的CoPhy的方法,以及使用所有候选(最佳)的 CoPhy,在w∈[0,1],N=100,Q=100,|Imax|=2 937的条件下,工作负荷 运行时间和相关联的相对存储器预算(参见A(w))的组合。H2和H3以 及经由H2-M和H3-M的候选集缩减由于其性能较差而未呈现。
具体实施方式
下面,描述本发明的实施方式并将其与其他方法进行比较。
A.问题和模型描述
我们考虑具有N个属性的系统。问题是要为由Q个查询组成的工作 负荷选择二级索引,以便例如通过使执行时间、I/O流量或所传输的存储 量最小化来将整体性能最大化。Q个查询中的每个由以下属性集表征:
Figure BDA0002438954190000051
该属性集在查询评估期间被访问。以下给出符号表:
符号表
Figure BDA0002438954190000052
Figure BDA0002438954190000061
具有K个属性(多属性)的索引k被表征为属性的有序集合
k={i1,...,iK},其中,iu∈{1,...,N},u=1,...,K
此外,为了描述索引候选,我们使用由I表示的索引集合
Figure BDA0002438954190000062
我们通过以下子集来表示索引选择:
Figure BDA0002438954190000063
在不丧失一般性的情况下,我们使用二元变量xk来指示候选索引k∈I是 否是选择I*的一部分,即
Figure BDA0002438954190000064
查询qj,j=1,...,Q的成本由值fj(I*)表示,其依赖于选择I*。通常 fj(I*)通过假设优化器调用来确定。函数fj向索引集合(包括一维集合) 指定成本。注意,查询qj可以是各种类型,例如选择、连接、插入、更新 等,或者是上述类型的组合。总工作负荷成本F由所有查询qj的查询成本fj与用bj,j=1,...,Q表示的查询成本的出现次数相乘的总和来定义。
Figure BDA0002438954190000071
此外,我们假设所选索引的存储器消耗不允许超过特定预算A。(多 属性)索引k,∈I*所需的存储空间用pk表示,并且可以任意定义。I*使 用的存储空间总计为
Figure BDA0002438954190000072
此外,我们允许有重新配置成本。我们用
Figure BDA0002438954190000073
表示将现有索引选择 I更改为新选择
Figure BDA0002438954190000074
(即,创建新索引
Figure BDA0002438954190000075
并且删除不必要的索引
Figure BDA0002438954190000076
) 的成本(任意定义的)。最后,(给定任意但固定的当前索引选择
Figure BDA0002438954190000077
)多属 性索引选择问题通常可以定义为
Figure BDA0002438954190000078
Figure BDA0002438954190000079
注意,在问题(3)至(4)中,变量
Figure BDA00024389541900000710
和索引候选集I两者都至关重 要且必须进行优化。
B.CoPhy的LP方法
在本小节中,我们考虑一种整数线性规划方法来解决索引选择问题。 该方法类似于CoPhy的构思[Dash等人,“CoPhy:A scalable,portable,and interactive indexadvisor for large workloads”,PVLDB,vol.4,no.6,pp. 362–372,2011.]。为了简便起见,在不丧失一般性的情况下,我们不考虑 更新和重新配置的成本。CoPhy的模型假设,对于每个查询,最多应用一 个索引(每个表),并且对于不同的表的扫描成本是和式可分的。此外, 假设使用特定索引时查询的扫描成本不会由于其他索引的存在而受到影 响。因此,如果将索引k应用于查询qj,则CoPhy使用扫描成本
fj(k),k∈I∪0,
其中,0描述不向qj应用索引的选项。此外,我们用
Figure BDA00024389541900000711
表示I中适用于查询qj,j=1,...,Q的索引候选的集合。在不丧失一般性 的情况下,我们假设查询仅对一个表进行操作。对于给定的候选集I,CoPhy 的索引选择LP方法的实质可以写成:
Figure BDA0002438954190000081
Figure BDA0002438954190000082
Figure BDA0002438954190000083
Figure BDA0002438954190000084
约束族(6)保证最多将一个索引k用于查询qj。约束(7)用于表示 到底使用哪些索引k。最后,约束(8)确保不超过存储器预算A。CoPhy 考虑了IIA,因为LP允许I中的所有索引组合I*
(5)至(8)描述的问题的复杂度特别通过变量和约束的数量为表征。
注意,使用
Figure BDA0002438954190000085
代替I允许将变量和约束的数量(分别从大约Q*I、参见变量zjk和约束 (7))减少到
Figure BDA0002438954190000086
Figure BDA0002438954190000087
其中
Figure BDA0002438954190000089
是每个查询的相关索引候选的平均数。
如果仅在由l(k)表示的索引k的第一属性是qj的一部分的条件下该索 引k才适用于查询qj,则相关集合Ij可以定义为,j=1,...,Q,
Figure BDA0002438954190000088
在这种情况下,变量和约束的数量可以被如下近似。平均来说,我们 有|I|=N个索引,它们以特定属性i开头,i=1,...,N。此外,使
Figure BDA0002438954190000091
表示查询中出现的属性的平均数。因此,适用于查询的候选的平均数为
Figure BDA0002438954190000092
注意,合格索引的数量还可以更大,因为I通常包含以工作负荷查询 中出现比例过高的属性开头的索引。最后,变量和约束的数量近似为
Figure BDA0002438954190000093
因此,如预期的那样,问题复杂度大大增加了查询数量Q和候选索 引数量|I|。由于线性规划公式,参见(5)至(8),需要所有成本系数fj(k), 假设优化器调用的数量也可以通过
Figure BDA0002438954190000094
进行估算,参见(9)。注意,可 以有效且准确地得出假设成本估算,例如经由INUM[S.Papadomanolakis, D.Dash,and A.Ailamaki,“Efficient use of the queryoptimizer for automated database design,”in Proc.VLDB,2007,pp.1093–1104]。
C.根据本发明的优选索引选择方法
下面,我们定义发明人的多属性索引选择方法。许多索引选择构思的 特征在于以下两步方法:(i)定义适当大小的索引候选集,以及(ii)得 出针对固定存储器预算的优化选择(使用启发法或线性规划技术)。
代替这两个步骤,本发明提出了一种计算索引选择的建设性方法,该 方法基于具有增加的预算的递归解。本发明提出了一种由工作负荷驱动的 索引选择方法,该方法依靠迭代机制并有效地考虑了IIA。关键思想是尽 可能晚地对索引候选进行剪枝,并以迭代方式构建索引选择。递归的能力 允许(i)处理超大规模的索引组合和(ii)在每个构建步骤中并入索引交 互。
此外,在每个步骤中,选择新的索引或扩展现有索引以一致地最大化 附加性能与附加存储器的比率。与现有方法使用的随机打乱或替换启发法 相比,该技术具有优点。本发明的方法还允许包括重新配置(索引创建和 删除)成本。
因此,本发明的一个方面涉及一种为了允许例如以更短的响应时间和 /或更少的计算资源更高效地运行对数据库的查询目的而确定索引集I的 方法,该方法在具有物理处理单元和物理存储装置的计算机系统中实现, 计算机在物理存储装置中存储具有N个属性的数据库。
根据本发明的优选实施方式,该方法包括以下步骤:
(1)设置工作索引集
Figure BDA0002438954190000101
(2)确定使相关联的成本降低与相关联的附加存储器消耗之间的比 率最小化的单属性索引{i}(i=1,...,N);
(3)将确定的单属性索引添加到工作索引集I中;
(4)对于每个基本索引元素{i}(i=1,...,N)并且对于每个索引k∈I,
(a)如果
Figure BDA0002438954190000102
通过将{i}作为新的单属性索引添加到工作 索引集I中来创建新索引集
Figure BDA0002438954190000103
以及
(b)通过在工作索引集I的索引k的末尾追加{i}来创建新索引集
Figure BDA0002438954190000104
(5)从步骤(4)中创建的新索引集
Figure BDA0002438954190000105
中选择具有最佳的所相关联的 成本降低与相关联的附加存储器消耗之间的比率的新集合
Figure BDA0002438954190000106
以及
(6)设置工作索引集
Figure BDA0002438954190000107
(7)重复步骤(4)至(6)直至达到预定条件。
该方法向索引集合中递归地添加属性。属性可以将当前的索引集I扩 展为新的单属性索引,或者可以被追加到I中的现有索引的“末尾”(参 见变形)。通过将附加性能(例如F(I)+R(I))与相关联的附加的被利用 存储器(参见P(I),见(2))进行比较来确定以何种方式添加哪个属性的 决策。图2说明了对于TPC-C示例1的过程。简而言之,该方法争取近 似与多属性索引选择问题相关联的有效边界(针对性能和大小)。
根据本发明的优选实施方式,预定条件是存储器消耗超过存储器预 算、或者达到预先限定的最大的构建步骤数量、或者无法实现进一步改进。
根据本发明的优选实施方式,相关联的成本包括工作负荷成本,并且 优选地还包括由函数
Figure BDA0002438954190000108
限定的将当前索引集
Figure BDA0002438954190000109
改变为工作索引集I的 重新配置成本。
根据本发明的优选实施方式,工作负荷成本由函数F(I)限定,将当前 索引集
Figure BDA00024389541900001010
改变为工作索引集I的重新配置成本由函数
Figure BDA00024389541900001011
限定,并且存储 器消耗由函数P(I)限定。
根据本发明的一个实施方式,数据库当前不使用索引集。
根据本发明的优选实施方式,数据库当前使用当前索引集
Figure BDA0002438954190000111
根据本发明的优选实施方式,根据步骤(2)的比比率是根据
Figure BDA0002438954190000112
确定的,并且其中根据步骤(5)的比率是根据
Figure BDA0002438954190000113
确定的。
根据本发明的优选实施方式,步骤(5)涉及计算相关成本,并且计 算相关成本的步骤涉及缓存中间结果以用于在步骤(5)的后续运行中使 用这些中间结果的目的。这是节省时间的优化。如果对索引k∈I考虑基本 增强i=1,...,N,则不必使用假设优化器完全重新计算成本
Figure BDA0002438954190000114
仅针对 可能受潜在附加物影响的查询重新计算成本就足够了,参见步骤(4a或 4b)。大多数查询的成本不变。
根据本发明的优选实施方式,该方法可独立于F、R、P和f的特定值 而应用。该方法可以被普遍地应用并且独立于特定的成本模型或优化器。 唯一的要求是查询成本需要被量化并且索引附件的相对性能改进必须是 可比较的,参见步骤(4)至(5)。注意,并未预先限制索引候选的集合。 在多属性索引中也没有使用最大数量的属性。该方法提供了一系列构建步 骤,这些步骤递归地且因此有效地确定了增长的索引集I及其相关联的存 储器消耗P(I)。递归选择允许考虑在存在较早选择的索引的情况下,通过 其他候选索引的附加性能改进来测量该候选索引的值时不同索引之间的 相互侵蚀(cannibalization)效应(参见IIA)。
本发明还有进一步优选的和替选的实施方式:
1)例如,可以通过在构建步骤中仅考虑n个最佳单属性索引来使该 方法加速。
2)在较早的迭代步骤中建立的索引可能不再被使用,因为新的索引 (需要更高的存储器预算)允许更有效的扫描。在这种情况下,可以通过 从当前索引集中排除不必要的索引来优化该方法。
3)为了能够识别具有相同的主导属性的不同索引,可以存储对已错 过的(例如,次佳的)扩展索引的机会的估计影响,并且在稍后的步骤中 潜在地使用该估计影响。注意,可能必须重新估计性能影响。
4)在假设调用成本较低或者存在足够准确的成本模型的情况下,该 方法可以被推广为不仅考虑单个属性,而且考虑某些属性对来建立或扩展 索引。
本发明的另一方面涉及一种计算机系统,其被配置用于执行关于以上 几个实施方式所述的确定索引集I的方法。
本发明的另一方面涉及一种包括指令的计算机程序产品,当程序由计 算机执行时,这些指令使计算机执行关于以上几个实施方式所述的方法的 步骤。
D.不同选择方法的探讨
由于组合的数量巨大,并且能够被处理以估计由于特定索引引起的每 个成本改进的假设调用的数量有限,所以无法彻底地解决索引选择问题。 因此,必须限制要考虑的索引候选集。由于有限的候选集可以容易地缩减 解质量,因此索引候选集必须(i)非常大或者(ii)被良好地定义。然而 (i)使得难以找到最佳选择,而且也不容易解决(ii),因为它类似于索 引选择问题本身。
现有方法以下述方式工作:首先,基于简单的度量(例如,访问频率、 选择性或大小)选择索引候选(大的索引候选集合),并且使用假设优化 器调用针对所有相关查询单独地评估这些索引候选。其次,对于给定的存 储器预算,根据特定机制选取最终的索引选择。在[S.Chaudhuri and V.R. Narasayya,“An efficient cost-driven index selectiontool for Microsoft SQL Server,”in Proc.VLDB,1997,pp.146-155]中,基于索引的单独测量的性 能贪婪地选择最终索引。然而这个过程是按比例的,IIA并没有被明确地 考虑。所选择的索引很可能使其影响相互侵蚀。
CoPhy的线性规划方法允许识别最佳的索引选择,同时还考虑到IIA。 然而,由于LP的复杂度,该方法的适用性限于小的索引候选集合。在[G. Valentin,M.Zuliani,D.C.Zilio,G.M.Lohman,and A.Skelley,“DB2 Advisor:An optimizer smart enough torecommend its own indexes,”in Proc. ICDE,2000,pp.101-110]中,首先基于其单独测量的性能/大小比贪婪地 选取索引(起始解)。为了解决IIA以及为了提高性能,索引元素被随机 取代。因此,该方法可应用于大的候选集。然而,由于起始解通常远离最 优解并且打乱没有针对性,因此可能要花费长时间来获得优化结果,特别 是对于候选集很大的情况。首先,本发明方法看起来类似于贪婪方法,如[G.Valentin,M.Zuliani,D.C.Zilio,G.M.Lohman,and A.Skelley,“DB2 Advisor:An optimizer smart enough to recommendits own indexes,”in Proc. ICDE,2000,pp.101-110]。然而,本发明人的方法具有重要的差异。我们 以递归的后续方式应用贪婪选择,从而考虑到IIA,即其他(较早选择的) 索引的存在。
通过比较成本估计,可以确定将对哪些查询应用潜在的新索引(当被 添加到当前索引集时),参见(1),并且因此确定当前的总性能将提高多 少。在本发明方法的每个迭代步骤中,选择索引使得“附加性能”与“附 加的所需存储器”的比率始终得到优化。因此,与[G.Valentin,M.Zuliani, D.C.Zilio,G.M.Lohman,and A.Skelley,“DB2 Advisor:Anoptimizer smart enough to recommend its own indexes,”in Proc.ICDE,2000,pp.101-110] 相反,我们以针对性的方式解决IIA。
可以通过本发明方法组成的成组合且多种的索引不被预先限制(如以 某些索引候选集开始的情况那样)。但是,必要的假设调用的数量相对小, 因为我们也对索引候选进行剪枝:由于使用递归的递增索引扩展/更改, 在每个步骤中,仅考虑含有潜在的新索引的小子集,并且执行很少的假设 调用。
最重要的是,考虑和选择索引的“方向”遵循反映IIA的“附加性能 与附加存储器的比率”标准。总之,本发明方法(i)有效地包括IIA,(ii) 执行少量假设调用,并且(iii)在不使用解算器的情况下(即使是对于大 型问题)针对给定预算快速识别索引选择。
E.本发明的示例性实现以及与替选方法的比较
在下文中,描述了与[G.Valentin,M.Zuliani,D.C.Zilio,G.M.Lohman, andA.Skelley,“DB2 Advisor:An optimizer smart enough to recommend its ownindexes,”in Proc.ICDE,2000,pp.101-110]和[S.Chaudhuri and V.R. Narasayya,“Anefficient cost-driven index selection tool for Microsoft SQL Server,”inProc.VLDB,1997,pp.146-155]中使用的构思类似的示例索引 选择启发法和三个启发规则以及两个索引选择方法:
定义1:本发明的方法和现有技术的构思:
(H1):=只要不超过给定的存储器预算A,选取给定的索引候选集 I中具有最常用的属性的索引,最常用属性以在查询中的出现次数
Figure BDA0002438954190000131
来衡量。
(H2):=只要不超过给定的存储器预算A,选取给定的索引候选集 I中选择性最小的索引,选择性为
si:=1/di,i=1,...,N,
(di是不同值的数量)。
(H3):=只要不超过A,选取给定的索引候选集I中选择性与出现 次数的比率最小的索引,即,si=gi,i=1,...,N。
(H4):=只要不超过A,选取给定索引候选集I中性能最佳的索引; 排除针对至少一个查询效率不高(就性能和大小而言)的候选(天际线候 选),参见[S.Chaudhuri andV.R.Narasayya,“An efficient cost-driven index selection tool for MicrosoftSQL Server,”in Proc.VLDB,1997,pp.146–155]。
(H5):=只要不超过A,选取给定索引候选集I中具有最佳的性能- 大小比的索引,参见[G.Valentin,M.Zuliani,D.C.Zilio,G.M.Lohman,and A.Skelley,“DB2 Advisor:Anoptimizer smart enough to recommend its own indexes,”in Proc.ICDE,2000,pp.101–110]的起始解。
(H6):=只要不超过A,应用一系列构建步骤,参见根据本发明的 方法。
可再现的评估
在这部分中,我们使用可再现的可扩展基准情形来对发明人的索引选 择方法的运行时间(第1部分)和质量(第2部分)(参见C部分)与CoPhy 的解决方案(参见B部分)进行比较。
在第3部分中,对用于实际工作负荷以及端到端评估的所有呈现的索 引选择构思(包括(H4)和(H5),参见定义1)进行了比较。
示例1.(说明了可再现的可扩展示例)为了将本发明方法与CoPhy 的解决方案进行比较,我们考虑以下设置。
(i)CoPhy对于每个查询应用至多一个索引。为了获得可比较的结 果,我们在简化的“仅一个索引”设置下表达查询成本,即,给定选择I*, 查询j的成本由下式确定:
Figure BDA0002438954190000141
(ii)为了说明本发明方法在可再现设置中的适用性,根据附录B部 分中描述的示例性成本模型,我们针对fj(k),k∈I*∪0填充了假设优化 器调用。
(iii)此外,我们考虑具有T=10个表的(随机化)合成工作负荷设 置。我们考虑不同的问题大小,其中Qt=50,...,5000个查询,并且Nt=每 个表50个属性,t=1,...,T。
(iv)我们利用了以下三种用于限定可扩展的索引候选集I的启发法 对发明人的启发法(H6)(参见本发明方法和定义1)与CoPhy的方法进 行比较:
(H1-M)对于每个m=1,...,4,选择m个属性{i1,...,im}的在整个工 作负荷的查询中最频繁地出现 iu=1,...,N,u=1,...,m,
Figure BDA0002438954190000151
的h个索引候选(以降序 排列)。
(H2-M)对于每个m=1,...,4,选择m个属性{i1,...,im}的具有最小 的组合选择性
Figure BDA0002438954190000152
的h个索引候选(以升序排列)。
(H3-M)对于每个m=1,...,4,选择m个属性的元组上的具有最佳 的组合选择性(参见H2-M)与出现次数(参见H1-M)的比率的、以升 序排列的h个索引候选。
对于M个索引候选,对于每个m=1,...,4,使h:=M/4。
1.适用性、可扩展性和运行时间
我们使用示例1来比较本发明方法对CoPhy的基于解算器的方法的 适用性。
对于不同的问题大小(由查询和属性的数量表征),表I示出了发明 人的策略(H6)(利用单线程C++程序实现)的运行时间(排除假设调用) 和Cophy的方法(CPLEX 12.7.0.0,mipap=0.05,4个线程,经由NEOS 解算器)对于不同大小的索引候选集的运行时间(排除假设调用),参见 示例1(3DNF:未在八小时内完成)。
表I
运行时间比较:在ICmax个潜在索引、T=10个表、∑tNt=500个属性、 预算w=0.2的条件下,对于不同的问题大小,我们的策略(H6)与Cophy 的方法(具有5%的最佳差异和|I|个索引候选)的求解时间对比;不考虑 假设调用的时间;示例1
Figure BDA0002438954190000161
所选索引的数量大致为|I*|≈w·∑tNt=100。预算A(w)由所有单属性 索引所需的总的存储器份额w限定,0≤w≤1
A(w):=w·∑k∈{{1},...,{N}}pk (10)
在具有Intel Core i5和16GB主存储器的消费者笔记本上再次收集 (H6)的运行时间。发明人观察到,即使对于实际上大型的问题实例,计 算也仅花费数秒,并且因此允许基本上立即的响应时间。为了进一步加速 发明人的策略的运行时间,可以使本发明的方法并行化。
发明人观察到,CoPhy的计算时间随着查询数量Q以及索引候选数量 而显著增加。不包括候选集的生成以及对假设优化器的调用。注意,具有 Q=500个查询且|I|=1000个候选的基本LP模型(参见(5)至(8))通 常已经有超过100000个变量和100000个约束。
此外,索引组合的数量随着候选数量指数地增长(参见[15])。尽管解 算器使用剪枝,但其也无法规避该问题。因此,对于大问题,基于解算器 的方法的适用性有限,并且因此必须将候选数量减少到潜在索引的小子 集。因此,即使最终的索引选择是最佳的(对于索引候选的子集而言), 总体来看,解的质量可能远非最佳。
比较表I中的运行时间,发明人观察到,他们的方法在问题很大的情 况下仍然适用。发明人的方法的复杂度是不同的:由于其方法的递归性质, 在每个构建步骤中,仅有少量的可能性须被评估。由于当前的索引选择仍 然存在,因此在每个步骤中可能性的数目不是相乘的——它们只是相加, 从而大大降低了复杂度。
此外,发明人的递归方法不需要特别大量的成本估计,例如,假设优 化器调用。尽管原则上可以构建大量索引候选,但是并非使用假设优化器 调用对全部索引候选进行评估。大多数(例如,通常多于50%)的优化器 调用发生在第一构建步骤中,其中必须针对所有查询qj,j=1,...,Q确定所 有潜在的单属性索引k={i},i=1,...,N的扫描成本,即,发明人在第一步 骤中大致进行了
Figure BDA0002438954190000171
个假设优化器调用。在本发明方法的每个后续构建步骤中,仅须评估那些会完全使用新的潜在的(递增扩展的)多属性索引的 查询——其他查询的成本不改变并且先前已经被确定。因此,在每个构建 步骤中,只须执行少量的假设调用。注意,再次强调,这些数字只是通过 所有构建步骤累加。
鉴于在本发明方法中,假设调用的数量
Figure BDA0002438954190000172
随着达到目标存储器 预算所需的构建步骤的数量缓慢增加,在CoPhy的方法中,调用的数量 (
Figure BDA0002438954190000173
参见(9))在索引候选的数量|I|中大致线性地增加。因此, 与CoPhy相比,本发明方法需要更少的成本估计,特别是对于候选数量|I| 比列数量N大的情况。
此外,如果允许每个查询多个索引,则索引选择问题的复杂度进一步 增加,因为无法针对不同索引单独得出查询成本,参见示例1(i)。相反, 查询成本是基于上下文的,即,查询成本可以取决于整个选择I*。因此, 将必须对Cophy的框架进行扩展以使得成本参数fj(I)可用于所有子集I*。 另外,LP(5)至(8)很可能变为非线性,并且因此可能几乎不再适用。
本发明方法可应用于每个查询具有多个索引的设置中。在每个步骤 中,进行假设调用以评估潜在的扩展,其中考虑当前状态,即,当前选择 I。与“仅一个索引设置”的唯一区别在于,必须对在较早步骤中执行的 某些假设调用进行刷新,因为底层的当前状态(并且进而,查询成本)可 能已经改变。
2.与CoPhy的性能比较
接下来,我们将CoPhy的方法的性能与发明人的策略进行比较。为 了研究CoPhy的性能在多大程度上取决于索引候选集的大小和质量,我们 针对不同参数h(候选索引数)来考虑示例1。
图3示出了在使用不同的启发法来限定索引候选集的情况下,用于发 明人的选择方法和CoPhy的选择方法的性能和存储器的组合。发明人观察 到CoPhy的结果受候选集的分类的影响。根据目标存储器预算,可以不同 地执行启发法。然而,发明人的策略对于任何预算都能提供极好的结果。
图4描绘了在CoPhy的选择方法根据(H1-M)使用不同大小的候选 集的情况下的对应结果。如所预期的,候选集的大小会显著影响CoPhy 的结果。候选集越小,重要索引丢失的可能性越高。候选集越大,求解时 间变得越高。
在最大数量的潜在索引(参见Imax)被用作穷尽候选集的情况下, Cophy的解是最佳的。发明人的策略(H6)执行得接近最佳,这一事实验 证了发明人的解决方案的高质量。回想一下,就计算时间而言,在得到高 质量解所需的大候选集的情况下,发明人明显胜过基于解算器的方法。
最后,发明人的解决方案可以用于通过补充索引候选集来替代以及改 进传统的索引选择方法。如果将发明人的方法选择的索引用作附加的索引 候选,则基于解算器的方法的问题复杂度几乎不增加,而仅会使解的质量 改善。
3.企业工作负荷以及端到端评估
在第3.a部分中,我们给出基于来自财富全球500强公司的生产企业 系统的数据和工作负荷的基准结果。在3.b中,我们证明发明人的解决方 案的质量不取决于在A至D部分中使用的示例性成本模型。本发明人针 对所有提出的包括(H4)和(H5)的构思(参见定义1),通过用商业DBMS 测量的实际运行时间成本来评估其方法。
a.对企业工作负荷的应用
发明人针对现实世界企业系统评估了他们的策略。他们从数据库系统 中提取最大的500个表(按照存储器消耗),包括访问这些表的查询。这 500个表由4 204个相关属性组成。这些表在大约350 000到大约15亿行 之间。执行了55 758个不同的查询(具有Q=2271个查询模板),并且在 记录的时段期间发生了5千万次以上的查询执行。工作负荷可以被表征为 主要是与大多数点访问查询的事务处理,但是也包含很少的分析查询。
图5示出了对于发明人的索引选择策略(H6)和CoPhy,针对不同的 存储器预算来处理前述工作负荷的成本(计算的存储器通信量)。此外, 使用(H1-M)来改变CoPhy的候选集的大小。测量再次保证了来自E.1 部分和E.2部分的结果。在解的质量方面,在有限的候选集的情况下本发 明方法明显优于CoPhy的基于LP的方法。本发明方法的运行时间总计约半秒,而具有所有9912个候选的CoPhy需要几分钟。
现实世界工作负荷的性质可以解释启发法的差性能。上述的索引之间 的相互作用起着重要作用。一些属性经常被一起访问。因此,关于一个属 性的索引可能使关于另一属性的潜在索引的性能劣化。基于规则的启发 法,如(H1)至(H3),无法考虑到这些影响。
b.使用商业DBMS进行的评估
在这一部分中,在实践中证明了发明人的解决方案对于现实世界的数 据库系统的适用性。此外,示出了本发明方法独立于精确的成本建模或假 设优化实现。
使用商业列式主存储器数据库系统进行以下性能评估。虽然使用(基 于假设优化器的)成本估计对于实现大型问题实例的解是必要的,但是也 已经证实其经常不准确的。因此,发明人在不依赖于基于假设或其他优化 器的估计而是利用上述数据库系统接连地执行所有查询的情况下运行了 所有评估。然后,使用实际报告的执行时间来确定对于给定的索引配置的 查询成本。为了确定索引候选对查询性能的影响,发明人还接连地创建所有索引候选并且对每个候选执行所有查询。然后使用这些测量的运行时间 (而不是假设估计)来馈送模型的成本参数。虽然这种方法保证了精确的 成本,但是它伴随着由于多次评估每个索引候选的每个查询而导致的高评 估时间。因此,发明人使用如示例1中的可扩展工作负荷替代现实世界的 ERP工作负荷来实现这些试验。
在具有512GB主存储器和64核的机器上,以2.3GHz的时钟速度, 用最新版本的DBMS进行测量。发明人对于每个索引配置的每个查询重 复测量至少100次以减低测量的不准确性。工作负荷由上文介绍的模拟现 实生活工作负荷特性的工作负荷生成器创建。
基于所测量的成本,发明人使用CoPhy、启发法及其递归策略来计算 索引配置。
图6示出了各种索引选择策略的性能。直到约30%的预算,发明人的 解决方案都与CoPhy的具有所有(2937个)候选的最佳解决方案等同。 发明人的解决方案的性能总是在最佳解的3%之内。
基于穷尽候选集的具有和不具有受支配的候选(的(H1)和(H4) 天际线方法[Kimura等人2011])的结果远非最佳。具有索引候选的完整集 合的启发法(H5)也提供了良好的结果。然而,如果候选集太小(见图4) 或质量较低(在例如使用H2-M或H3-M来限定候选集时的情况,见图3), 则(H5)的结果较差。注意,CoPhy的结果提供了使用减少的候选集的情 况下的性能上限,因为对于给定的候选集,CoPhy计算最佳选择。在这种 情况下,与具有所有索引候选的CoPhy相比,基于10%的候选选择(根 据启发法H1-M)的CoPhy的结果显示了显著的性能降低,参见图6。
结果可以总结如下:首先,对候选集的选择可以显著影响整体性能。 其次,对于固定的候选集,最终选择机制严重影响整体性能。第三,本发 明方法不依赖于对候选的适当选择并且提供了接近最佳的结果。
尽管本发明人的示例的工作负荷大小相对较小,但是CoPhy的LP的 问题复杂度已经极高。约束和变量的数量两者都随着索引候选集的大小线 性增加。问题的复杂度(即,求解时间)通常随变量数量以及约束的数量 超线性地增加。含2937个索引候选的穷尽头集导致大致20000个变量和 约束。取决于所使用的解算器、指定的最佳差距、可用的硬件等,这些问 题的求解时间可能已经花费了几分钟(参见表I)。为了减少候选的数量, 多属性索引候选的排列可以由其大概最佳的代表来代替。然而,总的来说, 结果将由于去除其他排列而受到负面影响。
此外,如果问题实例很大,则基于性能的方法(如(H4)和(H5)) 也会受到影响。因为在它们的方法中,成本预测必须对所有的索引候选可 用,所需的假设优化器调用的数量可能(太)大。因此,必须使用缩减的 候选集,这需要适当的候选启发法并且经常导致总体性能降低,参见图6。
最后,发明人的结果验证了他们的解决方案的结果也适用于端到端的 情形:(i)本发明方法优于简单的基于规则的选择策略,(ii)本发明方法 优于具有受限的候选集的CoPhy,并且(iii)发明人验证了在易处理的选 择问题的情况下,他们的结果接近最佳。因此,发明人证明了他们的解决 方案在不依赖假设估计或指定的成本模型时也能找到接近最佳的索引配 置。此外,它们的解决方案是可扩展的,因为较不频繁地确定基于假设优 化器的成本(见第E.1部分)且不需要解算器。
4.评估结果的讨论
本发明人将他们的解决方案与[Valentin等人2000](参见(H5))、[Kimura等人2011](参见(H4))以及CoPhy方法所使用的概念性启发法 进行了比较。注意,对于[Valentin等人2000],其起始解(H5)提供了下 限,而CoPhy产生性能上限。
对于再现性,在E.1部分(可扩展性)和E.2部分(性能)中,发明 人使用了示例性说明性成本模型,参见示例1。对于E.3.b部分中的端到 端评估,替代成本模型,发明人使用基于假设优化器的成本预测,其包括 现代执行引擎的复杂效果。
结果显示,发明人的方法扩展并快速提供了接近最佳的索引选择。如 果候选集与所有潜在候选集相比较小,则发明人的方法优于(H4)和(H5) 以及CoPhy的结果。因此,发明人的方法是现有工具的有前途的替选,特 别是对于大型问题。
发明人的方法的可扩展性(即,快速的运行时间)可以解释如下:(i) 在递归方法期间,发明人仅考虑有限的索引候选子集,以及(ii)他们使 用具有相对较少数量的步骤的建设性的确定性机制而不是随机化机制。
还可以说明发明人的方法的性能。他们的方法利用了对于现实世界工 作负荷和索引的性能而言典型的结构和属性:首先,索引A可以被应用于 比(扩展的)索引AB更多的查询,并且需要更少的存储器(属性1)。第 二,相似的索引AB和AC通常能够彼此相互侵蚀,即,与仅选择相似索 引中的(最好的)一个的情形相比,当相似的索引被一起选择时,它们可 能仅少量地增加整体工作负荷性能(属性2)。第三,可以假设从帕累托 有效选择中取出任何索引都显著影响性能。因此,从属性2得出,具有若 干相似索引的选择是低效的,并且包括有索引一定显著提高性能(属性3)。 第四,“性能”和“所需存储器”的帕累托有效边界是凸形形状,参见图 3至图6。
本发明的方法利用了这些特性:如果索引AB是有益的,则通常索引 A也是有益的,参见属性1,并且因此,通过发明人的方法被识别(和扩 展)。他们的方法不构建类似的索引,参见属性2。发明人的递归仅实现 了具有显著附加性能与大小的比率的索引选择/扩展,同时考虑了(当前 状态的)IIA,参见属性3。随着本发明方法的步骤数量的增加,所实现的 附加性能与大小之比通常降低(收益递减),参见属性1和属性4。因此, 他们的方法非常不可能在将来的步骤中错过重要的改进,并且它们的方法 又类似于性能和所需存储器的有效边界。
当不满足属性1至属性4时,发明人的递归方法可能具有局限性。例 如,在他们需要追加在先的昂贵但不直接有益的索引的情况下,他们的方 法可能错过有益的索引。在这种情况下,发明人参考了对本发明方法的潜 在扩展的讨论。为了研究特殊情况的最佳差距,发明人推荐使用CoPhy 的解决方案作为参考。由于基于假设优化器的成本缺乏功能结构,所以导 出性能保证将是具有挑战性的。

Claims (10)

1.一种为了允许更高效地运行对数据库的查询的目的而确定索引集I的方法,所述方法被实现在具有物理处理单元和物理存储装置的计算机系统中,所述计算机在所述物理存储装置中存储具有N个属性的数据库,所述方法包括以下步骤:
(1)设置工作索引集
Figure FDA0002438954180000011
(2)确定使相关联的成本降低与相关联的附加存储器消耗之间的比率最小化的单属性索引{i}(i=1,...,N);
(3)将所确定的单属性索引添加到所述工作索引集I中;
(4)对于每个基本索引元素{i}(i=1,...,N)并且对于每个索引k∈I,
(a)如果
Figure FDA0002438954180000012
则通过将{i}作为新的单属性索引添加到所述工作索引集I中来创建新索引集
Figure FDA0002438954180000013
以及
(b)通过在所述工作索引集I的索引k的末尾追加{i}来创建新索引集
Figure FDA0002438954180000014
(5)从步骤(4)中创建的所述新索引集
Figure FDA0002438954180000015
中选择新集合
Figure FDA0002438954180000016
所述新集合
Figure FDA0002438954180000017
具有最佳的相关联的成本降低与相关联的附加存储器消耗之间的比率;以及
(6)设置所述工作索引集
Figure FDA0002438954180000018
2.根据权利要求1所述的方法,还包括以下步骤:
(7)重复步骤(4)至(6)直至达到预定条件。
3.根据权利要求2所述的方法,其中,所述预定条件是存储器消耗超过存储器预算、或者达到预先限定的最大构建步骤数量、或者无法实现进一步改进。
4.根据权利要求1至3中的任一项所述的方法,其中,所述相关联的成本包括工作负荷成本,并且优选地还包括由函数
Figure FDA0002438954180000019
限定的将当前索引集
Figure FDA00024389541800000110
改变为工作索引集I的重新配置成本。
5.根据权利要求4所述的方法,其中,所述工作负荷成本由函数F(I)限定,将当前索引集
Figure FDA00024389541800000111
改变为工作索引集I的所述重新配置成本由函数
Figure FDA00024389541800000112
限定,并且所述存储器消耗由函数P(I)限定。
6.根据权利要求1至3中任一项所述的方法,其中,所述数据库当前不使用索引集。
7.根据权利要求1至3中任一项所述的方法,其中,所述数据库当前使用当前索引集
Figure FDA0002438954180000021
8.根据权利要求1至3中任一项所述的方法,其中,根据步骤(2)的所述比率是根据
Figure FDA0002438954180000022
确定的,并且其中,根据步骤(5)的所述比率是根据
Figure FDA0002438954180000023
确定的。
9.一种计算机系统,其被配置用于执行根据前述权利要求中的任一项所述的确定索引集I的方法。
10.一种包括指令的计算机程序产品,当计算机执行所述程序时,所述指令使所述计算机执行根据权利要求1至8中的任一项所述的方法的步骤。
CN202010260083.3A 2019-04-03 2020-04-03 大型数据库系统的迭代式多属性索引选择 Pending CN111797118A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP19167157.7A EP3719663B1 (en) 2019-04-03 2019-04-03 Iterative multi-attribute index selection for large database systems
EP19167157.7 2019-04-03

Publications (1)

Publication Number Publication Date
CN111797118A true CN111797118A (zh) 2020-10-20

Family

ID=66290173

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010260083.3A Pending CN111797118A (zh) 2019-04-03 2020-04-03 大型数据库系统的迭代式多属性索引选择

Country Status (3)

Country Link
US (1) US20200320070A1 (zh)
EP (1) EP3719663B1 (zh)
CN (1) CN111797118A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116483831A (zh) * 2023-04-12 2023-07-25 上海沄熹科技有限公司 一种分布式数据库推荐索引生成方法
CN117689001A (zh) * 2024-02-02 2024-03-12 中科方寸知微(南京)科技有限公司 基于零数据搜索的神经网络多粒度剪枝压缩方法及系统

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5913206A (en) * 1997-08-15 1999-06-15 Microsoft Corporation Database system multi-column index selection for a workload
US7805411B2 (en) * 2003-09-06 2010-09-28 Oracle International Corporation Auto-tuning SQL statements
US9773032B2 (en) * 2011-09-30 2017-09-26 Bmc Software, Inc. Provision of index recommendations for database access
US20130263117A1 (en) * 2012-03-28 2013-10-03 International Business Machines Corporation Allocating resources to virtual machines via a weighted cost ratio

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116483831A (zh) * 2023-04-12 2023-07-25 上海沄熹科技有限公司 一种分布式数据库推荐索引生成方法
CN116483831B (zh) * 2023-04-12 2024-01-30 上海沄熹科技有限公司 一种分布式数据库推荐索引生成方法
CN117689001A (zh) * 2024-02-02 2024-03-12 中科方寸知微(南京)科技有限公司 基于零数据搜索的神经网络多粒度剪枝压缩方法及系统
CN117689001B (zh) * 2024-02-02 2024-05-07 中科方寸知微(南京)科技有限公司 基于零数据搜索的神经网络多粒度剪枝压缩方法及系统

Also Published As

Publication number Publication date
EP3719663B1 (en) 2022-10-26
EP3719663A1 (en) 2020-10-07
US20200320070A1 (en) 2020-10-08

Similar Documents

Publication Publication Date Title
US11330043B2 (en) Automated server workload management using machine learning
Akdere et al. Learning-based query performance modeling and prediction
Schlosser et al. Efficient scalable multi-attribute index selection using recursive strategies
Herodotou et al. Profiling, what-if analysis, and cost-based optimization of mapreduce programs
CN102945240B (zh) 一种支持分布式计算的关联规则挖掘算法实现方法及装置
Gunda et al. Nectar: automatic management of data and computation in datacenters
Khoussainova et al. Perfxplain: debugging mapreduce job performance
US20170132276A1 (en) Automatic partitioning
US8396852B2 (en) Evaluating execution plan changes after a wakeup threshold time
WO2017183065A1 (ja) リレーショナルデータベースのチューニング装置及び方法
US20100306188A1 (en) Persistent query plans
Akdere et al. The Case for Predictive Database Systems: Opportunities and Challenges.
US20070250517A1 (en) Method and Apparatus for Autonomically Maintaining Latent Auxiliary Database Structures for Use in Executing Database Queries
US10489266B2 (en) Generating a visualization of a metric at one or multiple levels of execution of a database workload
WO2007068667A1 (en) Method and apparatus for analyzing the effect of different execution parameters on the performance of a database query
US20160292233A1 (en) Discarding data points in a time series
CN112041832A (zh) 分析作业服务中的计算重用
CN111797118A (zh) 大型数据库系统的迭代式多属性索引选择
Jindal et al. Microlearner: A fine-grained learning optimizer for big data workloads at microsoft
Abdul et al. Database workload management through CBR and fuzzy based characterization
Kumar et al. Scalable performance tuning of hadoop mapreduce: a noisy gradient approach
CN111488736A (zh) 自学习分词方法、装置、计算机设备和存储介质
Schlosser et al. A decomposition approach for risk-averse index selection
Cai et al. A recommendation-based parameter tuning approach for Hadoop
Schuh et al. AIR: adaptive index replacement in Hadoop

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination