`

基于Oracle的SQL优化(社区万众期待 数据库优化扛鼎巨著)

 
阅读更多
基于OracleSQL优化(社区万众期待数据库优化扛鼎巨著

崔华 编  

ISBN 978-7-121-21758-6

20141月出版

定价:128.00

856

16


 

 

编辑推荐

本土Oracle数据库性能优化顶级大师泣血力作

集十数年实战修行与潜心钻研之大成

盖国强等国内数据库一线名家联合推荐

囊括数据库性能优化技术所有分支与脉络,讲解通俗,实例经典

内容提要

基于Oracle的SQL优化是一本与众不同的书,它的目的是使读者真正掌握如何在 Oracle数据库里写出高质量的 SQL语句,以及如何在 Oracle数据库里对有性能问题的 SQL做诊断和调整。

基于Oracle的SQL优化从 Oracle处理 SQL的本质和原理入手,由浅入深、系统地介绍了 Oracle数据库里的优化器、执行计划、Cursor和绑定变量、查询转换、统计信息、Hint和并行等这些与 SQL优化息息相关的本质性内容,并辅以大量极具借鉴意义的一线 SQL优化实例,阐述了作者倡导的“从本质和原理入手,以不变应万变”的优化思路,最后还介绍了作者在实际工作中总结出来的 Oracle数据库里 SQL优化的方法论。

基于Oracle的SQL优化适用于使用 Oracle数据库的开发人员、Oracle DBA和其他对 Oracle数据库感兴趣的人员,也可以作为各院校相关专业的教学辅导和参考用书,或作为相关培训机构的培训教材。

目录

1  Oracle里的优化器 ...................................1

1.1 什么是 Oracle里的优化器 ...........................1

1.1.1 基于规则的优化器............................2

1.1.2 基于成本的优化器........................9

1.1.2.1 集的势 ..............................11

1.1.2.2 可选择率 ...............................11

1.1.2.3 可传递性..............................16

1.1.2.4 CBO的局限性...................................18

1.2 优化器的基础知识 .......................19

1.2.1 优化器的模式..................................19

1.2.2 结果集............................21

1.2.3 访问数据的方法................................22

1.2.3.1 访问表的方法.............................22

1.2.3.1.1 全表扫描 ....................................22

1.2.3.1.2 ROWID扫描 .....................................23

1.2.3.2 访问索引的方法 .....................................24

1.2.3.2.1 索引唯一性扫描 ...............................25

1.2.3.2.2 索引范围扫描 .......................................25

1.2.3.2.3 索引全扫描 ......................................28

1.2.3.2.4 索引快速全扫描 ...............................29

1.2.3.2.5 索引跳跃式扫描 ...............................31

1.2.4 表连接..........................33

1.2.4.1 表连接的类型......................................34

1.2.4.1.1 内连接.............................................34

1.2.4.1.2 外连接.................................................37

1.2.4.2 表连接的方法............................................47

1.2.4.2.1 排序合并连接 ..................................47

1.2.4.2.2 嵌套循环连接 ...................................48

1.2.4.2.3 哈希连接 ..........................................51

1.2.4.2.4 笛卡儿连接 ......................................56

1.2.4.3 反连接 ...........................................58

1.2.4.4 半连接 ................................63

1.2.4.5 星型连接............................................65

1.3 优化器模式对 CBO计算成本带来巨大影响的实例...............66

1.4 总结.......................80

2  Oracle里的执行计划 ........................... 82

2.1 什么是执行计划.................................82

2.2 如何查看执行计划 ..........................85

2.2.1 explain plan命令....................................86

2.2.2 DBMS_XPLAN............................89

2.2.3 AUTOTRACE开关 ...............................95

2.2.4 10046事件与 tkprof命令.............................99

2.3 如何得到真实的执行计划..................................102

2.4 如何查看执行计划的执行顺序.............................118

2.5 Oracle里的常见执行计划 .......................122

2.5.1 与表访问相关的执行计划.................................122

2.5.2 B树索引相关的执行计划.................................124

2.5.3 与位图索引相关的执行计划...................................129

2.5.4 与表连接相关的执行计划.......................................138

2.5.5 其他典型的执行计划...............................................146

2.5.5.1 AND-EQUALINDEX MERGE.....................146

INDEX JOIN ................................148

2.5.5.2 VIEW.......................149

2.5.5.3FILTER ..................................151

2.5.5.4 SORT ....................................154

2.5.5.5

2.5.5.6 UNION/UNION ALL......................167

CONCAT..................................................168

2.5.5.7

CONNECT BY...................................................171

2.5.5.8

2.6 Oracle里执行计划的稳定 ................................172

2.6.1 使用 SQL Profile来稳定执行计划 ...........................173

2.6.1.1 Automatic类型的 SQL Profile ...............................173

2.6.1.2 Manual类型的 SQL Profile......................................179

2.6.2 使用 SPM来稳定执行计划........................................190

2.7 总结..............................203

3  Oracle里的 Cursor和绑定变量 ......................... 204

3.1 Oracle里的 Cursor.............................204

3.1.1 Oracle里的 Shared Cursor.............................204

3.1.1.1 Shared Cursor的含义 ..........................................204

3.1.1.2 硬解析 ................................................212

3.1.1.3 软解析 ...................................214

3.1.2 Oracle里的 Session Cursor..............................215

3.1.2.1 Session Cursor的含义 .....................................215

3.1.2.2 Session Cursor的相关参数解析...........................218

OPEN_CURSORS.........................................218

3.1.2.2.1 SESSION_CACHED_CURSORS ............................219

3.1.2.2.2CURSOR_SPACE_FOR_TIME ..............................221

3.1.2.2.3

3.1.2.3 Session Cursor的种类和用法 .............................222

3.1.2.3.1 隐式游标 ........................................222

3.1.2.3.2 显式游标 ........................................225

3.1.2.3.3 参考游标 ........................................230

3.2 Oracle里的绑定变量 ...............................237

3.2.1 绑定变量的作用....................................237

3.2.2 绑定变量的典型用法.........................................238

3.2.3 绑定变量的使用原则和最佳实践..............................245

3.2.3.1 PL/SQL批量绑定模板一 ...................................245

3.2.3.2 PL/SQL批量绑定模板二 .....................................247

3.2.4 绑定变量窥探............................................258

3.2.5 绑定变量分级..................................270

3.2.6 绑定变量的个数不宜太多........................................276

3.2.7 批量绑定时如何处理错误.......................................280

3.2.8 如何得到已执行的目标 SQL中绑定变量的值 ..........283

3.3 Oracle里的游标共享 .......288

3.3.1 常规游标共享..............................289

3.3.2 自适应游标共享........................297

3.4 Oracle里的应用类型 ...............................320

3.4.1 Session Cursor的生命周期.........................................320

3.4.2 应用类型一(硬解析)................................................322

3.4.3 应用类型二(软解析)...............................................323

3.4.4 应用类型三(软软解析)..........................................323

3.4.5 应用类型四(一次解析、多次执行)....................324

3.4.6 四种应用类型的实测性能对比..............................325

3.5 总结.............................333

4  Oracle里的查询转换 .......................... 335

4.1 Oracle里查询转换的作用 ................335

4.2 子查询展开.................................336

4.3 视图合并............................344

4.3.1 简单视图合并...........................345

4.3.2 外连接视图合并..................351

4.3.3 复杂视图合并.....................354

4.4 星型转换.....................365

4.5 连接谓词推入 ................372

4.6 连接因式分解 ................379

4.7 表扩展 .......................387

4.8 表移除 .............396

4.9 Oracle如何处理 SQL语句中的 IN.............401

IN-List Iterator .................402

4.9.1

4.9.2 IN-List Expansion / OR Expansion ................404

IN-List Filter .............409

4.9.3

4.9.4 IN做子查询展开/视图合并 .............410

4.10 查询转换的综合应用实例(逻辑读从 200万降到 6 .....413

4.11总结..............................420

5  Oracle里的统计信息 ........ 422

5.1 什么是 Oracle里的统计信息...........422

5.2 Oracle里收集与查看统计信息的方法 .............423

5.2.1 收集统计信息...................423

5.2.1.1 ANALYZE命令收集统计信息...........423

5.2.1.2 DBMS_STATS包收集统计信息..........428

5.2.1.3 ANALYZE DBMS_STATS的区别........432

5.2.2 查看统计信息................433

5.3 表的统计信息 ..............435

5.3.1 表统计信息的种类和含义.........435

5.3.2 表统计信息不准导致 SQL性能问题的实例 .................437

5.4 索引的统计信息..............440

5.4.1 索引统计信息的种类和含义.................440

5.4.2 聚簇因子的含义及重要性............442

5.5 列的统计信息 ..................450

5.5.1 列统计信息的种类和含义..............450

5.5.2 列统计信息不准导致谓词越界的实例..........454

5.5.3 直方图........................460

5.5.3.1 直方图的含义...............460

5.5.3.2 直方图的类型.................462

5.5.3.2.1 Frequency类型的直方图 ...........463

5.5.3.2.2 Height Balanced类型的直方图 ..................471

5.5.3.3 直方图的收集方法................................475

5.5.3.4 直方图对 CBO的影响 ....................477

5.5.3.4.1 直方图对 Shared Cursor的影响 .............477

5.5.3.4.2 直方图对可选择率的影响 ................482

5.5.3.5 使用直方图的注意事项...........................495

5.6 全局统计信息 ............................496

5.7 动态采样............................507

5.8 多列统计信息 ...........................516

5.9 系统统计信息 .............................519

5.10 数据字典统计信息..................536

5.11内部对象统计信息 .............................539

5.12 Oracle里的自动统计信息收集 .........................546

5.13 Oracle里应如何收集统计信息 ..........................563

5.14 总结.........................567

6  Oracle里的 Hint..................... 568

6.1 什么是 Hint .....................568

6.2 Hint的用法 ...............................576

6.3 Hint Oracle忽略的常见情形 ...............590

6.3.1 情形一:使用的 Hint有语法或者拼写错误.................591

6.3.2 情形二:使用的 Hint无效.........................592

6.3.3 情形三:使用的 Hint自相矛盾..............597

6.3.4 情形四:使用的 Hint受到了查询转换的干扰...........599

6.3.5 情形五:使用的 Hint受到了保留关键字的干扰.........602

6.4 常见的 Hint ...............605

6.4.1 与优化器模式相关的 Hint................606

6.4.1.1 ALL_ROWS ...............606

6.4.1.2 FIRST_ROWS(n)...................606

RULE........................608

6.4.1.3

6.4.2 与表访问相关的 Hint...................615

FULL .......................615

6.4.2.1 ROWID .............615

6.4.2.2

6.4.3 与索引访问相关的 Hint...................615

INDEX .........................615

6.4.3.1 NO_INDEX .....................616

6.4.3.2 INDEX_DESC ...............617

6.4.3.3 INDEX_COMBINE................618

6.4.3.4 INDEX_FFS ..................620

6.4.3.5

6.4.3.6 INDEX_JOIN.............621

6.4.3.7 AND_EQUAL.....................622

6.4.4 与表连接顺序相关的 Hint...................624

ORDERED ................................624

6.4.4.1 LEADING ........................626

6.4.4.2

6.4.5 与表连接方法相关的 Hint.............628

6.4.5.1 USE_MERGE ............628

NO_USE_MERGE .............631

6.4.5.2 USE_NL............633

6.4.5.3 NO_USE_NL .................634

6.4.5.4 USE_HASH.............635

6.4.5.5 NO_USE_HASH ..........635

6.4.5.6

6.4.5.7 MERGE_AJ.........636

NL_AJ............................637

6.4.5.8 HASH_AJ.................637

6.4.5.9 MERGE_SJ....................637

6.4.5.10 NL_SJ...........................638

6.4.5.11HASH_SJ .......................639

6.4.5.12

6.4.6 与查询转换相关的 Hint .....................639

USE_CONCAT ...............639

6.4.6.1 NO_EXPAND ...............640

6.4.6.2 MERGE................642

6.4.6.3 NO_MERGE................642

6.4.6.4 UNNEST ....................643

6.4.6.5

6.4.6.6 NO_UNNEST........................643

EXPAND_TABLE .................................644

6.4.6.7 NO_EXPAND_TABLE .......................644

6.4.6.8

6.4.7 与并行相关的 Hint ...........................645

PARALLEL...................................645

6.4.7.1 NO_PARALLEL ................................652

6.4.7.2

6.4.7.3 PARALLEL_INDEX ................................654

NO_PARALLEL_INDEX......................................656

6.4.7.4

6.4.8 其他常见 Hint ............................656

DRIVING_SITE..............................656

6.4.8.1 APPEND ...........................................659

6.4.8.2 APPEND_VALUES ........................................662

6.4.8.3

6.4.8.4 PUSH_PRED .......................664

NO_PUSH_PRED ................................666

6.4.8.5

6.4.8.6 PUSH_SUBQ....................................666

6.4.8.7 NO_PUSH_SUBQ................669

OPT_PARAM ..............................................670

6.4.8.8 OPTIMIZER_FEATURES_ENABLE ...............................672

6.4.8.9

6.4.8.10 QB_NAME ........................................674

CARDINALITY .................................674

6.4.8.11SWAP_JOIN_INPUTS .............................677

6.4.8.12

6.5 Cardinality Hint解决 ORA-01555错误的实例...............682

6.6 总结...............................693

7  Oracle里的并行 ..................... 695

7.1 Oracle里并行的基本概念 ...............695

7.1.1 为什么要用并行.................695

7.1.2 并行的理论基础....................696

7.1.3 Oracle里能够并行执行的操作...............697

7.1.4 Oracle里与并行有关的术语及解释 ..................707

7.1.4.1 Query Coordinator .............708

7.1.4.2 Query Slaves Query Slave Set.............708

7.1.4.3 Table Queues.........716

7.1.4.4 数据传递方法.............721

7.1.4.5 granules............735

7.1.4.6 直接读取 ............737

7.1.5 深入解析并行执行计划的实例.............746

7.2 Oracle里并行的控制 ..........755

7.2.1 Oracle里如何开启并行 .............755

7.2.2 Oracle里并行度的控制 .............760

7.2.3 Oracle RAC环境下的并行...........771

7.2.4 Oracle里与并行相关的参数 ..............775

PARALLEL_MAX_SERVERS .........775

7.2.4.1 PARALLEL_MIN_SERVERS ......................776

7.2.4.2

7.2.4.3 自动并行相关的参数 ...................776

PARALLEL_DEGREE_POLICY ................................776

7.2.4.3.1 PARALLEL_MIN_TIME_THRESHOLD ...................................776

7.2.4.3.2

7.2.4.3.3 PARALLEL_DEGREE_LIMIT ..................777

PARALLEL_SERVERS_TARGET..................................777

7.2.4.3.4

7.2.4.4 自适应并行相关的参数...............778

PARALLEL_ADAPTIVE_MULTI_USER ...............778

7.2.4.4.1 PARALLEL_MIN_PERCENT ........................778

7.2.4.4.2 PARALLEL_AUTOMATIC_TUNING .........778

7.2.4.4.3

7.2.4.5 其他参数 ............................778

PARALLEL_THREADS_PER_CPU ...................................778

7.2.4.5.1 PARALLEL_EXECUTION_MESSAGE_SIZE.............779

7.2.4.5.2 PARALLEL_FORCE_LOCAL.........................779

7.2.4.5.3

7.2.5 绕开 Oracle并行执行 Bug大幅提升性能的实例 ................779

7.3 总结..........................805

8  Oracle SQL优化的方法论 ................... 807

8.1 Oracle里如何做 SQL优化...................807

8.1.1 Oracle SQL优化的本质是基于对 CBO和执行计划的深刻理解 ......807

8.1.2 Oracle SQL优化需要联系实际的业务 ...................819

8.1.3 Oracle SQL优化需要适时使用绑定变量 ............824

8.2 Oracle SQL优化的方法论在实战中的验证...............824

8.3 总结......................841

 

作者简介

崔华,网名dbsnakeOracle ACE, ACOUG成员。

资深Oracle数据库工程师,拥有Oracle数据库技术各个领域的经验,尤其是在Oracle数据库性能优化与备份恢复方面经验丰富。

他与其他人合作编写了多本Oracle技术书籍,他经常在Oracle相关活动中发表演讲并在自己的博客上撰写了大量技术文章。

前言

为什么写这本书

写这本书纯属偶然。

2010年 12月 11日,我在中国软件技术大会上做了一个关于 Oracle数据库备份与恢复机制揭密的主题演讲。可能是因为这个演讲的缘故,电子工业出版社的编辑毕宁随后多次邀请我写一本关于 Oracle数据库备份恢复方面的书,但均被我以各种理由搪塞、推脱。这一拖就拖了大半年(为什么会推脱?一来是因为我认为备份恢复这个点相对来说较窄,不具备普适性;二来市面上已经有不少关于备份恢复方面的书,这意味着如果我想写出有新意、有不一样的内容的话,会有相当的难度)。

这种推脱一直持续到 2011年 10月,那个时候我正好在公司内部主讲一个基于 Oracle数据库的 SQL优化的系列课程。我开设这门课程的初衷是因为当时恰逢公司开始研发新一代系统,而我深知对于使用 Oracle数据库的应用系统而言,SQL语句的质量会直接影响系统的性能,甚至可以说大部分基于 Oracle数据库的应用系统的性能问题都是由于开发人员不懂 Oracle数据库,不懂如何在 Oracle数据库里写出高质量的 SQL所致。这样的系统性能问题,单靠高水准的 Oracle DBA来调整是非常痛苦的,很多时候是事倍功半。如果能把我在 SQL优化方面的经验分享给大家,告诉大家如何避免在 Oracle数据库中写出很烂的 SQL,如何在 Oracle数据库中做 SQL优化,那么就可以从源头上提升新一代系统在数据库端的性能,这也算是我为公司新一代系统的研发所做的一份贡献。

这门课程一经推出,就取得了很好的反响,同事们纷纷反馈说这门课程很实用,课程里的不少方法和知识点在实际的工作中都能用上,这使我意识到自己是在做一件非常有意义的事情,虽然辛苦,但是确实能帮助到同事。

这门课程大约是 30个学时,我才开始讲没多久,毕宁就再次打电话给我,他还是希望我能写一本关于 Oracle数据库备份恢复方面的书。我清楚地记得那天下午接到毕宁电话的时候,脑海里突然闪现了一个念头——为什么不把现在讲的这门 SQL优化的课程写成一本书呢?这样一来可以对毕宁有个交待,二来也可以帮到更多的人,而不仅仅是我的同事。因为只要是用 Oracle数据库的,只要是构建在 Oracle数据库上的应用系统就必然会涉及 SQL优化,也就是说 SQL优化不同于备份恢复,它是具备普适性的。另外,市面上系统阐述 Oracle数据库中 SQL优化的书非常少,这意味着我有很大的发挥空间。如果能写一本系统的、从本质上阐述如何在 Oracle数据库里做 SQL优化的书,能够通过这本书教会开发人员如何在 Oracle数据库里写出高质量的 SQL,以及如何对有性能问题的 SQL做诊断与调整,那么也许就可以从源头上保证,由这些开发人员所开发出来的基于 Oracle数据库的应用系统在 SQL上是没有性能问题的,而那些由于 SQL撰写不当而导致的各种性能问题也就不复存在了。如果真能做到这一点,那真是一件功德无量的事情。

在和毕宁沟通过几次后,我的上述想法获得了他的支持,于是从 2011年 10月份开始,我就正式开始撰写这本书。只是我万万没有想到,这一写就写了 17个月。

这本书的撰写过程是极为艰苦的。一来是因为我对自己要求很高,希望写出来的书通俗易懂(普通的使用 Oracle数据库的开发人员就能看懂),但同时又要具备一定的深度;二来是因为我倡导“从本质和原理入手,以不变应万变”的 SQL优化思路,必然涉及深入介绍 Oracle数据库里的优化器,但 Oracle数据库里的优化器实在是太复杂了。

现在回想起来,我为这本书付出了太多太多。在这一年多的撰写过程中,由于长期熬夜,我能明显感觉到身体越来越差,到了撰写后期更是频繁往医院跑,但无论如何,我还是坚持下来了。

本书的主要内容

本书共 8章。

第 1章“Oracle里的优化器”,详细介绍了 Oracle数据库中与优化器相关的各个方面的内容,包括优化器的模式、结果集(Row Source)、集的势(Cardinality)、可选择率(Selectivity)、可传递性(Transitivity)、各种数据访问的方法,以及与表连接相关的内容。

第 2章“Oracle里的执行计划”,详细介绍了 Oracle数据里与执行计划有关的各个方面的内容,包括执行计划的含义,如何查看执行计划,如何得到目标 SQL真实的执行计划,如何查看执行计划的执行顺序, Oracle数据库里各种常见的执行计划的含义,以及如何在 Oracle数据库中稳定执行计划。

第 3章“Oracle里的 Cursor和绑定变量”,详细介绍了 Oracle数据库中与 Cursor和绑定变量相关的各个方面的内容,包括 Shared Cursor、Session Cursor、绑定变量、游标共享、硬解析、软解析、软软解析,以及与它们息息相关的 Oracle数据库里的四种应用类型。

第 4章“Oracle里的查询转换”,详细介绍了 Oracle数据库中与查询转换有关的各个方面的内容,包括子查询展开、视图合并、星型转换、连接谓词推入、连接因式分解、表扩展、表移除,以及 Oracle如何处理 SQL语句中的 IN。

第 5章“Oracle里的统计信息”,详细介绍了 Oracle数据库里与统计信息相关的各个方面的内容,包括 Oracle数据库中各种统计信息的分类、含义、收集和查看方法,以及如何在 Oracle数据库里正确地收集统计信息。

第 6章“ Oracle里的 Hint”,详细介绍了 Oracle数据库中与 Hint有关的各个方面的内容,包括什么是 Hint,如何用 Hint,Hint什么情况下会失效,以及 Oracle数据库中常见的各种 Hint。

第 7章“Oracle里的并行”,详细介绍了 Oracle数据库里并行的基本概念以及在 Oracle数据库里如何控制并行,包括在 Oracle数据库里开启并行、控制并行度等。

第 8章“Oracle里 SQL优化的方法论”,介绍了在 Oracle数据库里如何做 SQL优化,提出了我们总结出来的 Oracle数据库里 SQL优化的方法论,并结合实例验证了上述方法论。

本书的读者对象

本书适用于使用 Oracle数据库的开发人员、Oracle DBA和其他对 Oracle数据库感兴趣的人员。

本书也可以作为各大中专院校相关专业的教学辅导和参考用书,或作为相关培训机构的培训教材。

本书代码下载

本书使用的所有脚本和范例代码均可以通过我网站上的 Books专栏下载,网址为 http://www.dbsnake.net/books。

本书约定

本书介绍的 SQL优化方法论是通用的方法,并不局限于 Oracle数据库的某个具体的版本,但本书的实例和测试结果绝大部分是基于 Oracle 11gR2的(除个别特别注明的实例之外)。而 Oracle数据库不同的版本之间在某些方面可能会差别很大,所以即便是同样的实例,在 Oracle数据库不同的版本上的测试结果也有可能不同,在此特别说明,一切以实际情况为准。

由于我的水准和经验所限,书中的错误之处在所难免,在此诚挚期待大家阅读后的指正。可以通过电子邮件与我取得联系(allantreycn@gmail.com),欢迎与我交流任何关于本书的问题。

 

  • 大小: 185.5 KB
分享到:
评论

相关推荐

    SD规范 SDIO规范(全套规范)

    1 PartA2_SD Host_Controller_Simplified_Specification_Ver4.20 2 PartA2_SD_Host_Controller_Simplified_Specification_Ver2.00 3 PartE1_SDIO_Simplified_Specification_Ver2.00 4 PartE1_SDIO_Simplified_Specification_Ver3.00 5 Part1 PhysicalLayerSimplifiedSpecificationVer9.10Fin_20231201 6 PartE7_Wireless_LAN_Simplified_Addendum_Ver1.10 7 Part1_Extended_Security_Simplified_Addendum_Ver1.00 8 Part1_NFC_Interface_Simplified_Addendum_Ver1.00 9 Part1_UHS-II_Simplified_Addendum_Ver1.02 10 PartA1_ASSD_Extension_Simplified_Specification_Ver2.00 11 PartE2_SDIO Bluetooth_Type_A_Simplified_Specification_Ver1.00 12 SDUC-Host-Implementation-Guideline_Ver1.00

    元宇宙的未来:沉浸式互联网解锁万亿社交经济

    《步入元宇宙》由马克·范·里门撰写,是一本深入探讨元宇宙概念、历史、现状以及未来潜力的书籍。作者从Web 1.0到Web 3.0的发展讲起,详细分析了从增强现实(AR)到虚拟现实(VR)再到扩展现实(XR)的技术演进。书中提出了元宇宙的六大特征:互操作性、去中心化、持久性、空间性、社区驱动和自我主权,并强调了开放元宇宙的重要性及其带来的自由和创新潜力。作者还探讨了元宇宙对个人身份、商业、教育、娱乐等领域的深远影响,并预测了元宇宙将如何推动形成一个全新的社交经济。书中引用了多位行业专家的评价,强调了无论读者对元宇宙的了解程度如何,都能从中获得新的见解和启发。

    MW6S004的ads模型

    卢益峰ads仿真放大器章节所需的ads库和MW6S004的ads模型

    javaSE阶段面试题

    javaSE阶段面试题

    《网页制作基础教程(Dreamweaver-CS6版)》第10章-网站的管理与上传.pptx

    《网页制作基础教程(Dreamweaver-CS6版)》第10章-网站的管理与上传.pptx

    Abaqus双线盾构隧道超精细模型构建:涵盖软化模量与盾构注浆关键技术

    内容概要:本文详细介绍了如何使用Abaqus软件构建双线盾构隧道的超精细模型,特别是针对隧道间的联络通道、软化模量和盾构注浆等关键要素进行了深入探讨。文章首先阐述了模型的整体架构搭建,包括使用Python脚本创建隧道衬砌部件。接下来,讨论了软化模量的引入及其在材料本构模型中的定义方式,展示了如何通过塑性应变来模拟软化模量的变化。此外,文章详细讲解了盾构注浆的模拟方法,如通过单元生死技术激活注浆体单元,并提供了具体的Python代码示例。最后,文章强调了网格划分、接触设置等方面的注意事项,确保模型能够稳定运行并获得精确的结果。 适合人群:从事隧道工程数值模拟的研究人员和技术人员,尤其是熟悉Abaqus软件的工程师。 使用场景及目标:适用于需要进行双线盾构隧道工程力学行为研究的场合,旨在帮助工程师更好地理解和预测隧道施工过程中可能出现的问题,从而优化设计方案,提高施工效率和安全性。 其他说明:文中提供的代码片段和建模技巧基于作者的实际经验和测试结果,对于初学者而言,建议逐步尝试每个步骤并在实践中不断调整参数以适应具体工程项目的需求。

    《自然资源信息化时代背景与发展》.pdf

    《自然资源信息化时代背景与发展》.pdf

    《网络社会学(第2版)》15-网络社会变迁.ppt

    《网络社会学(第2版)》15-网络社会变迁.ppt

    西门子1214PLC与KTP700触摸屏构建双相机四轴多工位检测系统的实战案例

    内容概要:本文详细介绍了使用西门子1214PLC和KTP700Basic PN触摸屏构建双相机四轴多工位检测设备的具体实现方法。主要内容涵盖硬件配置、程序主体功能及其代码解析、触摸屏功能实现等方面。硬件方面,采用了西门子1214PLC作为核心控制器,KTP700Basic PN触摸屏为人机界面,双相机用于检测,第三设备通过Modbus RTU通讯。程序主体功能包括上下双工位4轴脉冲控制步进电机、与上位机双相机的TCP/IP通讯、与第三设备的Modbus RTU通讯。触摸屏功能则涉及多重画面、配方管理和密码保护等功能。文中还分享了一些调试经验和注意事项,如轴使能信号要用上升沿触发、相机通讯需配置心跳包机制等。 适合人群:从事工业自动化领域的工程师和技术人员,特别是那些对PLC编程、触摸屏应用和多工位检测设备感兴趣的读者。 使用场景及目标:适用于需要构建复杂自动化检测系统的工程项目,旨在提高检测效率和准确性,确保设备稳定可靠运行。通过学习本文,读者能够掌握如何使用西门子1214PLC和KTP700触摸屏搭建类似的检测系统。 其他说明:文中提供了大量具体的代码示例和调试技巧,有助于读者更好地理解和实施相关技术。此外,还强调了实际工程中常见的问题及解决方案,如接线和接地问题、通讯参数配置等。

    官方emmc规范(多个版本)

    - **4.4 版本** - 介绍了基础特性和标准,适合初学者了解eMMC的基本框架。 - **4.41 版本** - 对4.4版进行了修订和完善,优化了部分规范以适应市场和技术的发展。 - **4.5 版本** - 引入了新的性能改进和技术特性,进一步提升了存储效率。 - **4.51 版本** - 包含针对4.5版的小幅修正和增强,确保技术规范的准确性和实用性。 - **5.0 版本** - 重大更新,引入更多高级功能,支持更高的数据传输速率,对现代高性能需求进行了响应。 - **5.01 版本** - 在5.0基础上的维护更新,保持标准的一致性和先进性。 - **5.1 版本** - 最新的公开版本之一,提供了更全面的标准规范,加强了数据管理能力,提升了可靠性

    DeepSeek系列-提示词工程和落地场景.pdf

    DeepSeek系列-提示词工程和落地场景.pdf

    JDK(java)安装及配置

    JDK(java)安装及配置

    引力搜索算法(GSA)的MATLAB实现及其应用解析

    内容概要:本文详细介绍了引力搜索算法(Gravitational Search Algorithm, GSA)的原理、MATLAB实现及其应用场景。首先解释了GSA的基本概念,即将优化问题中的候选解视为宇宙中互相吸引的粒子,通过模拟物理现象进行优化。接着展示了核心的粒子运动方程,包括加速度计算、质量分配以及引力公式的具体实现。文中提供了多个经典的测试函数如Sphere、Rastrigin等用于验证算法性能,并通过动态绘图展示了粒子群的收敛过程。此外,讨论了算法参数设置的影响,如引力常数G的指数衰减方式,以及如何通过添加随机扰动避免粒子陷入局部最优。最后强调了GSA在解决多峰优化问题方面的优势。 适合人群:对优化算法感兴趣的科研人员、学生及工程师,尤其是那些希望深入了解群体智能算法的人。 使用场景及目标:适用于需要高效寻找全局最优解的问题,特别是在面对复杂的多峰函数时。目标是帮助读者理解GSA的工作机制,掌握其MATLAB实现方法,并能够根据实际情况调整参数以获得更好的优化效果。 其他说明:尽管GSA在低维问题上有出色表现,但在高维优化问题中可能存在效率瓶颈,因此建议进一步研究并行计算或近似邻居搜索等改进措施。

    基于Andorid的跨屏拖动应用设计.zip

    基于Andorid的跨屏拖动应用设计实现源码,主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。

    DeepSeek R1 7b本地部署模型整合包及超全学习教程.rar

    DeepSeek R1 7b本地部署模型整合包及超全学习教程,资源总大小420G,喜欢的自行下载。

    精品推荐-最新人工智能训练师认证题库资料汇总(15份).zip

    精品推荐,最新人工智能训练师认证资料汇总,15份。供大家学习参考。 (新版)人工智能训练师(中级)职业技能等级认定考试题库.pdf 2025年人工智能训练师(高级)职业技能鉴定参考题库(含答案).pdf 阿里认证高级人工智能训练师真题.pdf 初级人工智能训练师题库.pdf 高级人工智能化训练师认证答案解析.doc 高级人工智能训练师.docx 高级人工智能训练师题库.pdf 人工智能技术应用基础课件:人工智能训练师.pdf 人工智能训练师(服务机器人人工智能技术应用)(学生组)理论题库.pdf 人工智能训练师(服务机器人人工智能技术应用)理论题库.docx 人工智能训练师概述课件.pdf 人工智能训练师基础(上册).pdf 人工智能训练师技能等级认定四级理论知识试卷.docx 人工智能训练师试题及答案(150题).pdf 人工智能训练师职业技能标准.pdf

    电力系统优化调度中基于Logistic函数的需求响应建模及其应用

    内容概要:本文探讨了Logistic函数在电力系统优化调度中的应用,特别是用于描述用户对电价变化的响应行为。文中详细介绍了Logistic函数如何通过S型曲线特性,将电价差与负荷转移率关联起来,形成死区、响应区和饱和区三个不同的响应阶段。此外,文章还展示了如何使用MATLAB进行仿真,以及在综合能源系统和微电网中的具体应用案例,如优化分时电价策略、设计需求响应激励机制等。 适合人群:电力系统研究人员、微电网调度工程师、能源管理专业学生。 使用场景及目标:适用于需要理解和应用需求响应模型的研究和工程项目,旨在提高电力系统的经济性和效率,优化调度策略。 其他说明:文章强调了模型的实际应用挑战,如参数调校、异常处理等,并提供了具体的MATLAB代码示例,帮助读者更好地理解和应用Logistic函数模型。

    测试题.docx【C语言教育】C语言考核测试题:涵盖选择题与程序设计题的综合评估系统

    内容概要:本文档是一份C语言考核测试题,分为选择题和程序设计题两大部分。选择题部分共25题,涵盖C语言的基本概念、语法细节、运算符优先级、表达式求值、数据类型转换、控制结构等方面的知识点,旨在考察学生对C语言基础知识的理解与掌握。程序设计题部分提供了多个编程题目,如求数列和、阶乘之和、货币组合方式、质数与完数的求解、日期计算等,侧重于考察学生的实际编程能力和解决问题的能力。 适合人群:适合正在学习或复习C语言的学生,特别是计算机相关专业的本科生或高职高专学生。 使用场景及目标:①作为课堂练习或课后作业,帮助学生巩固所学知识;②作为考试或竞赛的模拟试题,评估学生对C语言的理解程度;③为教师提供教学参考,辅助课程设计与教学计划制定。 其他说明:建议考生在答题过程中仔细阅读题目要求,确保理解每个问题的具体含义。对于程序设计题,应先思考解决方案再动手编写代码,注意代码的规范性和可读性。同时,可以通过实际编译运行来验证程序的正确性。

    《计算机系统维护》第1章--微型计算机简介.ppt

    《计算机系统维护》第1章--微型计算机简介.ppt

Global site tag (gtag.js) - Google Analytics