CN106202403A - 一种通过动态分析创建数据库索引的方法 - Google Patents
一种通过动态分析创建数据库索引的方法 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 44
- 238000004458 analytical method Methods 0.000 title claims abstract description 6
- 238000012545 processing Methods 0.000 claims abstract description 8
- 238000007689 inspection Methods 0.000 claims description 6
- 238000012916 structural analysis Methods 0.000 claims description 4
- 238000012423 maintenance Methods 0.000 claims description 2
- 238000001914 filtration Methods 0.000 claims 1
- 230000002354 daily effect Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 230000004899 motility Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2272—Management 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所述的一种通过动态分析创建数据库索引的方法,其特征在于,根据索引检查情况及处理策略创建数据表索引是指根据索引比对情况及处理策略,动态调整数据表索引,即将索引处理方式抽象成一个接口,其中包含查询、阈值比对、关键组合对比、撤销、新建的处理方式,以满足索引优化服务;同时检测阈值范围、索引处理方式及查询语句执行性能分析,进行索引动态日志查看服务,以便进行包括调整阈值、系统维护日志的工作。
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)
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)
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 | 中国移动通信集团重庆有限公司 | 一种数据表索引集合生成方法及装置 |
-
2016
- 2016-07-11 CN CN201610542401.9A patent/CN106202403B/zh active Active
Patent Citations (6)
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)
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 |