优化查询执行计划的方法和计划优化装置与流程

文档序号:12512604阅读:309来源:国知局
优化查询执行计划的方法和计划优化装置与流程
本发明涉及数据库领域,尤其涉及一种优化查询执行计划的方法和计划优化装置。
背景技术
:通常,结构化查询语言(StructuredQueryLanguage,SQL)是一种数据库查询和编程语言。用户输入的SQL语句通过执行器在关系数据库管理系统(RelationalDatabaseManagementSystem,RDBMS)上执行。该执行器通常能够执行大范围的查询,这些查询包括但不限于联合操作、分组操作、触发操作、查询条件中的函数执行等。该执行器包括执行SQL语句使用的多个查询执行计划。通常,多个查询执行计划中的每个包括计划时间和执行时间。计划时间是指计划或创建用于执行SQL语句的查询执行计划所需的时间。执行时间为执行针对SQL语句的查询执行计划所需的时间。基于计划时间和/或执行时间,执行器在用于执行SQL语句的多个查询执行计划中选择最佳计划。在传统方法中,所选查询执行计划的计划时间和/或执行时间有时是巨大的。特别地,创建查询执行计划用以执行具有更多数量的联合操作的SQL语句所需的计划时间要求更多时间且涉及到复杂性。在这种情况下,执行过程必须等到查询执行计划完全计划好或创建好。换言之,直到查询执行计划创建好才开始执行。因此,由于等待查询执行计划的创建和执行而延长了SQL语句的执行。有时,计划时间能比执行查询的执行时间长。在另一传统方法中,在执行查询执行计划的同时改善查询执行计划存在挑战。因为改善查询执行计划需要重新创建查询执行计划,这导致时间和资源浪费。另外,查询执行计划的创建始终涉及到计划时间,但不一定涉及到执行时间。例如,在执行时间达到‘X’前创建好或计划好查询执行计划存在挑战。因此,传统方法在计划查询执行计划时缺乏灵活性。技术实现要素:本发明的目的是管理计划时间和/或执行时间以管理查询执行。本发明的另一目的是优化所述计划时间和/或所述执行时间以及优化查询执行计划。执行所述优化,直到根据优化的计划时间和/或执行时间生成优化的查询执行计划。本发明涉及一种优化查询执行计划的方法。所述方法包括:从用户设备接收一个或多个优化参数用于优化查询执行计划,其中,所述查询执行计划是用于执行一个或多个查询的一个或多个查询执行计划中的最新计划;以及通过迭代所述查询执行计划的优化直到所述优化满足所述一个或多个优化参数来生成优化的查询执行计划。本发明的各实施例还公开了所述一个或多个优化参数包括查询语句、计划时间和计划执行时间中的至少一个。所述方法包括:当使用所述查询执行计划执行所述一个或多个查询的时长大于执行所述一个或多个查询需要的预定义时间段时,接收所述一个或多个优化参数。在一实施例中,所述查询执行计划存储在关联到所述计划优化装置的存储器中。所述方法还包括将所述优化的查询执行计划作为最新计划存储在所述计划优化装置的所述存储器中,用于执行所述一个或多个查询。在一实施例中,所述一个或多个查询执行计划在从所述用户设备接收计划创建请求后生成。所述计划创建请求包括查询语句、查询和所述一个或多个优化参数中的至少一个。一种计划优化装置在本发明中公开,用于优化查询执行计划。所述计划优化装置包括接收模块、计划优化模块、存储器、计划生成模块和更新模块。所述接收模块用于从用户设备接收一个或多个优化参数用于优化查询执行计划。所述一个或多个优化参数包括查询语句、计划时间和计划执行时间。当使用所述查询执行计划执行所述一个或多个查询的时长大于执行所述一个或多个查询需要的预定义时间段时,所述接收模块接收所述一个或多个优化参数。所述查询执行计划是用于执行一个或多个查询的一个或多个查询执行计划中的最新计划。所述一个或多个查询执行计划由所述计划生成模块在从所述用户设备接收计划创建请求后生成。所述计划创建请求包括查询语句、查询和所述一个或多个优化参数。所述存储器存储所述接收的计划创建请求。所述计划优化模块用于,通过迭代所述查询执行计划的优化直到所述优化满足所述一个或多个优化参数来生成优化的查询执行计划。所述更新模块用于将所述优化的查询执行计划作为最新计划存储在所述计划优化装置的所述存储器中,以用于执行所述一个或多个查询。本发明涉及一种非瞬时性计算机可读介质,所述介质包括存储在其上的操作,当所述操作由至少一个处理单元处理时,使得计划优化装置通过执行以下行为执行一个或多个动作:从用户设备接收一个或多个优化参数用于优化查询执行计划,其中,所述查询执行计划是用于执行一个或多个查询的一个或多个查询执行计划中的最新计划;以及通过迭代所述查询执行计划的优化直到所述优化满足所述一个或多个优化参数来生成优化的查询执行计划。本发明公开了一种在计划优化装置上的执行一个或多个动作的计算机程序。所述计算机程序包括用于从用户设备接收一个或多个优化参数用于优化查询执行计划的代码段。所述查询执行计划是用于执行一个或多个查询的一个或多个查询执行计划中的最新计划。所述计算机程序包括用于通过迭代所述查询执行计划的优化直到所述优化满足所述一个或多个优化参数来生成优化的查询执行计划的代码段。在一实施例中,本发明的优点是优化所述查询执行计划,包括优化计划时间和/或执行时间。本发明提供所述查询执行计划的优化直到满足所述计划时间和/或所述执行时间。特别地,在所述计划时间和/或所述执行时间期满之前,当前用于执行所述查询的所述查询执行计划进一步得到改善。这样,无需重新创建新计划,从而节省了时间。相反,旧计划本身得到了改善,一直改善到最佳查询执行计划生成。因此,时间不会浪费在重新创建查询执行计划上,还创建了最佳查询执行计划来快速、高效且没有延迟地执行所述查询。此外,本发明减少了计划时间和/或执行时间,从而减少了执行所述查询的时长。前述
发明内容只是说明性的,并非旨在以任何方式进行限制。除了上述说明性方面和特征,参照附图和下文详细描述,其它方面和特征将显而易见。附图说明本发明的新颖特点和特征在所附权利要求中进行阐述。但是本发明自身的实施例、优选的使用方式,及其其它目的和优势可以通过参考以下说明性实施例的详细说明结合附图得到最好的理解。现参照附图仅通过示例描述一个或更多的实施例。图1所示为根据本发明一些实施例的图示具有处理器和存储器的计划优化装置的示例性方框图;图2所示为根据本发明一些实施例的图示具有用于优化查询执行计划的各种数据和模块的计划优化装置的示例性方框图;图3示出了根据本发明一些实施例的优化查询执行计划的方法的流程图;以及图4示出了实施符合本发明的各实施例的示例性计算机系统的方框图。这些附图描绘了本发明的实施例,仅用于说明目的。本领域技术人员将很容易从以下描述中意识到本文中示出的结构和方法的替代性实施例可以在不脱离本文所描述的本发明的原理的情况下采用。具体实施方式上文相当宽泛地概述了本发明的特征和技术优点,目的是让人能更好地理解下文对本发明的详细描述。下文中将描述本发明的额外特征和优点,其形成本发明的权利要求书的主题。本领域的技术人员应了解,所公开的概念和具体方面可容易地用作修改或设计用于实现本发明的相同目的的其他结构的基础。本领域的技术人员还应意识到,此类等效构造不脱离所附权利要求书中所阐述的本发明的范围。根据以下描述结合附图内容可以更好地理解被视为本发明的特点,无论是关于其组成还是操作方法,的新颖特征以及其它目的和优势。但是,应明确了解,提供的每个图仅用于说明性和描述性目的,并非旨在对本发明进行限制。本发明各实施例涉及查询执行计划的优化。接收计划创建请求以创建一个查询执行计划以执行由用户输入的查询。计划创建请求与查询一起接收。每当输入一个新查询,生成一个查询执行计划。查询执行计划是一个或多个查询执行计划中最近生成用于优化查询执行的一个最新计划。特别地,相继创建一个或多个查询执行计划,用于优化查询执行。因此,最近使用的查询执行计划被认为是一个或多个查询执行计划中的最新计划。使用查询语句、计划时间和执行时间执行优化。计划时间是指计划查询执行计划的优化需要的时间。执行时间是指执行优化的查询执行计划需要的时间。迭代查询执行计划的优化以创建优化的查询执行计划,直到满足计划时间和/或执行时间。这样,创建了最佳的优化的查询执行计划以优化查询执行。此后,本发明各实施例借助示例性图和一个或多个示例进行解释。然而,这类示例性图和示例用于说明性目的,以便更好地理解本发明,而不应解释为对本发明范围的限制。图1所示为根据本发明一些实施例的图示具有处理器104和存储器108的计划优化装置102的示例性方框图。计划优化装置102用于优化查询执行计划。在一实施例中,计划优化装置102以通信方式连接至用户设备100和一个或多个数据库服务器110a、110b……110n(统称为110)。在一个实施方式中,用户设备100可以在诸如膝上型电脑、台式电脑、笔记本、工作站、大型计算机、服务器、网络服务器等各种计算系统中实施。用户设备100可以由用户使用,用户可包括人或能够执行由用户执行的那些动作的设备本身。用户包括但不限于管理员、开发员、测试员、管理器、编辑器、信息技术(InformationTechnology,IT)人员、商业智能(BusinessIntelligence,BI)专家、数据专家等。在一实施例中,用户设备100使用户能够输入一个或多个查询,以及一个或多个优化参数。用户设备100包括用户界面(未示出),用以显示用于一个或多个查询中一个查询的查询执行计划的执行结果。用户可以通过用户界面输入一个或多个查询和一个或多个优化参数。另外,用户界面显示用于创建优化的查询执行计划的查询执行计划的优化迭代。出于说明目的,图1仅示出了一个用户设备100。然而,本领域技术人员将理解,可以存在“n”个连接至计划优化装置102的用户设备。一个或多个数据库服务器110关联到一个或多个数据库,这些数据库用于为从用户设备100接收的一个或多个查询提供查询结果。在一示例性实施例中,一个或多个数据库包括但不限于关系数据库管理系统(RelationalDatabaseManagementSystem,RDBMS)数据库、基于结构化查询语言(StructuredQueryLanguage,SQL)的数据库和非关系型数据库(NotOnlySQL,NoSQL)。在一实施例中,一个或多个数据库用于使用一个或多个数据库服务器110的执行器(未示出)提取查询结果。计划优化装置102可包括至少一个中央处理器(centralprocessingunit,CPU或者“处理器”)104、输入/输出(input/output,I/O)界面106和存储器108。在一实施例中,I/O界面106是分别接收和提供一个或多个输入数据和输出数据的界面。I/O界面106用于从用户设备100接收一个或多个查询。I/O界面106用于提供执行查询的查询执行计划的执行结果以供显示。I/O界面106用于向用户设备100提供从一个或多个数据库提取的查询结果或查询数据。此外,I/O界面106用于从用户设备100或从计划优化装置102本身接收一个或多个优化参数。查询执行计划优化的迭代结果和优化的查询执行计划一起通过I/O界面106发送到用户设备100显示。在一实施例中,查询执行计划的执行结果、优化的查询执行计划以及查询执行计划优化的迭代结果可以提供给关联到计划优化装置102的用户界面以供显示。在一实施例中,I/O界面106耦合至处理器104。处理器104可包括用于执行程序组件的至少一个数据处理器,该程序组件用于执行用户或设备生成的查询并且优化参数。处理器104用于执行通过I/O界面106接收的一个或多个查询。在一实施例中,处理器104用于:使用查询执行计划执行查询,通过一个或多个数据库服务器110从一个或多个数据库提取查询结果。处理器104用于基于计划创建请求生成查询执行计划。处理器104还用于优化称为最新计划的查询执行计划,该最新计划是一个或多个查询执行计划中最近生成的计划。具体而言,处理器104用于使用一个或多个优化参数优化查询执行计划,即最新计划。处理器104用于迭代查询执行计划的优化,直到满足一个或多个优化参数。在一个实施方式中,处理器104可以优化一个以上查询执行计划。在一实施例中,处理器104通过使用一个或多个数据以及实施和执行一个或多个模块来执行优化。存储器108以通信方式耦合至处理器104。存储器108存储处理器可执行指令,其在执行时使得处理器104执行查询执行计划即最新计划,的优化。存储器108存储由处理器104创建的一个或多个查询执行计划。存储器108将优化的查询执行计划存储为最新计划,即用于执行一个或多个查询的下一个最新计划。此外,存储器108存储一个或多个数据和一个或多个模块,这些将在本发明的以下描述中进行详细解释。图2所示为根据本发明一些实施例的具有用于优化查询执行计划的一个或多个数据200和一个或多个模块212的计划优化装置102的示例性方框图。在一实施例中,一个或多个数据200可包括从用户设备100接收的查询信息202、查询语句数据204、计划时间数据206、计划执行时间数据208和其它数据210,用以优化查询执行计划。查询信息202包括查询和查询语句的详细内容,它们在从用户设备100接收查询时接收。查询信息202可包括含有查询和查询语句数据204的用于创建查询的查询执行计划的计划创建请求。例如,假设用户提出查询‘Q’。在用户设备100提出查询‘Q’后,计划优化装置102接收到用于为查询‘Q’创建查询执行计划的计划创建请求。在一实施例中,计划创建请求包括查询,例如‘Q’,以及定义查询‘Q’的查询语句。例如,处理器104基于计划创建请求为查询‘Q’创建查询执行计划‘P1’。六个表联合的查询语句标准的示例如下所示:SELECTn_name,sum(l_extendedprice*(1-l_discount))asrevenueFROMcustomer,orders,lineitem,supplier,nation,regionwherec_custkey=o_custkeyandl_orderkey=o_orderkeyandl_suppkey=s_suppkeyandc_nationkey=s_nationkeyands_nationkey=n_nationkeyandn_regionkey=r_regionkeyandr_name='abc'/*':1'*/ando_orderdate>=timenow()ando_orderdate<timenow()+interval'1year'groupbyn_nameorderbyrevenuedesc;在一实施例中,计划创建请求还可包括计划时间和执行时间。计划时间是指为查询‘Q’计划或创建优化的查询执行计划的时间,或者计划查询执行计划优化需要的时间。执行时间是指执行用于执行查询‘Q’的优化的查询执行计划的时间。在一实施例中,查询执行计划‘P1’被认为是一个或多个查询执行计划中的最新计划或次优计划。相继创建一个或多个查询执行计划,用于优化查询‘Q’的执行。查询执行计划‘P1’为最新计划或次优计划。在一实施例中,可以只使用查询和查询语句创建查询执行计划。使用计划时间和执行时间来创建查询执行计划是可选的。数据200包括优化参数数据(未示出),其用作优化查询执行计划的一个或多个优化参数。优化参数数据包括查询语句数据204、计划时间数据206和计划执行时间数据208。查询语句数据204是指查询的查询语句。例如,假设查询执行计划‘P1’包含编程指令的100个语句。鉴于查询执行计划‘P1’的执行结果,假设执行所花的时长大于预定义时间段。该预定义时间段是执行必须完成的时间段。例如,预定义时间段可认为是一个小时。特别地,最初通过查看,执行查询执行计划‘P1’的第14个语句时所花的时长更长。因此,针对查询‘Q’,用户设备100想要从编程指令的第14个语句优化查询执行计划‘P1’。因此,用户设备100指定查询语句如下所示:EnhancePlan(14,30m,15m)-----------------------------(1)计划时间数据206是指用于创建或计划查询执行计划‘P1’的优化,即用于创建从‘P1’到‘P1*’的优化的查询执行计划,的时间。例如,用户设备100通过从第14个语句开始优化查询执行计划‘P1’来指定创建优化的查询执行计划为‘P1*’的计划时间为30分钟。在30分钟内为查询‘Q’创建改善或优化的查询执行计划‘P1*’的示例性指令如下所述:EnhancePlan(14,30m)-----------------------------(2)启动并执行从查询执行计划‘P1’的第14个语句开始的优化,直到30分钟的计划时间期满。此外,重复地迭代该优化,直到产生依据满足计划时间的最佳执行计划的优化结果。计划执行时间数据208是指执行查询‘Q’的优化的查询执行计划‘P1*’的时间。例如,执行时间指定为15分钟用于执行为‘P1*’的优化的查询执行计划。优化的查询执行计划‘P1*’的执行从第14个语句开始。在15分钟的计划执行时间内执行查询‘Q’的改善或优化的查询执行计划‘P1*’的示例性指令如下所述:EnhancePlan(14,30m,15m)-----------------------------(3)启动并执行从优化的查询执行计划‘P1*’的第14个语句开始的执行,直到15分钟的计划执行时间期满。此外,重复地迭代该优化,直到产生依据满足计划执行时间的最佳执行计划的优化结果。在一实施例中,可以执行优化,直到计划时间和计划执行时间中的任一或两者期满。其它数据210可指能用于查询执行计划‘P1’的优化的此类数据。在一实施例中,存储器108中的一个或多个数据200由计划优化装置102的一个或多个模块212处理。一个或多个模块212可存储在如图2所示的存储器108内。在一示例中,以通信方式耦合至处理器104的一个或多个模块212还可存在于存储器108的外部。特别地,存储器108中包括一个或多个优化参数的一个或多个数据200由一个或多个模块212使用。如本文使用的术语模块是指专用集成电路(applicationspecificintegratedcircuit,ASIC)、电子电路、(共享、专用或群组)处理器和存储器(它们执行一个或多个软件或固件程序)、组合的逻辑电路和/或提供所描述功能的其它合适组件。一个或多个模块212可包括,例如接收模块214、计划生成模块216、计划优化模块218和输出模块220。模块212中包括执行查询执行计划优化的各种各样功能的其它模块222。将了解,上述这些模块可表示为单个模块或不同模块的组合。接收模块212用于接收一个或多个查询。下面的(4)示出了为查询例如‘Q’创建查询执行计划‘P1’的计划创建请求语句:Prepare(querystmt,“query”,planningtime,planexecutiontime)--------------------(4)计划生成模块216用于为查询‘Q’生成查询执行计划‘P1’。计划优化模块218通过迭代查询执行计划‘P1’的优化直到优化满足一个或多个优化参数来生成优化的查询执行计划‘P1*’。例如,假设‘P1’是用作执行查询‘Q’的最新计划或次优计划的查询执行计划。假设查询执行计划‘P1’包含编程指令的100个语句。鉴于查询执行计划‘P1’的执行结果,假设执行所花的时长大于必须完成该执行的预定义时间段。特别地,最初通过查看,执行查询执行计划‘P1’的第14个语句时所花的时长更长。因此,用户想要从14个语句开始优化执行查询‘Q’的计划和计划执行时间。所以,用户设备100指定优化参数如下所示:EnhancePlan(querystmt,planningtime,planexecutiontime)-------------------(5)在一实施例中,计划优化装置102使用模拟的退火技术和/或通用技术来优化查询执行计划‘P1’。因此,通过迭代查询执行‘P1’的优化直到计划时间和/或执行时间期满或直到创建最佳计划,生成优化的查询执行计划‘P1*’。在一实施例中,优化的查询执行计划‘P1*’存储在存储器108中。特别地,优化的查询执行计划‘P1*’作为最新计划存储在存储器108中,用以在下一循环或下一执行过程中执行一个或多个查询。输出模块220用于提供一个或多个输出数据以供显示。输出数据包括但不限于查询执行计划‘P1’的执行结果、优化的查询执行‘P1*’的生成和用以创建优化的查询执行计划‘P1*’的查询执行计划‘P1’优化的迭代。图3示出了根据本发明的一些实施例的优化查询执行计划‘P1’的方法300的流程图。如图3所示,方法300包括用于优化查询执行计划的一个或多个方框。方法300可以在计算机可执行指令的一般上下文中进行描述。通常,计算机可执行指令包括例行程序、编制程序、对象、组件、数据结构、流程、模块和功能,它们执行特定功能或实现特定抽象数据类型。描述方法300的顺序并不旨在解释为限制,任何数量的所描述的方法方框可以以任何顺序组合来实施方法300。另外,可以在不偏离本文所描述主题的范围的情况下从方法300中删除各个方框。此外,方法300可以在任何合适的硬件、软件、固件或它们的组合中实施。在方框302处,开始一个或多个查询的执行过程。在方框304处,使用过去创建的一个或多个查询执行计划中的查询执行计划‘P1’执行从用户设备100接收的一个或多个查询。在一实施例中,基于一个或多个查询的计划创建请求创建查询执行计划‘P1’。例如,假设‘P1’是为查询‘Q’创建的查询执行计划。而且假设查询执行计划‘P1’是最近或当前在执行查询‘Q’中使用的最新查询执行计划。在方框306处,检查一条件:查询执行计划的执行所花的时间是否大于该执行应完成的预定义时间段。例如,假设查询执行计划‘P1’包含编程指令的100个语句。鉴于查询执行计划‘P1’的执行结果,例如,假设执行时间为1小时30分钟,而执行的预定义时间段应为1个小时。特别地,最初通过查看,执行查询执行计划‘P1’的第14个语句时所花的时长更长。如果查询执行计划的执行时长不大于预定义时间段,那么该过程通过‘否’进入方框308,其中不执行优化的过程,而以传统方式执行查询。如果查询执行计划的执行时长大于预定义时间段,那么该过程通过‘是’进入方框310。在方框310处,从用户设备100接收包括查询语句、计划时间和计划执行时间的一个或多个优化参数,用以优化查询执行计划‘P1’。例如,将一个或多个优化参数用于查询执行计划‘P1’上,以优化查询执行计划‘P1’。具体地,采用一个或多个优化参数以从查询执行计划‘P1’的编程指令的第14个语句开始优化查询执行计划‘P1’。在方框312处,通过迭代查询执行计划‘P1’的优化直到优化满足一个或多个优化参数来生成优化的查询执行计划‘P1*’。从检查执行条件开始启动迭代。例如,从查询执行计划‘P1’的编程指令的第14个语句开始启动迭代。在一实施例中,执行迭代,直到生成最佳执行计划。在一实施例中,执行迭代,直到计划时间和/或计划执行时间期满。计算机系统图4示出了实施符合本发明的实施例的示例性计算机系统400的方框图。在一实施例中,计算机系统400用于实施计划优化装置102。计算机系统400可包括中央处理器(centralprocessingunit,CPU或“处理器”)402。处理器402可包括用于执行程序组件的至少一个数据处理器,该程序组件用于生成优化的查询执行计划。处理器402可包括专用处理单元,诸如集成系统(总线)控制器、内存管理控制单元、浮点单元、图形处理单元、数字信号处理器单元等。处理器402可设置为通过I/O界面401与一个或多个输入/输出(input/output,I/O)设备(412和413)通信。I/O界面401可采用通信协议/方法,诸如不限于音频、模拟、数字、Monoaual、RCA、立体声、IEEE-1394、串行总线、通用串行总线(universalserialbus,USB)、红外线、PS/2、BNC、同轴、组件、复合物、数字视频接口(digitalvisualinterface,DVI)、高清晰多媒体接口(high-definitionmultimediainterface,HDMI)、RF天线、S-Video、VGA、IEEE802.n/b/g/n/x、蓝牙、蜂窝(例如码分多址接入(code-divisionmultipleaccess,CDMA)、高速分组接入(high-speedpacketaccess,HSPA+)、全球移动通信系统(globalsystemformobilecommunications,GSM)、长期演进(long-termevolution,LTE)、WiMax等),等等。I/O界面401可包括各种各样的软件和硬件界面,例如网页界面、图形用户界面等。使用I/O界面401,计算机系统400可与一个或多个I/O设备(412和413)通信。例如,输入设备412可以是天线、键盘、鼠标、操纵杆、(红外)遥控器、摄像机、读卡器、传真机、软件狗、生物识别阅读器、麦克风、触摸屏、触摸板、轨迹球、传感器(例如加速计、光传感器、GPS、陀螺仪、接近传感器等)、手写笔、扫描仪、存储设备、收发器、视频设备/源、取景器等。输出设备413可为打印机、传真机、视频显示器(例如阴极射线管(cathoderaytube,CRT)、液晶显示器(liquidcrystaldisplay,LCD)、发光二极管(light-emittingdiode,LED)、等离子等)、扬声器等。在一些实施例中,处理器402可设置为通过网络接口403与通信网络409通信。网络接口403可与通信网络409通信。网络接口403可采用连接协议,包括但不限于直接连接、以太网(例如双绞线对10/100/1000BaseT)、传输控制协议/互联网协议(transmissioncontrolprotocol/internetprotocol,TCP/IP)、令牌环、IEEE802.11a/b/g/n/x等。通信网络409可包括但不限于直接互联、局域网(localareanetwork,LAN)、广域网(wideareanetwork,WAN)、(例如使用无线应用协议的)无线网络、互联网等。使用网络接口403和通信网络409,计算机系统400可与一个或多个数据库服务器410(a……n)和一个或多个用户设备411(a……n)通信。一个或多个数据库服务器410(a……n)包括但不限于关系数据库,即关系数据库管理系统(RelationalDatabaseManagementSystems,RDBMS)、基于结构化查询语言(StructuredQueryLanguage,SQL)的数据库和非关系型数据库(NotOnlySQL,NOSQL)。一个或多个用户设备411(a……n)可包括但不限于个人电脑、服务器、传真机、打印机、扫描仪、各种移动设备诸如蜂窝电话、智能手机、平板电脑、电子书阅读器、膝上型电脑、笔记本、游戏机等等。在一实施例中,从组织的各种利益相关方、信息技术(InformationTechnology,IT)管理员、商业分析家、软件测试员、软件开发员或终端用户可能使用的一个或多个用户设备411(a……n)接收一个或多个查询。在一些实施例中,处理器402可设置为通过存储接口404与存储器405(例如RAM、ROM等,未在图4中示出)通信。存储接口404可采用连接协议,诸如串行高级技术附件(serialadvancedtechnologyattachment,SATA)、集成驱动电路(integrateddriveelectronics,IDE)、IEEE-1394、通用串行总线(universalserialbus,USB)、光纤通道、小型计算机系统接口(smallcomputersystemsinterface,SCSI)等,连接至存储器405,存储器包括但不限于内存驱动、可移动磁盘驱动等。存储器驱动还可包括磁鼓、磁盘驱动、磁光驱动、廉价冗余磁盘阵列(redundantarrayofindependentdiscs,RAID)、固态存储设备、固态驱动等。存储器405可存储程序集合或数据库组件集合,包括但不限于用户界面应用406、操作系统407、网页服务器408等。在一些实施例中,计算机系统400可存储用户/应用数据406,诸如数据、变量、记录等,如本发明所述。这类数据库可以为容错、关系、可扩展、安全的数据库,诸如Oracle或Sybase。操作系统407可方便计算机系统400的资源管理和操作。操作系统的示例包括但不限于苹果机OSX、Unix、类Unix系统发行套件(例如Berkeley软件发行(BerkeleySoftwareDistribution,BSD)、FreeBSD、NetBSD、OpenBSD等)、Linux发行套件(例如红帽、Ubuntu、Kubuntu等)、IBMOS/2、微软视窗(XP、Vista/7/8等)、苹果iOS、谷歌安卓、黑莓OS等等。用户界面406可通过文本或图形工具方便程序组件的显示、执行、交互、操控或操作。例如,用户界面可在显示系统上提供计算机交互界面元素,该显示系统可操作地连接至计算机系统400,元素包括光标、图标、复选框、菜单、滚动组件、窗口、微件等。可采用图形用户界面(Graphicaluserinterfaces,GUI),包括但不限于苹果机操作系统的Aqua、IBMOS/2、微软视窗(例如Aero、Metro等)、UnixX-窗口、网页界面库(例如ActiveX、Java、Javascript、AJAX、HTML、AdobeFlash等),等等。在一些实施例中,计算机系统400可实施网页浏览器408存储的程序组件。网页浏览器408可为超文本查看应用,诸如微软互联网浏览器、谷歌浏览器、火狐浏览器、苹果浏览器等。使用安全超文本传输协议(securehypertexttransportprotocol,HTTPS)、安全套接层(securesocketslayer,SSL)、传输层安全(TransportLayerSecurity,TLS)等可提供安全的网页浏览。网页浏览器可利用诸如AJAX、DHTML、AdobeFlash/JavaScript、Java、应用编程接口(applicationprogramminginterface,API)等工具。在一些实施例中,计算机系统400可实施邮件服务器存储的程序组件。邮件服务器可为互联网邮件服务器,诸如微软邮件交换等。邮件服务器可利用诸如ASP、ActiveX、ANSIC++/C#、Microsoft.NET、CGI脚本、Java、JavaScript、PERL、PHP、Python、WebObjects等工具。邮件服务器可利用通信协议,诸如互联网消息接入协议(internetmessageaccessprotocol,IMAP)、消息应用程序接口(messagingapplicationprogramminginterface,MAPI)、微软邮件交换、邮局协议(postofficeprotocol,POP)、简单邮件传输协议(simplemailtransferprotocol,SMTP)等等。在一些实施例中,计算机系统400可实施邮件客户端存储的程序组件。邮件客户端可为邮件查看应用,诸如苹果邮件、微软环境、微软Outlook、火狐雷鸟等。此外,实施符合本发明的各实施例时可使用一个或多个计算机可读存储介质。计算机可读存储介质是指任意类型的物理存储器,可将处理器可读的信息或数据存储在该物理存储器上。因此,计算机可读存储介质可存储一个或多个处理器执行的指令,包括使得处理器执行符合本文描述的实施例的步骤或阶段。术语“计算机可读介质”应当理解为包括有形物体并且排除载波和瞬态信号,即为非瞬时性的。示例包括随机存取存储器(randomaccessmemory,RAM)、只读存储器(read-onlymemory,ROM)、易失性存储器、非易失性存储器、硬盘、CDROM、DVC、闪存盘、磁盘以及任意其它熟知的物理存储介质。在一个实施方式中,计算机系统400用于通过网络接口403在网络409上与一个或多个数据库410(a……n)和一个或多个用户设备411(a……n)通信。网络包括但不限于直接互联、电子商务网络、端到端(peertopeer,P2P)网络、局域网(localareanetwork,LAN)、广域网(wideareanetwork,WAN)、(例如使用无线应用协议的)无线网络、互联网、Wi-Fi等。网络可以是专用网络或共享网络,这表示使用各种协议,例如,超文本传输协议(HypertextTransferProtocol,HTTP)、传输控制协议/互联网协议(TransmissionControlProtocol/InternetProtocol,TCP/IP)、无线应用协议(WirelessApplicationProtocol,WAP)等来彼此通信的各种类型网络的联合。此外,网络可以包括各种网络设备,包括路由器、网桥、服务器、计算设备、存储设备等。网络接口403可采用连接协议,包括但不限于,直接连接、以太网(双绞线10/100/1000BaseT)、传输控制协议/互联网协议(transmissioncontrolprotocol/internetprotocol,TCP/IP)、令牌环、IEEE802.11a/b/g/n/x等。另外,本文说明了本发明的优点。本发明各实施例涉及管理计划时间和/或执行时间以管理一个或多个查询的执行。本发明各实施例涉及优化计划时间和或执行时间以及优化查询执行计划。执行所述优化,直到生成优化的查询执行计划,直到满足计划时间和/或执行时间。这样,本发明提供一个可以快速、高效且无延迟地执行查询的最佳查询执行计划。本发明各实施例减少了计划时间和/或执行时间,从而减少了执行一个或多个查询的时长。所描述操作可以实施为一种使用标准编程和/或工程技术方法、系统或制成品以生成软件、固件、硬件或它们的任何组合。所描述操作可以实施为在“非瞬时性计算机可读介质”中保存的代码,其中处理器可以从计算机可读介质中读取和执行该代码。该处理器为能够处理和执行查询的微处理器和处理器中的至少一个。非瞬时性计算机可读介质可包括诸如磁存储介质(例如,硬盘驱动器、软盘、磁带等)、光存储器(CD-ROM、DVD、光盘等)、易失性和非易失性存储设备(例如,EEPROM、ROM、PROM、RAM、DRAM、SRAM、闪存、固件、可编程逻辑等)等的介质。此外,非瞬时性计算机可读介质包括除瞬时性介质外的所有计算机可读介质。实施所述操作的代码可进一步在硬件逻辑(例如,集成电路芯片、可编程门阵列(ProgrammableGateArray,PGA)、专用集成电路(ApplicationSpecificIntegratedCircuit,ASIC)等)中实施。此外,实施所述操作的代码可以通过“传输信号”实施,其中传输信号可以通过空间或通过传输介质,例如光纤、铜线等传播。代码或逻辑已编码的传输信号还可以包括无线信号、卫星传输、无线电波、红外信号、蓝牙等。代码或逻辑已编码的传输信号能够通过传输站传输和由接收站接收,其中,在接收站或设备和传输站或设备处,编码在传输信号中的代码或逻辑可以解码或存储在硬件或非瞬时计算机可读介质中。“制成品”包括非瞬时性计算机可读介质、硬件逻辑,和/或可以在其中实施代码的传输信号。对实施所描述操作的实施例的代码进行编码的设备可以包括计算机可读介质或硬件逻辑。当然,本领域技术人员将认识到可以对这种配置进行各种修改,而不脱离本发明的范围,以及制造品可以包括承载本领域已知的介质的合适信息。除非另有明确规定,否则术语“一实施例”、“实施例”、“多项实施例”、“所述实施例”、“这些实施例”、“一项或多项实施例”、“一些实施例”和“一项实施例”指“本发明的一项或多项(但不是全部)实施例”。除非另有明确规定,否则术语“包含”、“包括”、“具有”和其他形式指的是“包括但不限于”。除非另有明确规定,否则枚举的项目列表并不意味着这些项目中的任何项目或所有项目是互斥的。除非另有明确规定,否则术语“一”、“一个”和“所述”指“一个或多个”。利用相互通信的若干组件描述一实施例并不意味着需要所有这些组件。相反,描述多种可选组件来说明本发明的许多种可能的实施例。虽然本文描述了单个设备或制品,但显然可以使用不止一个设备/制品(不论它们是否协作)来代替单个设备/制品。类似地,虽然本文描述了不止一个设备或制品(不论它们是否协作),但显然可以使用单个设备/制品来代替不止一个设备或制品,或者可以使用不同数量的设备/制品,而不是所示数量的设备或程序。设备的功能和/或特征可替代性地由没有明确地描述为具有这种功能/特征的一个或多个其它设备来实施。因此,本发明的其它实施例不需要包括设备本身。图3中所示出的操作示出了以某一顺序发生的事件。在替代性实施例中,某些操作可以以不同顺序执行,修改或移除。此外,多个步骤可以添加到上面描述的逻辑并且仍然符合所描述的实施例。此外,本文描述的操作可按顺序发生,或者某些操作可并行处理。又另外,操作可由单个处理单元或由分布式处理单元执行。最后,出于可读性和指导性的目的已经主要选择了说明书中使用的语言,并且该语言未被选择成限定或限制本发明的主题。因此,本发明的范围并非意在由这一详细描述限制,而是由在基于本文的应用上所附的任何权利要求限制。因此,本发明实施例旨在举例说明,而非限制在所附权利要求中阐述的本发明范围。尽管本文公开了多个方面和实施例,但是其它方面和实施例对于本领域技术人员来说应该是显而易见的。本文所公开的多个方面和实施例是出于说明性目的,而非限制性的,真实范围由所附权利要求表征。参考编号参考编号描述100用户设备102计划优化装置104处理器106I/O界面108存储器110a、110b……110n数据库服务器200数据202查询信息204查询语句数据206计划时间数据208计划执行时间数据210其它数据212模块214接收模块216计划生成模块218计划优化模块220输出模块222其它模块400计算机系统401I/O界面402处理器403网络接口404存储接口405存储器406用户界面407操作系统408网页服务器409网络410(a……n)数据库411(a……n)用户设备412输入设备413输出设备当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1