




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数 据 库 审 核 平 台 Themis韩锋平台简介引入背景平台选型平台实践不足及发展引 入 背 景 运维规模较大系统: 200+开发: 1000+数据库: 40+: 7+ 设计开发质量不高表规模xxG某系统表字段异常3字段数121使用SQL占比1061 / 3730长度5850 (398)索引数13字段重复索引2未用索引1 设计开发质量不高SELECT /*+ INDEX (A1xx) */ SUM(A2.CRKSL),SUM(A2.CRKSL*A2.DJ) FROMx A2,x A1WHERE A2.CRKFLAG=AND A2.CDATE>=AND A2.CDATE<现状 多
2、种不平衡重运维,轻架构、优化重商业重手工,轻平台、工具重初级,轻中高级趋势 重心转移 数据建模 数据治理 数据整合数据业务架构Data Architect 数据库架构 数据库结构 SQL质量数据逻辑架构Application DBA 数据库 数据 基础架构Product DBA数据物理架构解决方法? Oracle结构设计规范 Oracle开发规范 MySQL结构设计规范 MySQL开发规范出路在哪里平 台 的 选 型业内做法代表做法特点优点缺点智能分析引擎自研SQL分析引擎,分析语句成本,并自动实现审核、分流、限流等操作。 可自动审核 扩展后可线上使用,实现分流等 难度大 效率不高工具+人工审
3、核自研工具加后期人工审核, 事后过滤、人工标记,跟 踪全流程 对SQL精细粒度, 灵活度大。 完成对SQL整个生命周期的管理。 技术难度较小 人工投入商业直接抽取SQL,分析, 仍需人工介入 功能强大,有技术支持 周期短,见效快 费用较高 扩展性差我们的选择 自研转变思想,全民动员,人人开发知识沉淀,做好标准,方便落地小步快跑,落地实施,不断修正结合自身,定制目标,学做减法他山之石可以攻玉,大胆引进审 核 平 台 实 践平台提供能力 快速发现问题操作方式 WEB界面审核维度 结构、语句、执行计划、执行特征审核结果 报告(WEB、XLS)平台使用者研发DBA问题快速掌握整体性能指导设计开发批量筛
4、选低效SQL详细信息辅助诊断实现原理规则1规则2规则3SQL PLAN对象结构问题1问题3SQL文本执行特征问题2背景 大平台结构元数据平台元数据服务托管数据库审核数据变更性能管理管理数据管理数据安全健康管理对象管理平台管理12个子系统,36个模块背景 技术栈审核对象审核类别示例规则对象级大表未分区未创建主键语句级多表关联标量子执行计划级大表全表扫描笛卡尔积执行特征级扫描块数与返回比例过低子游标数过多架构简图流程图模块划分数据规则系统管理结果展示内容内容OracleMySQL对象统计信息*特征*结构信息*特征SQLSQL文本执行计划*游标绑定变量执行特征原理规则说明规则是系统的部分,主要包括规
5、则、计分等。规则部分可简单划分如下: 数据库类型Oracle、MySQL 规则复杂度简单、复杂规则 审核对象对象类、文本类、执行计划类、执行特征类规则定义规则示例(对象级)规则类别规则说明表、分区大表过多超过指定规模没有分区单表或单分区数据量过多存在并行属性分区数量过多索引外键没有索引字段重复索引聚簇因子多大索引字段重复索引字段字段数量过多长度多长字段类型不匹配规则实现(对象级)对象类规则比较简单,原理是从目标数据里数据字典信息,再根据结果进行分数的计算。规则示例(执行计划级)规则类别规则说明路径大表扫描大索引扫描大索引快速全扫描索引跳跃扫描分区全扫描非连续分区扫描跨分区扫描表间关联笛卡尔积多
6、表关联嵌套循环层次过多类型转换存在隐式类型转换绑定变量未使用绑定变量执行计划格式规则实现(执行计划)左侧,执行计划数据样本。右侧,规则实现样例(mongo语句)。规则实现(执行计划)大表全表扫描规则 èdb.sqlplan.find(SQL_ID:'fzzxntg1g9u6r',OBJECT_TYPE:1,OBJECT_NAME:1,OPERATION_DISPLAY:1,OPTIONS:1,_id:0) "O" : "SELECT STATEMENT", "OPTIONS" : null, "OB
7、JECT_NAME" : null "O" : "TABLE ACCESS", "OPTIONS" : "FULL", "OBJECT_NAME" : "T_TEST"db.sql.find("OPERATION":"TABLE"OPTIONS":"FULL","USERNAME":"username", "ETL_DATE":"
8、;etl_date").forEach(function(x)if(db.obj_tab_info.findOne( "TABLE_NAME":x.OBJECT_NAME,$or:ACCESS",过滤执行计划按统计信息筛选"NUM_ROWS":$gt:params1,"PHY_SIZE(MB)":$gt:params0)db.tmp.save( "SQL_ID":x.SQL_ID,"PLAN_HASH_VALUE":x.PLAN_HASH_VALUE, "OBJEC
9、T_NAME":x.OBJECT_NAME);)"按特征筛选获得执行计划并计分汇总展示报告规则实现(执行计划)规则示例(文本级)规则说明select *嵌套select子句谓词中出现反向操作符多个过滤条件通过or连接存在子存在三个以上的多表关联存在全连接或外连接delete中必须出现whereupdate中出现order by子句inlist元素过多重复子句出现union集合操作规则实现(文本级)实现就是基于正则表达式,做模式匹配。 示例 BAD_JOIN“rule_cmd”:“(cross join)|(outer join)” 示例 SUB QUERY规则示例(执行特征
10、级)规则说明扫描块数与返回数比例过低子游标过多elapsed_timecpu_timebuffer_getsdisk_readsdirect_writesExecutions规则管理规则是平台,其丰富程度代表整体能力。为了满足不同需求,平台动态增加自有规则,只要遵守统一格式即可。规则管理平台对规则动态关闭,打开,修改规则参数等。任务管理左侧为任务发布界面下面为任务结果查看界面审核结果概览(对象)审核结果明细(对象)审核结果概览(执行计划)审核结果明细(执行计划)审核结果明细(执行计划)审核结果明细(执行计划)遇到的坑mysql在json格式执行计划中出的问题【会话进入sleep状态,假死】解决方法执行会话之前设置wait_timtout=3,这个时间根据实际情况进行调整。【数据量过大,长时间没有结果】会话处于query状态,但是数据量很大或因为数据库对format=json支持不是很好,长时间不出来,会影响其他会话。解决方法使用pt-kill工具杀掉会话。为了防止误杀,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公共政策对青少年成长的支持试题及答案
- 跨国经验对公共政策局势的启示试题及答案
- 项目管理中的成果与评估试题及答案
- 网络工程师考试真题深度解析试题及答案
- 公共政策分析中的定量研究方法运用试题及答案
- 西方政治制度中的社会公平试题及答案
- 政策分析的基本工具与方法试题及答案
- 机电工程考试全智攻略与试题及答案
- 机电工程综合考试模拟题试题及答案2025
- 软件设计师考试分析能力试题及答案
- 基于《山海经》神祇形象的青少年解压文具设计研究
- 教育与美好人生知到智慧树章节测试课后答案2024年秋郑州师范学院
- DB15T 3727-2024温拌再生沥青混合料超薄磨耗层碳排放核算技术规程
- 2025年新高考历史预测模拟试卷黑吉辽蒙卷(含答案解析)
- 传染病疫情报告制度及报告流程
- DBJ50-T -212-2015 机制排烟气道系统应用技术规程
- 世界读书日主题班会模板5
- 水库建设投资估算与资金筹措
- 金属雕花板保温施工方案
- 涉密计算机保密培训
- T-GXAS 767-2024 尿液中汞的测定 氢化物发生原子荧光法
评论
0/150
提交评论