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

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

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

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

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

暂无图片 评论
暂无图片 有用 7
打赏 0
暂无图片
1
15115739129

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

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

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

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

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

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

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

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

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

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

暂无图片 评论
暂无图片 有用 3
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
数据库为oracle10G,在进行0级恢复时报“RMAN-06023: 没有找到数据文件1的副本来恢复“”
回答 1
很明确了,没有1的镜像副本可能原因:1,就是没有。2,未识别对应关系
Oracle数据库为什么rownum会导致无法谓词推入呢?
回答 1
已采纳
这是因为当谓词推入之后,rownum的值已经发生变化,已经改变了SQL结果集,任何查询变换必须是在不改变SQL结果集的前提下才能进行。
Oracle的list分区表,过一段时间查不出数据,重建索引以后就能查出来,如果直接查指定分区,就很快能查出来?
回答 1
已采纳
检查是否是由于本地分区索引失效导致的,本地非分区索引失效的原因有:对分区执行split操作,会导致局部索引失效。对分区执行exchange操作,可能会导致局部索引失效
安装EM的时候,数据库实例会静默吗?
回答 3
已采纳
11.2之前的版本,数据库会静默,影响业务11.2开始,只是有个静默的提示,实际不会静默BTW静默这个词|||
大佬们,innobackupex恢复的数据,用什么工具跟备份文件校验,数据是否一致?
回答 1
mysql里innodbbackup备份的时候会生成以下文件:xtrabackupbinloginfo,xtrabackupbinlogposinnodb恢复的时候验证这两个文件的事务编号。其他的就验
oracle数据库中发起并行执行SQL语句的用
户进程所对应的Oracle数据库端的专有进程Query Coordinator (QC)的作用包含以下哪些?
回答 1
已采纳
Oracle数据库中发起并行执行SQL语句的用户进程对应的Oracle数据库端的专有进程是QueryCoordinator(QC)。它的主要作用包括:任务调度与分发:QueryCoordinator负
Oracle 内存压测通过什么压?
回答 1
Oracle内存压测可以通过以下方式进行:通过Oracle自带的压力测试工具AWR进行内存压测。通过Oracle自带的SillyLittleOracleBenchmark(SLOB)进行内存压测。通过
某目录里面文件太多,ls显示不出来内容
回答 3
ls1f试试呢
AWR分析报告问题求助:每个指标含义
回答 3
平台自己开发的插件展示的数据,来源是awr性能视图。其实你把数据查出来,用Excel都会出图。
大家都在用什么工具监控oracle?
回答 9
我这边有一套针对oracle的监控软件。