第九章 且慢,弄清索引之阻碍让SQL飞

参考《收获,不止SQL优化》作者: 梁敬彬 / 梁敬弘

一、 索引的不足之处

在这里插入图片描述

二、 索引的取舍

在这里插入图片描述

三、 结合案例

在这里插入图片描述

四、 习题

在这里插入图片描述
习题1:
(1) SQL写法导致:列上加函数、列隐式类型转换、HINT固定全表扫描
(2) SQL写法没问题,但是优化器考虑到回表认为走索引代价更大,不如直接全表扫描

习题2:
索引失效:
(1)分区表:除了ADD,其他分区操作会导致全局索引失效;MAX分区有值用了SPLIT会导致分区索引失效
(2)MOVE操作后没有重建索引
(3)表中有LONG字段类型,后对该字段类型做了修改,会导致该表的索引失效
(4)人工误设UNUSABLE

索引丢失:
闪回操作(其实也没有丢失,只是被系统重命名了)

习题3:
数据插入时,除了往数据表里插入数据,每个索引树也都会插入数据(只要索引序列不为空)。而往索引树插入数据时必须有序,就会产生排序、块分裂等其他的一些开销。从而影响插入性能。

习题4:
(1)、检查失效的索引
(2)、检查(A,B)(A)这种索引,合并
(3)、检查索引列过多的索引(>4)
(4)、检查一段时间不用的索引

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
第1章 全局在胸——用工具对SQL整体优化 1 1.1 都有哪些性能工具 1 1.1.1 不同调优场景分析 2 1.1.2 不同场景对应工具 2 1.2 整体性能工具的要点 4 1.2.1 五大性能报告的获取 5 1.2.2 五大报告关注的要点 10 1.3 案例的分享与交流 18 1.3.1 和并行等待有关的案例 18 1.3.2 和热块竞争有关的案例 19 1.3.3 和日志等待有关的案例 20 1.3.4 新疆某系统的前台优化 20 1.3.5 浙江某系统的调优案例 21 1.4 本章总结延伸与习题 21 1.4.1 总结延伸 21 1.4.2 习题训练 23 第2章 风驰电掣——有效缩短SQL优化过程 24 2.1 SQL调优时间都去哪儿了 25 2.1.1 不善于批处理频频忙交互 25 2.1.2 无法抓住主要矛盾瞎折腾 25 2.1.3 未能明确需求目标白费劲 26 2.1.4 没有分析操作难度乱调优 26 2.2 如何缩短SQL调优时间 27 2.2.1 先获取有助调优的数据库整体信息 27 2.2.2 快速获取SQL运行台前信息 27 2.2.3 快速拿到SQL关联幕后信息 28 2.3 从案例看快速SQL调优 29 2.3.1 获取数据库整体的运行情况 29 2.3.2 获取SQL的各种详细信息 29 2.4 本章总结延伸与习题 32 2.4.1 总结延伸 32 2.4.2 习题训练 33 第3章 循规蹈矩——如何读懂SQL执行计划 34 3.1 执行计划分析概述 35 3.1.1 SQL执行计划是什么 35 3.1.2 统计信息用来做什么 36 3.1.3 数据库统计信息的收集 37 3.1.4 数据库的动态采样 37 3.1.5 获取执行计划的方法(6种武器) 40 3.2 读懂执行计划的关键 48 3.2.1 解释经典执行计划方法 49 3.2.2 总结说明 55 3.3 从案例辨别低效SQL 55 3.3.1 从执行计划读出效率 56 3.3.2 执行计划效率总结 60 3.4 本章习题、总结与延伸 60 第4章 运筹帷幄——左右SQL执行计划妙招 62 4.1 控制执行计划的方法综述 63 4.1.1 控制执行计划的意义 63 4.1.2 控制执行计划的思路 64 4.2 从案例探索其方法及意义 65 4.2.1 HINT的思路 65 4.2.2 非HINT方式的执行计划改变 72 4.2.3 执行计划的固定 100 4.3 本章习题、总结与延伸 102 第5章 且慢,感受体系结构让SQL 103 5.1 体系结构知识 104 5.1.1 组成 104 5.1.2 原理 104 5.1.3 体会 105 5.2 体系与SQL优化 106 5.2.1 与共享池相关 107 5.2.2 数据缓冲相关 111 5.2.3 日志归档相关 116 5.3 扩展优化案例 118 5.3.1 与共享池相关 118 5.3.2 数据缓冲相关 122 5.3.3 日志归档相关 126 5.4 本章习题、总结与延伸 130 第6章 且慢,体验逻辑结构让SQL 132 6.1 逻辑结构 132 6.2 体系细节与SQL优化 133 6.2.1 Block 133 6.2.2 Segment与extent 137 6.2.3 Tablespace 139 6.2.4 rowid 139 6.3 相关优化案例分析 140 6.3.1 块的相关案例 141 6.3.2 段的相关案例 144 6.3.3 表空间的案例 148 6.3.4 rowid 151 6.4 本章习题、总结与延伸 153 第7章 且慢,探寻表的设计让SQL 154 7.1 表设计 154 7.1.1 表的设计 155 7.1.2 其他补充 155 7.2 表设计与SQL优化 156 7.2.1 表的设计 156 7.2.2 其他补充 179 7.3 相关优化案例分析 184 7.3.1 分区表相关案例 185 7.3.2 全局临时表案例 190 7.3.3 监控异常的表设计 195 7.3.4 表设计优化相关案例总结 199 7.4 本章习题、总结与延伸 199 第8章 且慢,学习索引如何让SQL 200 8.1 索引知识要点概述 201 8.1.1 索引结构的推理 201 8.1.2 索引特性的提炼 204 8.2 索引SQL优化 206 8.2.1 经典三大特性 207 8.2.2 组合索引选用 217 8.2.3 索引扫描类型的分类与构造 219 8.3 索引相关优化案例 225 8.3.1 三大特性的相关案例 225 8.3.2 组合索引的经典案例 231 8.4 本章习题、总结与延伸 234 第9章 且慢弄清索引阻碍SQL 23
全连接层(Fully Connected Layer)是神经网络中的一种基本层结构,它的作用是将上一层的输入节点与下一层的所有节点进行连接,每个连接都有一个权重。全连接层的输出可以进行非线性变换,常用的非线性函数有ReLU、Sigmoid等。全连接层在深度学习领域中被广泛应用于图像分类、物体检测等任务中,它可以学习到不同特征之间的关联性。 Batch Normalization层(BN层)是一种用于解决神经网络中内部协变量偏移(Internal Covariate Shift)的技术。在训练过程中,每一层的输入分布会随着参数的更新而发生变化,导致网络的训练变得复杂且慢。BN层通过在每一层的输入进行归一化操作,将输入数据变成均值为0、方差为1的标准正态分布,从而减少梯度消失和梯度爆炸的问题,加快网络的收敛速度,提高训练效果。 批量归一化层(Batch Normalization)是深度学习中一种常用的正则化方法,其主要目的是使每一层的输入数据的均值和方差保持在一个稳定的范围内。它通过对每一批训练数据进行统计分析,计算出均值和标准差,然后根据这些统计量对输入数据进行归一化处理。批量归一化层不仅可以加速网络的收敛速度,还可以提高模型的泛化能力,降低过拟合的风险。此外,批量归一化层还可以增加网络的鲁棒性,使模型对于输入数据的变化更加稳定。 综上所述,全连接层、BN层和批量归一化层是深度学习中常用的网络单元分析技术。全连接层用于连接上下层的所有节点并实现非线性变换,BN层解决了神经网络中内部协变量偏移的问题,加速网络的收敛速度并提高模型的泛化能力,而批量归一化层通过对输入数据进行归一化处理,使网络更加稳定和鲁棒。这些技术在深度学习任务中起到了关键的作用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值