腾讯大讲堂数据库查询优化浅析.ppt

上传人:仙人指路1688 文档编号:2214947 上传时间:2023-02-01 格式:PPT 页数:32 大小:1.70MB
返回 下载 相关 举报
腾讯大讲堂数据库查询优化浅析.ppt_第1页
第1页 / 共32页
腾讯大讲堂数据库查询优化浅析.ppt_第2页
第2页 / 共32页
腾讯大讲堂数据库查询优化浅析.ppt_第3页
第3页 / 共32页
腾讯大讲堂数据库查询优化浅析.ppt_第4页
第4页 / 共32页
腾讯大讲堂数据库查询优化浅析.ppt_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《腾讯大讲堂数据库查询优化浅析.ppt》由会员分享,可在线阅读,更多相关《腾讯大讲堂数据库查询优化浅析.ppt(32页珍藏版)》请在三一办公上搜索。

1、,腾 讯 大 讲 堂,第四十八期,研发管理部,大讲堂主页:http:/,数据库查询优化浅析,Alexyang无线产品部20081013,提纲,应用级查询优化SQL语句的解析方式索引的本质以及调优分析执行计划,提纲,应用级查询优化SQL语句的解析方式索引的本质以及调优分析执行计划,一、需要性能/查询优化的原因,影响性能的因素:整个系统环境软件:操作系统、中间件、应用程序、数据库硬件:CPU、内存、磁盘、网络上面任何一个都可能成为系统的性能瓶颈,系统级性能优化的点,操作系统:虚拟内存、文件系统格式、系统参数(LINUX)中间件:日志、部署时去掉打印信息(打印信息对性能影响较大)、工作线程数、连接池

2、、JAVA垃圾回收模式、JAVA内存设置应用程序:使用连接池、合理的业务设计、尽可能不要对数据库操作进行同步、JAVA程序的性能优化(参考网络资源)数据库:工作线程、I/O线程、内存配置等、索引的利用、SQL改写、服务器代码改进,这里我们主要考虑以下两个点,应用层存在问题。数据库层存在问题。,合理的逻辑设计,以某实际应用系统为例,原来任务管理模块并发用户数只有15个,该模块用来显示所有待处理的任务,以及每个任务的里程碑个数。经过检查,发现其实现如下:执行语句SELECT COUNT(*)FROM TASK;select task_id from task order by task_id de

3、sc;对结果集中的每条记录 SELECT*FROM TASK_STEP WHERE TASK_STEP.TASK_ID=?分析:如果TASK表有10000条记录,需要向数据库发送10000个查询。假设通讯使用了100ms,每个查询的执行时间是20ms。使用的时间为:(100ms+20ms)*10000=1200s=20min,解决方案,select task_step.*from task,task_step where task_step.task_id=task.task_id order by task.task_id desc;备注:1)继续对task_step.*处理,减少网络通讯量

4、。2)默认看到自己的任务,提供连接查询其他任务。,尽量使用数据库提供的功能,在某实际应用系统中,对于每个任务、日记等对象都有一个唯一的ID,该系统使用数据库的一个表的一条整型记录来维持。当新建一个任务时,取用该表的当前记录值,操作完毕后加1。为了防止不同对象使用相同ID,使用如下方法来保证:int temp=0;synchronized 执行SELECT*FROM OBJECTID;temp=结果集中的id update 结果集中的id(id+1)insert into task values(temp,.);,解决方案,create sequence myseq increment by 1

5、;insert into task values(myseq.nextval,.);,二、SQL语句的解析方式,SQL语句的处理过程,语法/词法分析,负责解析SQL命令和过程性语句块过滤注释,解析参数使用成熟的工具(如YACC/LEX)生成灵活的语法规则定义便于语法的扩展与修改生成统一格式的语法树,对应的语法结构,语义分析,数据库对象名字解析合法性检查内部ID的转换权限检查语法树数据结构的简化与预处理DDL语句分解为对系统表的DML视图对象的替换等,代价优化器,接受语义分析的输入统计信息的分析数据分布统计直方图代价的计算基于统计信息操作符号的选择基于成本的最优执行路径选择生成优化的执行计划,基

6、于操作符的执行计划,物理操作符功能简单专一,完成特定的数据库操作如:连接,过滤,排序等执行计划操作符的组合,构成树型的执行计划执行时,数据从叶子向根流动在根汇集成结果集,或者得到结果状态计划被自动缓存,以备重用,实例分析,select*from A,B,C,D where A.a B.b and B.b1=C.c and C.c1=D.d and A.a1 123,三、索引的本质以及调优,需要了解的概念,索引 聚集索引、非聚集索引唯一索引、非唯一索引单列索引、组合索引,Clustered table/index,lustered index on a clustered table,lustered index on a clustered table,lustered index on a clustered table,lustered index on a clustered table,索引调优的6个知识点,1、将索引和数据存放到不同的文件组2、组合索引的使用3、唯一索引与非唯一索引的差异4、非聚集索引的作用5、是不是使用非聚集索引的查询都需要进行聚集的查询6、创建索引的规则,执行计划,单表执行计划多表执行计划,多表连接执行计划,1、嵌套连接2、HASH连接3、合并连接4、反合并连接5、半连接6、反半连接,谢谢!,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号