网站首页 > 技术文章 正文
概述
数据管理型系统,由于用户的要求或者系统设计要求,会出现大量表进行join,还要进行大量统计性数据查询展示,甚至数据权限控制等操作。最后会导致sql异常复杂,随着数据量增加,或者只是应用到生产环境(正式环境)就会出现系统反应慢,体验差的现象,这个时候不得不对这些,复杂的sql进行优化。
sql优化是一个说容易不容易,说难也不难的问题,还是得具体问题具体分析,下面介绍下一般sql存在的问题和解决的思路。
存在问题
一般sql语句性能达不到你的要求,会是下面几种情况:
- 网速不给力,不稳定。
- 服务器内存不够,或者SQL 被分配的内存不够。
- sql语句设计不合理
- 没有相应的索引,索引不合理
- 没有有效的索引视图
- 表数据过大没有有效的分区设计
- 数据库设计太2,存在大量的数据冗余
- 索引列上缺少相应的统计信息,或者统计信息过期
- ....
优化思路
如何找出来导致性能慢的的原因呢?思路如下:
1、用之前分享给大家的spooldb.sql和spoolsql.sql脚本一键获取sql的相关信息,分析sql慢的相关因素
2、对sql语句进行格式化,使sql条理清晰,甚至分步骤添加注释,弄清楚每个步骤是为了得到什么
3、用第一部格式化过的sql与最终需求做对比,没有用的表,就不要进行join了,没有用的字段也不要进行返回了。(这里要注意是不是存在太多重复的实体表)
4、分模块检查子查询,到底是哪个表查询速度慢,或者哪个条件导致的查询速度慢。
5、配合sql执行计划(前面脚本已经有了),尽量避免全表扫描,提前限制sql数据筛选范围,这里要考虑是不是建索引。
6、检查是否用了不合适的in查询,过量的in会导致效率骤然降低很多。
7、检查是否存在过多的or查询,or会导致全表扫描,能避免尽量避免。
8、检查子查询是否过于复杂,或者sql处理是否过于复杂,如果可以将复杂处理放到程序中进行。
9、可以用exists替代的地方,用exists进行替代。
10、可以建视图,对sql进行简化,至于视图是否可以提高查询效率,就需要大家进一步测试了。
这里主要讲一个优化思路,后面会根据一些具体的sql来做优化,到时用案例做分析,感兴趣的朋友走一波关注哩~
猜你喜欢
- 2024-10-19 Oracle SQL性能优化 oracle数据库性能优化
- 2024-10-19 值得收藏的Oracle数据库性能优化 oracle性能优化实战
- 2024-10-19 「技术笔记」 「成都校区」Oracle SQL语句之常见优化方法总结
- 2024-10-19 如何优化Oracle数据库? oracle简单优化必做的调整
- 2024-10-19 优化体系--oracle内核的shmall 和shmmax 参数
- 2024-10-19 Oracle性能优化方法 oracle数据库性能优化方法论和最佳实践
- 2024-10-19 【成都校区】Oracle SQL语句之常见优化方法总结
- 2024-10-19 关于Oracle数据库性能优化,你可能已经走了弯路!
- 2024-10-19 ORACLE常见优化方法 优化oracle sql 语句性能的方法
- 2024-10-19 如何“暴力破解”Oracle性能优化的极端问题(附精彩案例解读)
你 发表评论:
欢迎- 05-21悠然晨光!一道 CSS 面试题,开启技术提升宁静时刻
- 05-21经典web开发工程师面试题
- 05-21web 自动化岗位常见面试题
- 05-21惬意清晨!一道 CSS 面试题,助你轻松掌握实用技巧
- 05-21n8n — 可扩展的自动化工作流
- 05-21可以直接拿来做项目的开源框架
- 05-21LangFlow技术深度解析:可视化编排LangChain应用的新范式(2)
- 05-21项目中使用 husky 格式化代码和校验 commit 信息
- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端react (48)
- 前端md5加密 (49)
- 前端路由 (55)
- 前端数组 (65)
- 前端定时器 (47)
- 前端接口 (46)
- Oracle RAC (73)
- oracle恢复 (76)
- oracle 删除表 (48)
- oracle 用户名 (74)
- oracle 工具 (55)
- oracle 内存 (50)
- oracle 导出表 (57)
- oracle约束 (46)
- oracle 中文 (51)
- oracle链接 (47)
- oracle的函数 (57)
- mac oracle (47)
- 前端调试 (52)
- 前端登录页面 (48)
本文暂时没有评论,来添加一个吧(●'◡'●)