- 博客(258)
- 收藏
- 关注
原创 论索引影响性能的一面①索引的各种开销
任何事物都有它的两面性,索引也不例外,本文我们主要来阐述索引的坏处。在数据库系统中,索引对查询的性能比较好,不过如果更新语句出现,索引的缺点将很明显。因为索引本身是有序的,而更新数据的过程中也要更新索引,更新完后还要保持索引的有序性,这就需要付出很大的开销了,索引不好的一面就从这里开始显示出来了...
2025-06-10 07:37:12
352
原创 穿越迷雾——理科女孩的高考志愿选择
小红,作为这场战争的中心,一个选了“物化捆绑”的理科女生,头疼欲裂:“可是……我数学和物理还行,但真的不想天天996敲代码。而且除了计算机,我又能干什么呢?那些工科专业,土木、机械、地矿油,听着就不像是女孩子该去的地方...
2025-06-09 12:00:00
146
原创 “我“与”AI”的四象限破局之路
当AI从一个遥远的概念,变成我们IDE里的Copilot、会议室里的纪要员、设计稿里的灵感生成器时,一场深刻的身份危机正在技术圈弥漫。我们是走向了被工具无限“内卷”的黄昏,还是迎来了与新物种共舞进化的黎明?本文记录了一场发生在深夜的激辩与对话,试图通过一个“人机四象限”模型,为你我这样的普通人,找到在这场史诗级变革中安身立命的坐标与未来进化的路径。
2025-06-08 07:00:00
998
原创 DBA,数字世界的“医生”——跨越碳基与硅基的对话
当凌晨三点的告警铃声将你从梦中惊醒,面对“系统卡顿、业务中断”的紧急呼叫时,你是否曾感到自己像一名冲向急诊室的医生?本文将以一个新颖而深刻的视角,详细剖析数据库管理员(DBA)与医生这两个职业之间惊人的相似性,从预防医学到ICU抢救,从望闻问切到手术方案,揭示DBA作为“数据医生”的宿命、挑战与荣光。
2025-06-07 07:00:00
762
原创 左右SQL执行计划妙招 ⑲(全文完) ——执行计划的固定
探讨如何通过Oracle的OUTLINE大纲技术强制固定执行计划。通过对比有无NOT NULL约束的场景,展示优化器对索引访问方式的选择差异。添加NOT NULL约束后,INDEX FAST FULL SCAN成本显著降低(292→49),但通过创建大纲可强制维持全表扫描计划。大纲技术适用于统计信息无法修正执行计划时的场景,提供稳定执行路径控制。
2025-06-06 09:00:00
956
原创 左右SQL执行计划妙招 ⑱ ——执行计划改变之其他相关手段2_预估索引效果
本文介绍了利用虚拟索引技术评估索引建立效果的方法。通过创建"nosegment"虚拟索引,可以在不实际占用存储空间的情况下,获取优化器对索引的使用计划和成本估算。案例对比显示:虚拟索引使查询成本从307降至5,降幅达98.4%,证实了索引的有效性。该技术解决了数据库管理员在索引建立决策中的核心痛点,为索引优化提供了零成本的预评估手段。
2025-06-06 07:00:00
839
原创 左右SQL执行计划妙招 ⑰ ——执行计划改变之其他相关手段1_set_table_stats
本文介绍使用SET_TABLE_STATS快速修正SQL执行计划偏差的方法。当统计信息不准确导致优化器选择错误驱动表(如将大表T2误判为小表)时,传统重收集统计信息方案存在性能风险。通过SET_TABLE_STATS直接设置表统计信息(如修正T2为200万行),无需收集统计信息或修改SQL,即可使优化器选择正确的小表驱动连接方式...
2025-06-05 07:00:00
836
原创 左右SQL执行计划妙招 ⑯ ——执行计划利用设计特性改变【主外键影响】
探讨主外键约束如何优化视图查询。通过实验对比三种场景:无约束时视图查询需全表扫描和哈希连接(cost=333);添加主键后优化为嵌套循环和索引扫描(cost=41);进一步添加外键约束后,Oracle智能消除对T1表的访问,直接扫描T2表(cost=40)。结果表明合理的主外键设计能显著提升视图查询效率,验证了约束对执行计划的关键影响...
2025-06-04 07:00:00
749
原创 左右SQL执行计划妙招 ⑮ ——执行计划利用设计特性改变【列空值影响】
展示了NOT NULL约束对数据库执行计划的影响。在未设置NOT NULL约束时,COUNT(*)查询采用全表扫描(1047次逻辑读);添加NOT NULL约束后,优化器转为使用索引快速扫描...
2025-06-03 07:00:00
674
原创 左右SQL执行计划妙招 ⑭ ——执行计划利用设计特性改变【物化视图影响】
。物化视图通过预计算存储、查询重写机制实现透明优化,配置选项包括即时构建(build immediate)和提交刷新(refresh on commit)。该技术适用于聚合查询场景,无需修改应用代码即可大幅提升性能...
2025-06-02 07:00:00
687
原创 左右SQL执行计划妙招 ⑬ ——执行计划利用设计特性改变【Iot表类型句】
文对比分析了Oracle索引组织表(IOT)与普通表的性能差异。实验显示,IOT表通过将数据直接存储在索引结构中,消除了回表操作,使主键查询的逻辑读从3次降至2次。文章详细展示了两种表的执行计划差异...
2025-06-01 07:00:00
794
原创 左右SQL执行计划妙招 ⑫ ——执行计划利用设计特性改变【Cluster类型】
本文探讨了Oracle数据库中有序散列聚族表(Sorted Hash Cluster)在性能优化中的独特价值。通过对比普通表与聚族表在执行排序查询时的表现,发现聚族表通过预排序存储机制,完全消除了排序操作,使查询性能实现质的飞跃...
2025-05-31 07:00:00
759
原创 左右SQL执行计划妙招 ⑪ ——执行计划利用设计特性改变【分区设计影响】
分区表的核心优势在于"分而治之"策略,使优化器能够精确定位数据。实践表明,合理选择分区键(如高频查询字段)并配合本地/全局索引策略,可带来10倍的性能突破,尤其适用于...
2025-05-30 07:00:00
944
1
原创 左右SQL执行计划妙招 ⑩ ——执行计划SQL写法差异改变【分区条件有无】
分区条件的有无直接决定了查询的执行效率。在分区表查询中,即使业务逻辑上某些条件是冗余的,但从性能优化角度考虑,明确指定分区键条件仍然是必要的。这种看似"多余"的条件实际上是分区表查询优化的关键所在...
2025-05-29 07:00:00
591
原创 左右SQL执行计划妙招 ⑨ ——执行计划SQL写法差异改变【缓存结果影响】
本文通过实验对比展示了Oracle Result Cache缓存技术对查询性能的显著提升。首先构建60万行测试表,分别执行普通查询和带Result Cache提示的查询,结果显示...
2025-05-28 07:00:00
1038
原创 左右SQL执行计划妙招 ⑧ ——执行计划SQL写法差异改变【rowid 的影响】
本文通过对比两种SQL更新语句的执行计划,分析rowid在Oracle性能优化中的作用。普通条件更新通过索引扫描定位数据(INDEX RANGE SCAN),而使用rowid精确指定时直接跳转到物理存储位置(TABLE ACCESS BY USER ROWID),大幅减少...
2025-05-27 07:00:00
1693
1
原创 左右SQL执行计划妙招 ⑦——执行计划SQL写法差异改变【rownum实体化】
本文介绍了利用ROWNUM实体化技术优化Oracle复杂SQL查询性能的方法。通过一个运营商系统真实案例,展示了子查询导致的笛卡尔积问题:原SQL执行需30秒,而仅注释子查询部分可在1秒完成。分析发现优化器错误执行顺序导致无关联表间产生笛卡尔积。解决方案是在子查询中添加ROWNUM字段,强制优化器先完成内部表连接,避免与外层表产生笛卡尔积。优化后查询时间从30秒降至1秒,性能提升30倍...
2025-05-26 07:00:00
643
原创 一文读懂高考赋分制【下】——模型设计与SQL实现
文通过熊猫老师讲解高考赋分制的技术实现,展示了数据库系统在成绩转换中的应用。先建立学生成绩表存储原始数据,再通过SQL语句实现自动化赋分计算:计算考生排名、划分等级比例(A级15%、B级50%等)、确定各等级分数区间,最终完成赋分转换。核心SQL采用MERGE语句,嵌套多级子查询,实现从原始分到赋分的一站式计算,最高分固定100分,最低分30分。
2025-05-25 17:08:40
1137
原创 左右SQL执行计划妙招 ⑥ ——执行计划SQL写法差异改变【rownum分页】
本文深入解析Oracle数据库ROWNUM分页查询的性能优化策略。通过对比实验发现,将ROWNUM限制条件置于内层查询可触发COUNT STOPKEY机制,使查询在达到指定行数后立即终止扫描,性能提升显著(从1048缓冲区降至5个)。文章详细剖析了COUNT STOPKEY的工作原理、触发条件及适用场景,并提供了标准分页模板和实际应用案例,强调排序字段索引和分页大小控制的重要性,帮助开发者避免常见误区,实现高效分页查询。
2025-05-25 06:52:34
992
1
原创 左右SQL执行计划妙招 ⑤ ——执行计划利用设计特性改变【并行度影响】
本文分析了Oracle数据库中并行度设置对执行计划的影响。通过实验对比串行和并行执行的性能表现,展示了并行执行计划的结构变化,包括PX协调器、并行数据发送等组件的出现。文章重点指出表级并行属性设置的风险,建议通过SQL级别的parallel hint精确控制并行度,避免资源消耗失控。最佳实践包括...
2025-05-24 07:00:00
984
原创 左右SQL执行计划妙招 ④ ——执行计划SQL写法差异改变【insert all】
本文探讨了Oracle数据库中INSERT ALL语句与普通插入语句在执行计划上的差异及其对性能的影响。通过实验对比,发现INSERT ALL语句通过MULTI-TABLE INSERT操作,减少了源表的扫描次数,降低了I/O操作和锁竞争,提高了事务一致性。虽然在简单场景下性能提升不明显,但在复杂生产环境中,INSERT ALL展现出显著优势。理解不同SQL写法对执行计划的影响,是数据库性能优化的重要技能。
2025-05-23 11:14:52
1029
1
原创 左右SQL执行计划妙招 ③ ——执行计划SQL写法差异改变【with子句】
传统写法存在多次全表扫描和重复计算的问题,导致资源消耗较高。而使用WITH子句后,聚合函数的结果被临时存储并复用,减少了全表扫描次数,从而...
2025-05-22 09:04:02
637
1
原创 左右SQL执行计划妙招 ②——Hint无效原因
很多DBA和开发人员都曾遇到这样的情况:我们根据分析添加了看似完美的HINT,却发现执行计划完全没有变化,好像Oracle优化器完全忽略了我们的建议...
2025-05-21 07:15:00
877
原创 左右SQL执行计划妙招 ①——子查询的应用范围
不仅需要懂执行计划,如果还可以左右SQL的执行计划,那就更厉害了....当SQL如同迷宫,执行计划成为谜题,你是束手待毙还是掌握破局之道?三种控制子查询执行计划的隐秘技巧,如同三把钥匙,让你在数据海洋中自如穿行。从查询块内的精准控制,到全局别名的巧妙引用,再到神秘的qb_name魔法...这场与优化器的博弈,才刚刚开始...
2025-05-20 09:49:59
769
原创 SQL等价改写优化案例精选第三部【顺势而为】(大结局)② 等价改写中的陷阱
在SQL优化中,"顺势而为"不仅要求我们遵循数据库引擎的工作原理,还需要尊重数据的本质特性,包括类型特征和NULL值语义。只有全面理解这些概念,才能进行既正确又高效的SQL等价改写。记住:改写不仅要追求性能,更要确保语义的真正等价...
2025-05-19 06:51:26
1006
1
原创 SQL等价改写优化案例精选第三部【顺势而为】① 列的类型转换
在SQL优化的第三部分中,我们强调了“顺势而为”的原则,即遵循数据库引擎的工作原理来编写查询语句。核心思想是保留列的纯洁性,避免对列进行函数操作或类型转换,以提高查询性能。通过实际案例展示了在WHERE子句中对日期字段使用TO_CHAR函数的问题,包括无法利用索引、类型不匹配和语义不清晰等。优化方案建议直接...
2025-05-18 08:53:57
946
原创 SQL等价改写优化案例精选第二部【精兵简政】④ 多余写法
在我们探讨"精兵简政"系列的最后一篇,我们将聚焦于SQL中常见的"多余写法"问题。冗余代码不仅影响可读性,更会导致数据库做许多不必要的工作,从而影响性能。让我们通过实际案例来学习如何精简SQL,让代码更加高效...
2025-05-17 07:15:00
907
原创 SQL等价改写优化案例精选第二部【精兵简政】③ 有困难先将需求最小化
SQL优化不仅仅是技术层面的改进,更是思维方式的转变。当我们面对复杂问题时,不要急于堆砌复杂的代码,而是应该先问自己:"这个问题的本质是什么?有没有更简单直接的解决方案?"往往,最优雅的解决方案也是最简单的那个...
2025-05-16 07:00:00
874
原创 SQL等价改写优化案例精选第二部【精兵简政】② 无脑复制粘贴
本案例揭示了SQL开发中一个常见但危险的习惯——通过复制粘贴来处理看似类似的逻辑。这种方式看似方便,实则带来了性能负担和维护困难。在"精兵简政"的理念下,我们应当始终寻求更优雅、更高效的解决方案...
2025-05-15 17:08:32
694
原创 数据处理进化史之小明历险记④(大结局):AI数据库开启智能新纪元
每一次技术进化都源于业务挑战,又反过来创造业务价值。"小明说,"从Excel到集中式数据库,从分布式架构到融合平台,再到AI数据库,我们见证了数据处理技术的四次革命。但技术进化永不停歇。"他指向未来规划图,"我们已经看到下一代数据技术的雏形——自主进化的数据生态系统,它不仅能自我管理、自我优化,还能自我进化,创造出我们尚未想象的数据价值...从被动的记录到主动的智能,数据处理技术的进化旅程仍在继续,而每一步都深刻改变着商业世界的运行方式。
2025-05-14 11:19:13
1283
原创 数据处理进化史之小明历险记③:一体分布式数据库的崛起
"所有测试环境的JSON查询都没问题,为什么生产环境会崩溃?"凌晨2点的紧急会议上,CTO的声音透着疲惫和困惑。整个技术团队已连续工作18小时,"潮购"平台的搜索功能仍时断时续。工程师们尝试了各种应急方案:增加数据库实例、优化索引、重写查询语句,但成效有限...
2025-05-14 09:19:40
866
原创 数据处理进化史之小明历险记②:分布式数据库的破局与挑战
夜已深,大多数同事已离开,小明正整理分布式数据库的运行报告。忽然,监控系统发出刺耳的警报声..."怎么回事?"小明立即检查监控面板。屏幕上,"潮购"平台的响应时间曲线呈直线上升,已经超过警戒线...
2025-05-14 06:33:29
841
原创 数据处理进化史之小明历险记①:从Excel困局到集中式数据库的飞跃
然而,随着公司业务扩张,数据库面临写入量激增和硬件性能瓶颈的挑战,团队被迫实施分库分表策略,但这也带来了新的复杂性和性能问题...
2025-05-13 19:01:20
755
原创 SQL等价改写优化案例精选第二部【精兵简政】① 莫名其妙的行列转换
在数据分析和报表生成过程中,行列转换是一个常见需求。然而,开发人员常常在实现这类需求时走弯路,创建了不必要的复杂查询。今天我们要分析的案例就是这样一个典型示例...
2025-05-13 11:19:36
782
原创 SQL等价改写优化案例精选第一部【一统天下】④ or 与 union all的优化交响
在SQL优化中,使用UNION/UNION ALL组合多个相似查询虽然清晰,但在查询同一表且条件相似的情况下,使用OR条件替代可以显著提升性能...
2025-05-13 07:12:08
357
原创 SQL等价改写优化案例精选第一部【一统天下】③ group by (case when)的聚合艺术
本文展示了如何通过SQL的GROUP BY与CASE WHEN结合,将复杂的UNION查询优化为单一查询,减少表扫描次数,提升性能...
2025-05-12 11:20:17
602
1
原创 SQL等价改写优化案例精选第一部【一统天下】②分析函数的穿透之力
本文介绍了如何通过SQL分析函数优化查询性能,特别是利用KEEP和DENSE_RANK函数组合,将多次表扫描简化为一次,从而提升查询效率。文章通过一个具体案例,展示了如何将复杂的嵌套子查询改写为使用分析函数的简洁形式...
2025-05-12 07:01:46
904
原创 SQL等价改写优化案例精选第一部【一统天下】① count(case when)的合并魔力
SQL优化的核心在于深入理解业务需求,并通过改写SQL语句来提升效率。本文通过12个真实生产系统中的案例,展示了如何通过合并代码、减少表扫描等手段优化SQL...
2025-05-11 15:40:48
701
原创 通用SQL开发的利器——MERGE(下)Merge妙用
本文通过三个案例展示了SQL中MERGE语句的巧妙运用。案例1中,通过构造虚拟表并使用MERGE语句,实现了表中两条记录的NAME字段互换...
2025-05-11 10:30:52
1013
原创 通用SQL开发的利器——MERGE(中)Merge误区
使用Oracle的MERGE语句时,存在几个常见的误区需要注意。首先,MERGE语句要求ON条件中的字段具有唯一性,否则会导致ORA-30926错误...
2025-05-11 06:55:55
977
【数据库技术】表设计优化与SQL性能提升:深入解析表设计、分区表、全局临时表及优化案例
2025-04-26
【数据库技术】Oracle递归WITH编程详解:实现复杂查询与组合运算的新方法Oracle从11
2025-04-26
【数据库优化】深入剖析索引对数据库性能的影响:探讨索引的负面效应及其优化策略
2025-04-26
【数据库优化】Oracle非主流索引与SQL优化:位图索引、函数索引、反向键索引及全文索引的应用与陷阱分析了Oracle数据库中
2025-04-26
### 【数据库优化】左右SQL执行计划的妙招:提升性能的关键技术解析
2025-04-26
【数据库性能优化】基于PL/SQL与OCI实现的CUBE性能优化:挑战Oracle汇总任务效率极限
2025-04-26
【数据库管理】Oracle逻辑结构与性能优化:深入解析BLOCK、Segment、表空间及rowid对SQL优化的影响
2025-04-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人