暂无图片
在做SQL优化的时候,经常需要做的工作是什么?
我来答
分享
北斗
2023-06-03
在做SQL优化的时候,经常需要做的工作是什么?
暂无图片 5M

在做SQL优化的时候,经常需要做的工作是什么?

我来答
添加附件
收藏
分享
问题补充
2条回答
默认
最新

在做SQL优化的时候,经常需要做的工作是帮助CBO计算出比较准确的Rows。注意:说的是比较准确的Rows。CBO是无法得到精确的Rows的,因为对表收集统计信息的时候,统计信息一般都不会按照100%的标准采样收集,即使按照100%的标准采样收集了表的统计信息,表中的数据也随时在发生变更。另外计算Rows的数学公式目前也是有缺陷的,CBO永远不可能计算得到精确的Rows。

如果CBO每次都能计算得到精确的Rows,那么大家就只需要关心业务逻辑、表设计、SQL写法以及如何建索引了,再也不用担心SQL会走错执行计划了。

暂无图片 评论
暂无图片 有用 7
暂无图片
1
15115739129

在进行 SQL 优化时,经常需要进行以下工作:

  1. 分析查询计划:通过查看查询执行计划,了解查询的执行方式和步骤,确定是否存在性能瓶颈。可以使用 EXPLAIN PLAN 或数据库提供的性能分析工具来获取查询计划。

  2. 检查索引使用情况:分析查询所涉及的表的索引使用情况。确保查询中的条件列上有合适的索引,以减少数据访问的成本和提高查询性能。

  3. 优化查询条件:检查查询条件是否合理,并考虑是否可以改变条件的顺序或重写查询语句,以提高查询效率。避免在查询条件中使用函数、类型转换或不必要的逻辑操作,这可能导致索引无法使用。

  4. 优化数据访问:减少查询所需的数据量,可以使用合适的投影列(只选取需要的列),避免不必要的连接操作,尽量减少子查询的使用,优化关联条件等。

  5. 避免全表扫描:尽量避免全表扫描的情况发生,可以通过创建索引、使用合适的查询条件和优化查询语句来避免全表扫描,提高查询性能。

  6. 适当使用缓存:对于频繁执行的查询,可以考虑使用缓存技术,将查询结果缓存起来,避免每次查询都要从数据库中获取数据。

  7. 监控和调优数据库参数:合理配置数据库的参数,根据数据库的负载和查询特点来调整参数,以提高数据库性能。

  8. 定期收集统计信息:通过定期收集表和索引的统计信息,优化查询优化器的选择和执行计划生成过程,从而提高查询性能。

  9. 进行性能测试和监测:对优化后的查询进行性能测试,通过监测和比较不同优化方案的执行效果,选择性能最佳的方案。

暂无图片 评论
暂无图片 有用 3
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏