我的编程空间,编程开发者的网络收藏夹
学习永远不晚

sql 性能优化

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

sql 性能优化

性能优化
全表扫描(多块读的size)数据量比较多的时候
1,并行查询 2,多块读 3,索引全扫描
row ID 
索引就是一个数据库对象,包含
k值和row id的新表。
OLTP:线上交易系统
常见索引:B树索引(随着数据量的增大,右边节点也会随之增大,导致不平衡,产生分支节点,增加I/O)
位图索引(适用于数据仓库中,增删改比较少的表中,需要整张表的信息。)
好处:获取表的所有信息。获取row id的开始值和结束值。缺点:索引对增删改有影响,锁定两张表
基于函数的索引(使用局限性比较大,使用率低。需要评估,)
造成函数索引失效:1,外层套索引 2,做运算 3,模糊查询 
统计收集索引信息的时间:周内(凌晨 2-4点)周末()
统计表信息,数据字典
反向索引:

收集T表统计信息:exec dbms_stats.gather_table_stats('SCOTT','T');
新建表的统计信息为空
索引不可见:alter index cust_id_idx invisible
alter index cust_id_idx visible
反向索引:为了避免热块效应(性能很低),引用反向索引,使用分块方法。
缺点:不支持范围扫描,只能用于等值查询
索引扫描类型 索引的唯一扫描 (索引值唯一,where判断=)
索引的范围扫描 (读单块)
索引跳跃扫描 (复合索引)
索引快速全扫描(多块扫描)
索引全扫描
1,2索引常用

 

2种优化访问路径
1,全表扫描(对表中所有进行简单扫描,主要是在某个查询请求表的大部分块时,)
2,索引访问路径(基于row id)
数值小于百分之七会走索引


undo
ORA-01555 快照过旧(有大事务)updata事务太大,undo表空间存放不下,解决办法就是强制关闭可以终止事务。扩大undo表空间。
undo 里面有前镜像。CTAS create table as select
undo不能设成自动扩展
索引全扫描
产生索引全扫描的条件:
order by 对应 id 
group by 对应 id
索引快速全扫描:(同时访问多个块)
索引本身包含查询中的所有列时,oracle执行索引快速全扫描。

索引名称:(如何确定是否使用了 索引)
alter index cust_id_idx monitoring usage;
select index_name,monitoring,used from v$object_usage;
避免使用索引:
/*+NO_INDEX (有+号是提示,没有+号是注释)
查看执行计划:
explain plan for select * from emp where empno=‘7765’
select * from emp(dbms_xplain_display)

不走索引的情况
索引列时不会有null(空值)的
有不等式时不走索引,in或not in时不走索引。
使用通配符时,模糊查询时不走索引。
谓词中使用了空值时不走索引。
查询中包含函数的时候不走索引。

统计信息查询
dbms 存储过程包


免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

sql 性能优化

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

SQL Server性能怎么优化

本篇内容主要讲解“SQL Server性能怎么优化”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SQL Server性能怎么优化”吧!数据库性能诊断和优化是提高数据库性能和稳定性的关键技术之一。
2023-06-27

SQL查询优化-MySQL 性能调优

  在进行库表结构设计时,我们要考虑到以后的查询要如何的使用这些表,同样,编写 SQL 语句的时候也要考虑到如何使用到目前已经存在的索引,或是如何增加新的索引才能提高查询的性能。  想要对存在性能问题的查询进行优化,需要能够找到这些查询,下面先看下如何获取有性能问题的SQL。  如何设计最优的数据库表结构,如何建立最好
SQL查询优化-MySQL 性能调优
2024-04-18

SQL Server性能优化工具Profiler

SQL Server Profiler是一个界面,用于创建和管理跟踪并分析和重播跟踪结果。 这些事件保存在一个跟踪文件中,稍后试图诊断问题时,可以对该文件进行分析或用它来重播一系列特定的步骤。

SQL性能优化策略之索引优化方法

SQL优化是优化工作中经常会涉及的问题,由于早期的开发人员往往只关注于SQL功能的实现,而忽略了性能。特别是复杂的SQL,上线之后很少修改,一旦出现问题,即使是当初的开发人员自己也很难理清其中的业务逻辑,需要花费大量的时间去理解代码之间的
SQL索引性能2024-12-03

SQL COUNT与性能优化的关系

SQL COUNT 是用来统计查询结果集中行的数量的函数。在很多情况下,使用 COUNT 是必要的,但它也可能影响查询的性能。以下是一些关于 SQL COUNT 与性能优化的关系的建议:避免在 WHERE 子句中使用 COUNT:在 WHE
SQL COUNT与性能优化的关系
2024-08-11

MySQL批量SQL插入性能优化

经过对MySQL InnoDB的一些性能测试,发现一些可以提高insert效率的方法,供大家参考参考。

SQL性能优化策略之联合索引优化方法

LIS_REQUISITION_INFO表的访问先通过I_PRINT_TIME索引进行范围扫描,符合条件的记录回表之后再过滤,产生了大量的单块读。
SQL策略优化2024-12-03

编程热搜

目录