CN106202403A - 一种通过动态分析创建数据库索引的方法 - Google Patents

一种通过动态分析创建数据库索引的方法 Download PDF

Info

Publication number
CN106202403A
CN106202403A CN201610542401.9A CN201610542401A CN106202403A CN 106202403 A CN106202403 A CN 106202403A CN 201610542401 A CN201610542401 A CN 201610542401A CN 106202403 A CN106202403 A CN 106202403A
Authority
CN
China
Prior art keywords
index
query
database
statement
sql
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.)
Granted
Application number
CN201610542401.9A
Other languages
English (en)
Other versions
CN106202403B (zh
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.)
Inspur General Software Co Ltd
Original Assignee
Inspur General Software Co Ltd
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 Inspur General Software Co Ltd filed Critical Inspur General Software Co Ltd
Priority to CN201610542401.9A priority Critical patent/CN106202403B/zh
Publication of CN106202403A publication Critical patent/CN106202403A/zh
Application granted granted Critical
Publication of CN106202403B publication Critical patent/CN106202403B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2272Management thereof

Landscapes

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

Abstract

本发明公开了一种通过动态分析创建数据库索引的方法,其实现过程为:捕获数据库执行语句,解析查询结构;设置查询结构计数器模型,将解析后数值放入计数器中;设置计数阈值,计数器达到阈值范围,检查数据表的索引情况;根据索引检查情况及处理策略,创建及调整数据表索引。本发明的一种通过动态分析创建数据库索引的方法与现有技术相比,具有贴近实际应用、适应业务类型、处理策略清晰等特点,实用性强,适用范围广泛,易于推广。

Description

一种通过动态分析创建数据库索引的方法
技术领域
本发明涉及计算机技术领域,具体地说是一种通过动态分析创建数据库索引的方法。
背景技术
在传统管理软件产品中,表索引的创建均是根据开发者的设计及应用预估为依据。目前功能开发灵活性较大,查询条件设置相当灵活。受功能需求扩展及人员分工、流动的影响,不同的人会对于同一个表进行应用开发。这种模式下,对于数据表索引的创建就会显得不可预知,同时可能相互负面影响,增大查询成本。基于此,本发明提供一种通过动态分析创建数据库索引的方法,本发明抽象了查询SQL语句的结构,对应用频率进行大数据统计分析,依据实际应用情况创建合理的表索引,达到提高表的查询效率。可以匹配目前应用开发所常用的数据库管理系统,及应用这些的管理应用软件。
发明内容
本发明的技术任务是针对以上不足之处,提供一种通过动态分析创建数据库索引的方法。
一种通过动态分析创建数据库索引的方法,其实现过程为:
捕获数据库执行语句,解析查询结构;
设置查询结构计数器模型,将解析后数值放入计数器中;
设置计数阈值,计数器达到阈值范围,检查数据表的索引情况;
根据索引检查情况及处理策略,创建及调整数据表索引。
捕获数据库执行语句是指捕获所有执行的查询SQL,捕获方式为应用程序数据库执行过程过滤或数据库工具执行分析,通过查询SQL特点,通过字符串处理策略对语句进行解析。
所述SQL组件在数据库表中预制并且由该数据库表提供,用于捕捉特定表执行的查询语句,在进行查询执行的时候,将这些SQL捕获并记录;此外,数据库表还提供对数据库查询缓存进行检索,收集对特定表的查询语句。
解析查询结构是指将查询动作进行解析,一个查询动作可提取若干关键字,该关键字包括查询、排序、分组、过滤的字段组合,然后记录SQL语句结构分析结果及频次,最后将每个关键组合的出现频率进行计数。
阈值设置是指设置对表的某个关键组合的访问频次的上限,以及各关键组合的最大访问时间。
根据索引检查情况及处理策略创建数据表索引是指根据索引比对情况及处理策略,动态调整数据表索引,即将索引处理方式抽象成一个接口,其中包含查询、阈值比对、关键组合对比、撤销、新建的处理方式,以满足索引优化服务;同时检测阈值范围、索引处理方式及查询语句执行性能分析,进行索引动态日志查看服务,以便进行包括调整阈值、系统维护日志的工作。
本发明的一种通过动态分析创建数据库索引的方法和现有技术相比,具有以下有益效果:
本发明的一种通过动态分析创建数据库索引的方法以系统用户实际使用情况,更贴近应用实际,更易解决实际问题;根据实际应用情况,可以随时应变,随时调整,更适应不同时间段不同应用场景的需求;更易于系统管理员维护,直观的功能处理展示更易上手;适用范围广泛,易于推广。
附图说明
附图1为本发明方法中索引动态创建过程图。
具体实施方式
下面结合附图及具体实施例对本发明作进一步说明。
如附图1所示,本发明的一种通过动态分析创建数据库索引的方法,具体而言是指如何通过一种方法,无须系统开发人员或维护人员实时进行表索引的优化操作,根据数据表查询应用情况动态更新表索引。特别适合于基于表的产品和不断进行功能增强的连续开发的情景。从而使软件产品更加符合使用者的要求,在一定程度上做到随需应变。
其实现过程为:
捕获数据库执行语句,解析查询结构;
设置查询结构计数器模型,将解析后数值放入计数器中;
设置计数阈值,计数器达到阈值范围,检查数据表的索引情况;
根据索引检查情况及处理策略,创建及调整数据表索引。
捕获数据库执行语句是指捕获所有执行的查询SQL,捕获方式为应用程序数据库执行过程过滤或数据库工具执行分析,通过查询SQL特点,通过字符串处理策略对语句进行解析。
所述SQL组件在数据库表中预制并且由该数据库表提供,用于捕捉特定表执行的查询语句,在进行查询执行的时候,将这些SQL捕获并记录;此外,数据库表还提供对数据库查询缓存进行检索,收集对特定表的查询语句。
解析查询结构是指将查询动作进行解析,一个查询动作可提取若干关键字,该关键字包括查询、排序、分组、过滤的字段组合,然后记录SQL语句结构分析结果及频次,最后将每个关键组合的出现频率进行计数。
阈值设置是指设置对表的某个关键组合的访问频次的上限,以及各关键组合的最大访问时间。
根据索引检查情况及处理策略创建数据表索引是指根据索引比对情况及处理策略,动态调整数据表索引,即将索引处理方式抽象成一个接口,其中包含查询、阈值比对、关键组合对比、撤销、新建的处理方式,以满足索引优化服务;同时检测阈值范围、索引处理方式及查询语句执行性能分析,进行索引动态日志查看服务,辅助系统维护人员调整阈值、系统维护日志等工作。
实施例:
1)动态索引创建总体工作流程,如附图1所示。
2)跟踪表及阈值预置的实现过程如下:
设计可用字符串连接字段,用表SIBASE记录。
字段编号 字段名称 字段类型 说明
SIBASE_TABLE 逻辑表名 Varchar(30) 唯一表名
SIBASE_MINNUM 阈值起始 Int 最小计数值
SIBASE_MAXNUM 阈值终止 Int 最大计数值
SIBASE_TIME 执行时间 Int 以毫秒为单位记录执行上限
SIBASE_TABLE字段记录需要进行动态索引创建的表;
SIBASE_MINNUM字段用于设置计数最小值,低于此值,相关索引删除;
SIBASE_MAXNUM字段用于设置计数最大值,高于此值,相关索引创建;
SIBASE_TIME字段用于设置SQL执行时间最大值,高于此值,计数双倍加速。
3)SQL结构分析及记录。
设计表SISTRUCT用来记录,表的结构如下:
4)阈值比对及索引动态处理。
根据B表中的阈值记录,对C表中的计数进行比对,当C表中某项组合的计数范围,超过了B表中设置的阈值最大值,则创建索引;同时对表的已建索引同B、C表进行比对校验,如果计数未达到,进行删除。此处理逻辑,通过自动调度每天凌晨系统空闲时进行。
5)动态索引日志查看。
功能图形如下:
通过上面具体实施方式,所述技术领域的技术人员可容易的实现本发明。但是应当理解,本发明并不限于上述的具体实施方式。在公开的实施方式的基础上,所述技术领域的技术人员可任意组合不同的技术特征,从而实现不同的技术方案。
除说明书所述的技术特征外,均为本专业技术人员的已知技术。

Claims (6)

1.一种通过动态分析创建数据库索引的方法,其特征在于,其实现过程为:
捕获数据库执行语句,解析查询结构;
设置查询结构计数器模型,将解析后数值放入计数器中;
设置计数阈值,计数器达到阈值范围,检查数据表的索引情况;
根据索引检查情况及处理策略,创建及调整数据表索引。
2.根据权利要求1所述的一种通过动态分析创建数据库索引的方法,其特征在于,捕获数据库执行语句是指捕获所有执行的查询SQL,捕获方式为应用程序数据库执行过程过滤或数据库工具执行分析,通过查询SQL特点,通过字符串处理策略对语句进行解析。
3.根据权利要求2所述的一种通过动态分析创建数据库索引的方法,其特征在于,所述SQL组件在数据库表中预制并且由该数据库表提供,用于捕捉特定表执行的查询语句,在进行查询执行的时候,将这些SQL捕获并记录;此外,数据库表还提供对数据库查询缓存进行检索,收集对特定表的查询语句。
4.根据权利要求3所述的一种通过动态分析创建数据库索引的方法,其特征在于,解析查询结构是指将查询动作进行解析,一个查询动作可提取若干关键字,该关键字包括查询、排序、分组、过滤的字段组合,然后记录SQL语句结构分析结果及频次,最后将每个关键组合的出现频率进行计数。
5.根据权利要求1所述的一种通过动态分析创建数据库索引的方法,其特征在于,阈值设置是指设置对表的某个关键组合的访问频次的上限,以及各关键组合的最大访问时间。
6.根据权利要求1所述的一种通过动态分析创建数据库索引的方法,其特征在于,根据索引检查情况及处理策略创建数据表索引是指根据索引比对情况及处理策略,动态调整数据表索引,即将索引处理方式抽象成一个接口,其中包含查询、阈值比对、关键组合对比、撤销、新建的处理方式,以满足索引优化服务;同时检测阈值范围、索引处理方式及查询语句执行性能分析,进行索引动态日志查看服务,以便进行包括调整阈值、系统维护日志的工作。
CN201610542401.9A 2016-07-11 2016-07-11 一种通过动态分析创建数据库索引的方法 Active CN106202403B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610542401.9A CN106202403B (zh) 2016-07-11 2016-07-11 一种通过动态分析创建数据库索引的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610542401.9A CN106202403B (zh) 2016-07-11 2016-07-11 一种通过动态分析创建数据库索引的方法

Publications (2)

Publication Number Publication Date
CN106202403A true CN106202403A (zh) 2016-12-07
CN106202403B CN106202403B (zh) 2020-03-20

Family

ID=57476934

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610542401.9A Active CN106202403B (zh) 2016-07-11 2016-07-11 一种通过动态分析创建数据库索引的方法

Country Status (1)

Country Link
CN (1) CN106202403B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106844497A (zh) * 2016-12-26 2017-06-13 努比亚技术有限公司 一种数据库代码的检查装置和方法
CN108664481A (zh) * 2017-03-27 2018-10-16 中国移动通信集团内蒙古有限公司 一种数据检索方法及服务器
CN109815214A (zh) * 2018-12-29 2019-05-28 深圳云天励飞技术有限公司 数据库访问方法、系统、装置及存储介质
CN110399375A (zh) * 2019-07-24 2019-11-01 南京云白信息科技有限公司 一种数据表索引创建方法及装置
CN111259201A (zh) * 2018-12-03 2020-06-09 北京嘀嘀无限科技发展有限公司 一种数据维护方法和系统
CN112487019A (zh) * 2020-12-14 2021-03-12 广州海量数据库技术有限公司 用于OpenGauss数据库的解析动态SQL的方法及系统
CN112559528A (zh) * 2020-12-15 2021-03-26 北京动力机械研究所 发动机稳态数据挖掘及统计方法及装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101059810A (zh) * 2007-03-16 2007-10-24 华为技术有限公司 一种实现数据库系统自动优化的系统和方法
US20090018975A1 (en) * 2007-07-10 2009-01-15 Massachusetts Institute Of Technology Method for establishing a commercial real estate price change index supporting tradable derivatives
US7689493B1 (en) * 2005-11-15 2010-03-30 Merrill Lynch Co., Inc. Methods for asset index tracking
CN104933190A (zh) * 2015-07-10 2015-09-23 上海新炬网络信息技术有限公司 一种sql语句执行频次动态调整方法
CN105279276A (zh) * 2015-11-11 2016-01-27 浪潮(北京)电子信息产业有限公司 一种数据库索引优化系统
CN105320679A (zh) * 2014-07-11 2016-02-10 中国移动通信集团重庆有限公司 一种数据表索引集合生成方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7689493B1 (en) * 2005-11-15 2010-03-30 Merrill Lynch Co., Inc. Methods for asset index tracking
CN101059810A (zh) * 2007-03-16 2007-10-24 华为技术有限公司 一种实现数据库系统自动优化的系统和方法
US20090018975A1 (en) * 2007-07-10 2009-01-15 Massachusetts Institute Of Technology Method for establishing a commercial real estate price change index supporting tradable derivatives
CN105320679A (zh) * 2014-07-11 2016-02-10 中国移动通信集团重庆有限公司 一种数据表索引集合生成方法及装置
CN104933190A (zh) * 2015-07-10 2015-09-23 上海新炬网络信息技术有限公司 一种sql语句执行频次动态调整方法
CN105279276A (zh) * 2015-11-11 2016-01-27 浪潮(北京)电子信息产业有限公司 一种数据库索引优化系统

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106844497A (zh) * 2016-12-26 2017-06-13 努比亚技术有限公司 一种数据库代码的检查装置和方法
CN108664481A (zh) * 2017-03-27 2018-10-16 中国移动通信集团内蒙古有限公司 一种数据检索方法及服务器
CN108664481B (zh) * 2017-03-27 2021-03-23 中国移动通信集团内蒙古有限公司 一种数据检索方法及服务器
CN111259201A (zh) * 2018-12-03 2020-06-09 北京嘀嘀无限科技发展有限公司 一种数据维护方法和系统
CN111259201B (zh) * 2018-12-03 2023-08-18 北京嘀嘀无限科技发展有限公司 一种数据维护方法和系统
CN109815214A (zh) * 2018-12-29 2019-05-28 深圳云天励飞技术有限公司 数据库访问方法、系统、装置及存储介质
CN110399375A (zh) * 2019-07-24 2019-11-01 南京云白信息科技有限公司 一种数据表索引创建方法及装置
CN110399375B (zh) * 2019-07-24 2020-06-26 南京云白信息科技有限公司 一种数据表索引创建方法及装置
CN112487019A (zh) * 2020-12-14 2021-03-12 广州海量数据库技术有限公司 用于OpenGauss数据库的解析动态SQL的方法及系统
CN112487019B (zh) * 2020-12-14 2024-02-20 广州海量数据库技术有限公司 用于OpenGauss数据库的解析动态SQL的方法及系统
CN112559528A (zh) * 2020-12-15 2021-03-26 北京动力机械研究所 发动机稳态数据挖掘及统计方法及装置
CN112559528B (zh) * 2020-12-15 2024-05-10 北京动力机械研究所 发动机稳态数据挖掘及统计方法及装置

Also Published As

Publication number Publication date
CN106202403B (zh) 2020-03-20

Similar Documents

Publication Publication Date Title
CN106202403A (zh) 一种通过动态分析创建数据库索引的方法
CN104156439B (zh) 一种远程运维智能审计的方法
CN102279786B (zh) 一种监测应用程序有效访问量的方法及装置
CN104915455B (zh) 一种基于用户行为的网站异常访问识别方法及系统
CN103761173A (zh) 一种基于日志的计算机系统故障诊断方法及装置
CN105488185B (zh) 一种知识库的优化方法和装置
CN108062484A (zh) 一种基于数据敏感特征和数据库元数据的分类分级方法
CN102073684B (zh) 搜索日志的挖掘方法、时效性需求识别的方法及对应装置
CN103605738A (zh) 网页访问数据统计方法及装置
CN106021545A (zh) 用于车辆远程诊断与备件检索的方法
KR20150009798A (ko) 개인 정보 상시 감시 시스템 및 그 상시 감시 방법
CN104268064A (zh) 产品日志的异常诊断方法和装置
CN104951430B (zh) 产品特征标签的提取方法及装置
CN107733902A (zh) 一种目标数据扩散过程的监控方法及装置
CN106933906A (zh) 数据多维度的查询方法及装置
CN106021422B (zh) 一种基于关系型数据库形成Hive数据仓库的方法及系统
CN101561806B (zh) Db2数据库操作的信息提取和审计方法及其装置、系统
CN107276980A (zh) 一种基于关联分析的用户异常行为检测方法及系统
CN108268886A (zh) 用于识别外挂操作的方法及系统
CN106156179A (zh) 一种信息检索方法及装置
CN104199850B (zh) 基础数据的处理方法和装置
CN109740147A (zh) 一种大数量人才简历去重匹配分析方法
CN106933902A (zh) 数据多维度自由剖析的查询方法及装置
CN104836815A (zh) 一种基于日志分析功能的安全事件回溯方法及系统
CN105573984B (zh) 社会经济指标的识别方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant