CN108628972B - 一种数据表的处理方法、装置及存储介质 - Google Patents
一种数据表的处理方法、装置及存储介质 Download PDFInfo
- Publication number
- CN108628972B CN108628972B CN201810379951.2A CN201810379951A CN108628972B CN 108628972 B CN108628972 B CN 108628972B CN 201810379951 A CN201810379951 A CN 201810379951A CN 108628972 B CN108628972 B CN 108628972B
- Authority
- CN
- China
- Prior art keywords
- data table
- target data
- column
- partition
- execution cost
- 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.)
- Active
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据表的处理方法,包括:基于查询语句对目标数据表的单次执行成本、以及所述目标数据表中各列的执行次数,确定所述查询语句对应所述目标数据表中各列的执行成本;基于所述各列的执行成本,确定各列的执行成本比例;将满足预设执行成本比例条件的列,作为所述目标数据表的分区键;基于所述目标数据表的分区键,对所述目标数据表进行处理;所述单次执行成本表示对所述目标数据表执行所述查询语句所消耗的硬件资源。本发明还同时公开了一种数据表的处理装置、以及存储介质。
Description
技术领域
本发明涉及电数字数据处理技术领域,尤其涉及一种数据表的处理方法、装置及存储介质。
背景技术
互联网时代促使数据库数据爆发性增长,在大数据时代,对于传统的关系型数据库来说,在进行数据查询或清理的过程中,无论是采用全表扫描的方式还是采用索引扫描的方式,都因为数据量过于巨大,导致数据查询或清理效率低,且准确性不高。
现有技术中,为了提高数据库的查询速度以及便于对历史数据进行数据清理,会采用对数据表进行分区的方法,但是,需要依赖对业务熟悉的开发人员来操作,因此,这就需要大量的人力资源,极大地增加了处理成本,降低了数据库分区效率和准确性。
发明内容
有鉴于此,本发明实施例期望提供一种数据表的处理方法、装置及存储介质,能够智能地确定分区键。
为达到上述目的,本发明实施例的技术方案是这样实现的:
本发明实施例提供一种数据表的处理方法,所述方法包括:
基于查询语句对目标数据表的单次执行成本、以及所述目标数据表中各列的执行次数,确定所述查询语句对应所述目标数据表中各列的执行成本;
基于所述各列的执行成本,确定各列的执行成本比例;
将满足预设执行成本比例条件的列,作为所述目标数据表的分区键;
基于所述目标数据表的分区键,对所述目标数据表进行处理;
所述单次执行成本表示对所述目标数据表执行所述查询语句所消耗的硬件资源。
本发明实施例还提供一种数据表的处理装置,所述装置包括:第一确定模块、第二确定模块、第三确定模块和处理模块;其中,
所述第一确定模块,用于基于查询语句对目标数据表的单次执行成本、以及所述目标数据表中各列的执行次数,确定所述查询语句对应所述目标数据表中各列的执行成本;
所述第二确定模块,用于基于所述各列的执行成本,确定各列的执行成本比例;
所述第三确定模块,用于将满足预设执行成本比例条件的列,作为所述目标数据表的分区键;
所述处理模块,用于基于所述目标数据表的分区键,对所述目标数据表进行处理;
所述单次执行成本表示对所述目标数据表执行所述查询语句所消耗的硬件资源。
本发明实施例还提供一种存储介质,其上存储有可执行程序,所述可执行程序被处理器执行时实现前述任意一种数据表的处理方法。
本发明实施例还提供一种数据表的处理装置,包括存储器、处理器及存储在存储器上并能够由所述处理器运行的可执行程序,所述处理器运行所述可执行程序时执行前述任意一种数据表的处理方法。
本发明实施例所提供的数据表的处理方法、装置及存储介质,通过确定查询语句对应目标数据表中各列的执行成本,并将满足执行成本比例条件的列,作为目标数据表的分区键,如此就能够根据分区键,实现对目标数据表的智能分区,从而降低人力资源和执行成本,提高对数据表的处理效率和准确性。
附图说明
图1为本发明实施例提供的数据表的处理方法的实现流程示意图;
图2为本发明实施例提供的数据表的处理方法的具体实现流程示意图;
图3为本发明实施例提供的数据表的处理装置的组成结构示意图;
图4为本发明实施例提供的数据表的处理装置的硬件结构示意图。
具体实施方式
为了能够更加详尽地了解本发明实施例的特点与技术内容,下面结合附图对本发明实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本发明。
图1为本发明实施例提供的一种数据表的处理方法;如图1所示,本发明实施例中的数据表的处理方法的实现流程,可以包括以下步骤:
步骤101:基于查询语句对目标数据表的单次执行成本、以及目标数据表中各列的执行次数,确定查询语句对应目标数据表中各列的执行成本。
在一些实施例中,可以通过查询数据库视图,获取查询语句对目标数据表的单次执行成本,其中,单次执行成本表示对目标数据表执行查询语句所消耗的硬件资源;可以查询数据库视图的设定列,获取查询语句对目标数据表中各列的执行次数。
在一些实施例中,查询语句对应目标数据表中某一列的执行成本,可以是以该列作为过滤条件的查询语句查询目标数据表时的执行成本之和。
举例来说,假定有n个查询语句对目标数据表进行了查询,以相同列为过滤条件的查询有a个,其中,a<=n,p表示查询语句对目标数据表中该列的执行次数,C表示查询语句对目标数据表的单次执行成本,则查询语句对应目标数据表中该列的执行成本为:
步骤102:基于各列的执行成本,确定各列的执行成本比例。
在一些实施例中,可以确定查询语句对目标数据表的总执行成本,分别计算查询语句对应各列的执行成本与总执行成本的比值;其中,查询语句对目标数据表的总执行成本,可以是所有查询语句查询目标数据表时的执行成本之和。
步骤103:将满足预设执行成本比例条件的列,作为目标数据表的分区键。
在一些实施例中,可以确定各列的执行成本的比值与设定阈值的大小关系,将大于设定阈值的比值所对应的列,作为目标数据表的分区键。
举例来说,预设执行成本比例条件可以是,查询语句对应各列的执行成本与总执行成本的比值大于设定阈值,这里设定阈值可以为95%。通过公式可以计算出将不同列作为过滤条件的查询语句执行成本在针对目标数据表的查询语句的总执行成本的比值,进而可以将P>95%所对应的列(该列的列名ID可以通过步骤101获取),作为目标数据表的分区键。
步骤104:基于目标数据表的分区键,对目标数据表进行处理。
在一些实施例中,可以基于分区键的类型,确定目标数据表的分区类型,其中,目标数据表的分区类型包括:范围分区、散列分区或列表分区。
具体地,当分区键的类型是date型,并且是多次查询一个时间段的数据(例如当查询语句中多次出现“between……and”或者“<”、“>”、“><”等关键字),则可以确定目标数据表的分区类型为范围分区,分区范围根据过滤条件可以选择按天、按月或者按年分区,分区键的类型为number型,且过滤条件也是按照范围进行过滤,总的范围大,则也可以确定目标数据表的分区类型为范围分区;若分区键重复值很高,只有少数的字符或者number型数据(根据dba_tab_columns表列统计信息视图中的num_distinct列获取),则可以确定目标数据表的分区类型为列表分区;若分区键是数值或者字符型,且查询都是等值查询,则可以确定目标数据表的分区类型为散列分区。
在一些实施例中,可以基于分区键和分区类型,对目标数据表进行分区。
举例来说,当查询语句对目标数据表的总执行次数大于等于设定次数阈值时,暂停针对目标数据表的执行权限;基于分区键和分区类型创建分区表,并将目标数据表中的数据插入分区表中;将分区表的名称替换为目标数据表的名称,并删除目标数据表,启动针对分区表的执行权限。
举例来说,当查询语句对目标数据表的总执行次数小于设定次数阈值时,基于分区键和分区类型,对目标数据表中的数据进行在线重定义。
本发明实施例所提供的数据表的处理方法,通过确定查询语句对应目标数据表中各列的执行成本,并将满足执行成本比例条件的列,作为目标数据表的分区键,如此就能够根据分区键,实现对目标数据表的智能分区,从而降低人力资源和执行成本,提高对数据表的处理效率和准确性。
下面对本发明实施例数据表的处理方法的具体实现过程做进一步地详细说明。
图2给出了本发明实施例数据表的处理方法的具体实现流程示意图;如图2所示,本发明实施例的数据表的处理方法包括以下步骤:
步骤201:查询数据库视图,获取查询语句对目标数据表的单次执行成本。
其中,单次执行成本表示对目标数据表执行查询语句所消耗的硬件资源。
具体地,可以查询v$sql_plan(当前共享池中的语句执行计划)视图或者dba_hist_sql_plan(历史执行过的语句执行计划)视图,获取sql_id(SQL编号),plan_hash_value(执行计划hash值),obj#(对象编号,表示前述两个视图的列名),obj_name(对象名,表示前述两个视图的列名),operation(操作类型),options(选项),postion(执行步骤),cost(执行成本,数据库根据自有的特定计算算法来评估执行查询语句会在机器的CPU、I/O等方面产生的成本),ACCESS_PREDICATES(访问条件),FILTER_PREDICATES(过滤条件)。
需要说明的是,一般地可以通过sqlplus或者pl/sql developer等客户端工具连接数据库,进而查询数据库视图,即数据库自有的动态性能视图v$sql_plan和dba_hist_sql_plan。
步骤202:查询数据库视图的设定列,获取查询语句对目标数据表中各列的执行次数。
具体地,可以通过获取到的sql_id(SQL编号),查询数据库视图的设定列,即可以查询v$sql视图的executions列或者dba_hist_sql_stats视图的EXECUTIONS_DELTA列,以获取查询语句对目标数据表中各列的执行次数。
步骤203:基于查询语句对目标数据表的单次执行成本、以及目标数据表中各列的执行次数,确定查询语句对应目标数据表中各列的执行成本。
具体地,查询语句对应目标数据表中某一列的执行成本,可以是以该列作为过滤条件的查询语句查询目标数据表时的执行成本之和。
举例来说,假定有n个查询语句对目标数据表进行了查询,以相同列为过滤条件的查询有a个,其中,a<=n,p表示查询语句对目标数据表中该列的执行次数,C表示查询语句对目标数据表的单次执行成本,则查询语句对应目标数据表中该列的执行成本为:
步骤204:基于各列的执行成本,确定各列的执行成本比例。
在一些实施例中,可以确定查询语句对目标数据表的总执行成本,分别计算查询语句对应各列的执行成本与总执行成本的比值;其中,查询语句对目标数据表的总执行成本,可以是所有查询语句查询目标数据表时的执行成本之和。
步骤205:确定各列的执行成本的比值与设定阈值的大小关系,将大于设定阈值的比值所对应的列,作为目标数据表的分区键。
举例来说,预设执行成本比例条件可以是,查询语句对应各列的执行成本与总执行成本的比值大于设定阈值,这里设定阈值可以为95%。通过公式可以计算出将不同列作为过滤条件的查询语句执行成本在针对目标数据表的查询语句的总执行成本的比值,进而可以将P>95%所对应的列(该列的列名ID可以通过步骤101获取),作为目标数据表的分区键。
步骤206:基于分区键的类型,确定目标数据表的分区类型。
其中,目标数据表的分区类型包括:范围分区、散列分区或列表分区。
具体地,当分区键的类型是date型,并且是多次查询一个时间段的数据(例如当查询语句中多次出现“between……and”或者“<”、“>”、“><”等关键字),则可以确定目标数据表的分区类型为范围分区,分区范围根据过滤条件可以选择按天、按月或者按年分区,分区键的类型为number型,且过滤条件也是按照范围进行过滤,总的范围大,则也可以确定目标数据表的分区类型为范围分区;若分区键重复值很高,只有少数的字符或者number型数据(根据dba_tab_columns表列统计信息视图中的num_distinct列获取),则可以确定目标数据表的分区类型为列表分区;若分区键是数值或者字符型,且查询都是等值查询,则可以确定目标数据表的分区类型为散列分区。
步骤207:基于分区键和分区类型,对目标数据表进行分区。
举例来说,当查询语句对目标数据表的总执行次数大于等于设定次数阈值时,暂停针对目标数据表的执行权限;基于分区键和分区类型创建分区表,并将目标数据表中的数据插入分区表中;将分区表的名称替换为目标数据表的名称,并删除目标数据表,启动针对分区表的执行权限。
举例来说,当查询语句对目标数据表的总执行次数小于设定次数阈值时,基于分区键和分区类型,对目标数据表中的数据进行在线重定义。
具体地,可以基于分区键和分区类型确定目标数据表的实施方案,并按该实施方案对目标数据表进行分区。实施过程可以根据目标数据表的访问频繁程度来确定实施方案,若访问非常频繁,则需停业务后采用CTAS(先根据原表结构新建一个分区表,然后将旧表数据插入新表中,最后将表名进行互换,启动业务)的方式进行,如果表访问频率较低,则可采用表在线重定义进行。
举例来说,按范围分区的分区方案示例:某系统某数据表数据量达60GB,数据量达几亿行,过滤条件经查按照INSERT_DAY列查询一天或者几天的数据,每小时执行次数811次,单次执行成本为3312,按照其他过滤条件每小时查询6次,单次执行成本为8503,所以按照公式计算P=(811*3312)/(811*3312+6*8503)=98.1%。所以选择insert_day为分区键,因为是查询一天的数据或者使用between……and查询几天的数据,所以确定分区类型为范围分区。实施方案如下:
1、停业务,停止目标数据表ERRORBILL_INFO的访问;
2、根据目标数据表ERRORBILL_INFO的定义,按照预先计算确定的分区键的分区类型,创建分区表;
3、将目标数据表ERRORBILL_INFO中的数据插入新创建的分区表中,并创建索引;
insert into errorbill_info_bk select*from errorbill_info;
create index idx_errorbill_insert_day on errorbill_info_bk(insert_day)local;
4、对新创建的分区表进行重命名(由“errorbill_info_bak”重命名为“errorbill_info”即原表的表名),并删除原数据表,完成数据表分区,并重新启动该新创建数据表的业务。
alter table errorbill_info rename to errorbill_info_bak;
alter table errorbill_info_bk rename to errorbill_info;
本发明实施例所提供的数据表的处理方法,通过对Oracle数据库的内部视图v$sql(当前共享池中执行的SQL)、dba_hist_sqlstat(历史SQL)、v$sql_plan(当前SQL执行计划)、dba_hist_sql_plan(历史SQL执行计划)进行查询,进而获取对目标表的查询、增、删、改等操作的情况,并通过确定查询语句对应目标数据表中各列的执行成本,并将满足执行成本比例条件的列,作为目标数据表的分区键,如此就能够根据分区键,实现对目标数据表的智能分区,该操作不需要依赖运维人员即可自动实现,从而降低人力资源和执行成本,提高对数据表的处理效率和准确性。
为实现上述方法,本发明实施例还提供了一种数据表的处理装置,如图3所示,该装置包括:第一确定模块301、第二确定模块302、第三确定模块303和处理模块304;其中,
第一确定模块301,用于基于查询语句对目标数据表的单次执行成本、以及目标数据表中各列的执行次数,确定查询语句对应目标数据表中各列的执行成本;单次执行成本表示对目标数据表执行查询语句所消耗的硬件资源。
第二确定模块302,用于基于各列的执行成本,确定各列的执行成本比例。
第二确定模块302,具体用于确定查询语句对目标数据表的总执行成本;分别计算查询语句对应各列的执行成本与总执行成本的比值。
第三确定模块303,用于将满足预设执行成本比例条件的列,作为目标数据表的分区键。
第三确定模块303,具体用于确定各列的执行成本的比值与设定阈值的大小关系;将大于设定阈值的比值所对应的列,作为目标数据表的分区键。
处理模块304,用于基于目标数据表的分区键,对目标数据表进行处理。
处理模块304,具体用于基于分区键的类型,确定目标数据表的分区类型;基于分区键和分区类型,对目标数据表进行分区;目标数据表的分区类型包括:范围分区、散列分区或列表分区。
处理模块304,具体用于当查询语句对目标数据表的总执行次数大于等于设定次数阈值时,暂停针对目标数据表的执行权限;基于分区键和分区类型创建分区表,并将目标数据表中的数据插入分区表中;将分区表的名称替换为目标数据表的名称,并删除目标数据表,启动针对分区表的执行权限。
处理模块304,还具体用于当查询语句对目标数据表的总执行次数小于设定次数阈值时,基于分区键和分区类型,对目标数据表中的数据进行在线重定义。
该装置还包括获取模块305,用于查询数据库视图,获取查询语句对目标数据表的单次执行成本;查询数据库视图的设定列,获取查询语句对目标数据表中各列的执行次数。
在实际应用中,第一确定模块301、第二确定模块302、第三确定模块303、处理模块304和获取模块305均可由位于计算机设备上的中央处理器(CPU,Central ProcessingUnit)、微处理器(MPU,Micro Processor Unit)、数字信号处理器(DSP,Digital SignalProcessor)或现场可编程门阵列(FPGA,Field Programmable Gate Array)等实现。
需要说明的是:上述实施例提供的数据表的处理装置在进行数据表的处理时,仅以上述各程序模块的划分进行举例说明,实际应用中,可以根据需要而将上述处理分配由不同的程序模块完成,即将装置的内部结构划分成不同的程序模块,以完成以上描述的全部或者部分处理。另外,上述实施例提供的数据表的处理装置与数据表的处理方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
为了实现上述数据表的处理方法,本发明实施例还提供了一种数据表的处理装置的硬件结构。现在将参考附图描述实现本发明实施例的数据表的处理装置,数据表的处理装置可以以终端设备,如智能手机、平板电脑、掌上电脑等计算机设备来实施。下面对本发明实施例提供的数据表的处理装置的硬件结构做进一步说明,可以理解,图4仅仅示出了数据表的处理装置的示例性结构而非全部结构,根据需要可以实施图4示出的部分结构或全部结构。
参见图4,图4为本发明实施例提供的一种数据表的处理装置的硬件结构示意图,实际应用中可以应用于前述运行应用程序的终端设备,图4所示的数据表的处理装置400包括:至少一个处理器401、存储器402、用户接口403和至少一个网络接口404。数据表的处理装置400中的各个组件通过总线系统405耦合在一起。可以理解,总线系统405用于实现这些组件之间的连接通信。总线系统405除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图4中将各种总线都标为总线系统405。
其中,用户接口403可以包括显示器、键盘、鼠标、轨迹球、点击轮、按键、按钮、触感板或者触摸屏等。
可以理解,存储器402可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。
本发明实施例中的存储器402用于存储各种类型的数据以支持数据表的处理装置400的操作。这些数据的示例包括:用于在数据表的处理装置400上操作的任何计算机程序,如可执行程序4021和操作系统4022,实现本发明实施例的数据表的处理方法的程序可以包含在可执行程序4021中。
本发明实施例揭示的数据表的处理方法可以应用于处理器401中,或者由处理器401实现。处理器401可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述数据表的处理方法的各步骤可以通过处理器401中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器401可以是通用处理器、DSP,或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器401可以实现或者执行本发明实施例中提供的各数据表的处理方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本发明实施例所提供的数据表的处理方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于存储器402,处理器401读取存储器402中的信息,结合其硬件完成前述数据表的处理方法的步骤。
本发明实施例还提供了一种数据表的处理装置的硬件结构,数据表的处理装置400包括存储器402、处理器401及存储在存储器402上并能够由处理器401运行的可执行程序4021,处理器401运行可执行程序4021时实现:
基于查询语句对目标数据表的单次执行成本、以及目标数据表中各列的执行次数,确定查询语句对应目标数据表中各列的执行成本;基于各列的执行成本,确定各列的执行成本比例;将满足预设执行成本比例条件的列,作为目标数据表的分区键;基于目标数据表的分区键,对目标数据表进行处理;单次执行成本表示对目标数据表执行查询语句所消耗的硬件资源。
在一些实施例中,处理器401运行可执行程序4021时实现:
确定查询语句对目标数据表的总执行成本;分别计算查询语句对应各列的执行成本与总执行成本的比值。
在一些实施例中,处理器401运行可执行程序4021时实现:
确定各列的执行成本的比值与设定阈值的大小关系;将大于设定阈值的比值所对应的列,作为目标数据表的分区键。
在一些实施例中,处理器401运行可执行程序4021时实现:
查询数据库视图,获取查询语句对目标数据表的单次执行成本;查询数据库视图的设定列,获取查询语句对目标数据表中各列的执行次数。
在一些实施例中,处理器401运行可执行程序4021时实现:
基于分区键的类型,确定目标数据表的分区类型;基于分区键和分区类型,对目标数据表进行分区。
在一些实施例中,处理器401运行可执行程序4021时实现:
当查询语句对目标数据表的总执行次数大于等于设定次数阈值时,暂停针对目标数据表的执行权限;基于分区键和分区类型创建分区表,并将目标数据表中的数据插入分区表中;将分区表的名称替换为目标数据表的名称,并删除目标数据表,启动针对分区表的执行权限。
在一些实施例中,处理器401运行可执行程序4021时实现:
当查询语句对目标数据表的总执行次数小于设定次数阈值时,基于分区键和分区类型,对目标数据表中的数据进行在线重定义。
本发明实施例还提供了一种存储介质,存储介质可为光盘、闪存或磁盘等存储介质,可选为非瞬间存储介质。其中,存储介质上存储有可执行程序4021,可执行程序4021被处理器401执行时实现:
基于查询语句对目标数据表的单次执行成本、以及目标数据表中各列的执行次数,确定查询语句对应目标数据表中各列的执行成本;基于各列的执行成本,确定各列的执行成本比例;将满足预设执行成本比例条件的列,作为目标数据表的分区键;基于目标数据表的分区键,对目标数据表进行处理;单次执行成本表示对目标数据表执行查询语句所消耗的硬件资源。
在一些实施例中,可执行程序4021被处理器401执行时实现:
确定查询语句对目标数据表的总执行成本;分别计算查询语句对应各列的执行成本与总执行成本的比值。
在一些实施例中,可执行程序4021被处理器401执行时实现:
确定各列的执行成本的比值与设定阈值的大小关系;将大于设定阈值的比值所对应的列,作为目标数据表的分区键。
在一些实施例中,可执行程序4021被处理器401执行时实现:
查询数据库视图,获取查询语句对目标数据表的单次执行成本;查询数据库视图的设定列,获取查询语句对目标数据表中各列的执行次数。
在一些实施例中,可执行程序4021被处理器401执行时实现:
基于分区键的类型,确定目标数据表的分区类型;基于分区键和分区类型,对目标数据表进行分区。
在一些实施例中,可执行程序4021被处理器401执行时实现:
当查询语句对目标数据表的总执行次数大于等于设定次数阈值时,暂停针对目标数据表的执行权限;基于分区键和分区类型创建分区表,并将目标数据表中的数据插入分区表中;将分区表的名称替换为目标数据表的名称,并删除目标数据表,启动针对分区表的执行权限。
在一些实施例中,可执行程序4021被处理器401执行时实现:
当查询语句对目标数据表的总执行次数小于设定次数阈值时,基于分区键和分区类型,对目标数据表中的数据进行在线重定义。
综上所述,本发明实施例所提供的数据表的处理方法、装置及存储介质,通过确定查询语句对应目标数据表中各列的执行成本,并将满足执行成本比例条件的列,作为目标数据表的分区键,如此就能够根据分区键,实现对目标数据表的智能分区,从而降低人力资源和执行成本,提高对数据表的处理效率和准确性。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或可执行程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的可执行程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和可执行程序产品的流程图和/或方框图来描述的。应理解可由可执行程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些可执行程序指令到通用计算机、专用计算机、嵌入式处理机或参考可编程数据处理设备的处理器以产生一个机器,使得通过计算机或参考可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些可执行程序指令也可存储在能引导计算机或参考可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些可执行程序指令也可装载到计算机或参考可编程数据处理设备上,使得在计算机或参考可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或参考可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种数据表的处理方法,其特征在于,所述方法包括:
基于查询语句对目标数据表的单次执行成本、以及所述目标数据表中各列的执行次数,确定所述查询语句对应所述目标数据表中各列的执行成本;
基于所述各列的执行成本,确定所述查询语句对所述目标数据表的总执行成本,分别计算所述查询语句对应各列的执行成本与所述总执行成本的比值,确定各列的执行成本比例;
确定各列的执行成本的比值与设定阈值的大小关系,将大于所述设定阈值的比值所对应的列,作为所述目标数据表的分区键;
基于所述目标数据表的分区键,对所述目标数据表进行分区;
所述单次执行成本表示对所述目标数据表执行所述查询语句所消耗的硬件资源。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
查询数据库视图,获取所述查询语句对所述目标数据表的单次执行成本;
查询所述数据库视图的设定列,获取所述查询语句对所述目标数据表中各列的执行次数。
3.根据权利要求1所述的方法,其特征在于,所述基于所述目标数据表的分区键,对所述目标数据表进行分区,包括:
基于所述分区键的类型,确定所述目标数据表的分区类型;
基于所述分区键和所述分区类型,对所述目标数据表进行分区。
4.根据权利要求3所述的方法,其特征在于,所述目标数据表的分区类型包括:范围分区、散列分区或列表分区。
5.根据权利要求3所述的方法,其特征在于,所述基于所述分区键和所述分区类型,对所述目标数据表进行分区,包括:
当所述查询语句对所述目标数据表的总执行次数大于等于设定次数阈值时,暂停针对所述目标数据表的执行权限;
基于所述分区键和所述分区类型创建分区表,并将所述目标数据表中的数据插入所述分区表中;
将所述分区表的名称替换为所述目标数据表的名称,并删除所述目标数据表,启动针对所述分区表的执行权限。
6.根据权利要求3所述的方法,其特征在于,所述基于所述分区键和所述分区类型,对所述目标数据表进行分区,包括:
当所述查询语句对所述目标数据表的总执行次数小于设定次数阈值时,基于所述分区键和所述分区类型,对所述目标数据表中的数据进行在线重定义。
7.一种数据表的处理装置,其特征在于,所述装置包括:第一确定模块、第二确定模块、第三确定模块和处理模块;其中,
所述第一确定模块,用于基于查询语句对目标数据表的单次执行成本、以及所述目标数据表中各列的执行次数,确定所述查询语句对应所述目标数据表中各列的执行成本;
所述第二确定模块,用于基于所述各列的执行成本,确定所述查询语句对所述目标数据表的总执行成本,分别计算所述查询语句对应各列的执行成本与所述总执行成本的比值,确定各列的执行成本比例;
所述第三确定模块,用于确定各列的执行成本的比值与设定阈值的大小关系,将大于所述设定阈值的比值所对应的列,作为所述目标数据表的分区键;
所述处理模块,用于基于所述目标数据表的分区键,对所述目标数据表进行分区;
所述单次执行成本表示对所述目标数据表执行所述查询语句所消耗的硬件资源。
8.一种存储介质,其上存储有可执行程序,其特征在于,所述可执行程序被处理器执行时实现如权利要求1至6任一项所述数据表的处理方法。
9.一种数据表的处理装置,包括存储器、处理器及存储在存储器上并能够由所述处理器运行的可执行程序,其特征在于,所述处理器运行所述可执行程序时执行如权利要求1至6任一项所述数据表的处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810379951.2A CN108628972B (zh) | 2018-04-25 | 2018-04-25 | 一种数据表的处理方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810379951.2A CN108628972B (zh) | 2018-04-25 | 2018-04-25 | 一种数据表的处理方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108628972A CN108628972A (zh) | 2018-10-09 |
CN108628972B true CN108628972B (zh) | 2020-11-06 |
Family
ID=63694460
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810379951.2A Active CN108628972B (zh) | 2018-04-25 | 2018-04-25 | 一种数据表的处理方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108628972B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110334096B (zh) * | 2019-06-25 | 2021-09-10 | 武汉达梦数据库股份有限公司 | 一种对非分区表进行分区并行读取的方法及装置 |
CN111475588B (zh) * | 2020-06-19 | 2020-12-08 | 阿里云计算有限公司 | 数据处理方法及装置 |
CN113590613A (zh) * | 2021-07-13 | 2021-11-02 | 上海一谈网络科技有限公司 | 数据表分区方法、装置、计算机设备和存储介质 |
CN113722351B (zh) * | 2021-08-30 | 2024-01-30 | 杭州安恒信息安全技术有限公司 | Oracle数据库访问流量中的参数还原方法及装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101996214A (zh) * | 2009-08-27 | 2011-03-30 | 国际商业机器公司 | 用于处理数据库操作请求的方法和装置 |
CN103365923A (zh) * | 2012-03-30 | 2013-10-23 | 伊姆西公司 | 用于评估数据库的分区方案的方法和装置 |
CN104216893A (zh) * | 2013-05-31 | 2014-12-17 | 中国电信股份有限公司 | 多租户共享数据表的分区管理方法、服务器与系统 |
CN105512200A (zh) * | 2015-11-26 | 2016-04-20 | 华为技术有限公司 | 一种分布式数据库处理的方法和设备 |
CN106156159A (zh) * | 2015-04-16 | 2016-11-23 | 阿里巴巴集团控股有限公司 | 一种表连接处理方法、装置和云计算系统 |
CN106202364A (zh) * | 2016-07-07 | 2016-12-07 | 华南理工大学 | 面向MapReduce的XML数据划分优化方法及其系统 |
CN107193813A (zh) * | 2016-03-14 | 2017-09-22 | 阿里巴巴集团控股有限公司 | 数据表连接方式处理方法及装置 |
CN107239485A (zh) * | 2017-04-18 | 2017-10-10 | 北京小度信息科技有限公司 | 数据库操作方法、装置及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10169409B2 (en) * | 2015-10-01 | 2019-01-01 | International Business Machines Corporation | System and method for transferring data between RDBMS and big data platform |
-
2018
- 2018-04-25 CN CN201810379951.2A patent/CN108628972B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101996214A (zh) * | 2009-08-27 | 2011-03-30 | 国际商业机器公司 | 用于处理数据库操作请求的方法和装置 |
CN103365923A (zh) * | 2012-03-30 | 2013-10-23 | 伊姆西公司 | 用于评估数据库的分区方案的方法和装置 |
CN104216893A (zh) * | 2013-05-31 | 2014-12-17 | 中国电信股份有限公司 | 多租户共享数据表的分区管理方法、服务器与系统 |
CN106156159A (zh) * | 2015-04-16 | 2016-11-23 | 阿里巴巴集团控股有限公司 | 一种表连接处理方法、装置和云计算系统 |
CN105512200A (zh) * | 2015-11-26 | 2016-04-20 | 华为技术有限公司 | 一种分布式数据库处理的方法和设备 |
CN107193813A (zh) * | 2016-03-14 | 2017-09-22 | 阿里巴巴集团控股有限公司 | 数据表连接方式处理方法及装置 |
CN106202364A (zh) * | 2016-07-07 | 2016-12-07 | 华南理工大学 | 面向MapReduce的XML数据划分优化方法及其系统 |
CN107239485A (zh) * | 2017-04-18 | 2017-10-10 | 北京小度信息科技有限公司 | 数据库操作方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN108628972A (zh) | 2018-10-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108628972B (zh) | 一种数据表的处理方法、装置及存储介质 | |
US20170083573A1 (en) | Multi-query optimization | |
US8949222B2 (en) | Changing the compression level of query plans | |
Zhang et al. | Caerus:{NIMBLE} task scheduling for serverless analytics | |
US8396852B2 (en) | Evaluating execution plan changes after a wakeup threshold time | |
CN110795455A (zh) | 依赖关系解析方法、电子装置、计算机设备及可读存储介质 | |
US7747585B2 (en) | Parallel uncompression of a partially compressed database table determines a count of uncompression tasks that satisfies the query | |
CN109033109B (zh) | 数据处理方法及系统 | |
CN109241159B (zh) | 一种数据立方体的分区查询方法、系统及终端设备 | |
CN107315657B (zh) | 一种数据备份的方法及装置 | |
CN105989015B (zh) | 一种数据库扩容方法和装置以及访问数据库的方法和装置 | |
CN109408711B (zh) | 数据过滤方法、装置、电子设备及存储介质 | |
CN112637263B (zh) | 一种多数据中心资源优化提升方法、系统和存储介质 | |
CN105183880A (zh) | 一种哈希连接的方法及装置 | |
US9483377B2 (en) | Apparatus and method for enabling a user to monitor skew of resource usage across different components of a large database system | |
CN106407233B (zh) | 一种数据处理方法和设备 | |
CN109656946B (zh) | 一种多表关联查询方法、装置及设备 | |
CN108932258B (zh) | 数据索引处理方法及装置 | |
US11599540B2 (en) | Query execution apparatus, method, and system for processing data, query containing a composite primitive | |
CN109241063A (zh) | 一种数据合并方法及系统 | |
CN111078728B (zh) | 一种数据库归档模式下跨库查询方法和装置 | |
CN110083602B (zh) | 一种基于hive表的数据存储及数据处理的方法及装置 | |
US10534790B2 (en) | Dynamic and predictive global temporary tables | |
CN110083624B (zh) | 流数据处理方法、设备、数据处理设备、计算机介质 | |
CN109902067B (zh) | 文件处理方法、装置、存储介质及计算机设备 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |