`

oracle执行DML(事物过程)的深入研究(二)

阅读更多

接上一节的 oracle执行DML(事物过程)的深入研究(一)

如果要了解事务的等待现象,就需要了解事务发生时,在什么阶段、 对哪些数据、 变更为什么形式。 尤其需要了解数据块和撤销区域中的数据修改。若利用 Oracle 提供的转储功能,就能从物理角度上观察被事务所修改的数据信息。接下来通过一个简单的例子进行讨论。

我们实验如下:

 1.修改数据如下:


SQL> update test set owner='HELLO' WHERE ROWNUM=1;  
 
已更新 1 行。  
 
SQL> SELECT rowid,dbms_rowid.rowid_relative_fno(rowid) as fno,dbms_rowid.rowid_block_number(rowid) a  
s blkno from  test where rownum=1;  
 
ROWID                     FNO      BLKNO  
------------------ ---------- ----------  
AAAMuBAAEAAAHMRAAp          4      29457 

 

可以看到修改该的行数据在第4号文件第29457块上,我们dump其文件内容

SQL> alter system dump datafile 4 block 29457;

系统已更改。

Start dump data blocks tsn: 4 file#: 4 minblk 29457 maxblk 29457
buffer tsn: 4 rdba: 0x01007311 (4/29457)
scn: 0x0000.0045b9bb seq: 0x01 flg: 0x00 tail: 0xb9bb0601
frmt: 0x02 chkval: 0x0000 type: 0x06=trans data
Hex dump of block: st=0, typ_found=1
Dump of memory from 0x07AB2200 to 0x07AB4200
...
Block header dump:  0x01007311
 Object id on Block? Y
 seg/obj: 0xcb81  csc: 0x00.1223d9  itc: 3  flg: E  typ: 1 - DATA
     brn: 0  bdba: 0x1007309 ver: 0x01 opc: 0
     inc: 0  exflg: 0
 
 Itl           Xid                  Uba         Flag  Lck        Scn/Fsc
0x01   0x000a.026.0000023a  0x00000000.0000.00  ----    0  fsc 0x0000.00000000
0x02   0x0001.00d.00000396  0x0080072c.0119.07  --U-   41  fsc 0x1027.001226bd
0x03   0x0006.00b.00000bc6  0x0080005a.04c8.17  ----    1  fsc 0x0001.00000000
 data_block_dump,data header at 0x7ab227c
===============
tsiz: 0x1f80
hsiz: 0x9e
pbl: 0x07ab227c
bdba: 0x01007311
     76543210
flag=--------
ntab=1
nrow=70
frre=-1
fsbo=0x9e
fseo=0x37f
avsp=0x341
tosp=0x13bb
0xe:pti[0] nrow=70 offs=0
...
tab 0, row 41, @0x37f
tl: 96 fb: --H-FL-- lb: 0x3  cc: 13
col  0: [ 5]  48 45 4c 4c 4f
col  1: [23]
 2f 33 64 37 30 62 62 33 36 5f 50 6f 6c 69 63 79 43 68 65 63 6b 65 72
col  2: *NULL*
col  3: [ 4]  c3 02 04 54
col  4: *NULL*
col  5: [ 7]  53 59 4e 4f 4e 59 4d
col  6: [ 7]  78 69 08 1e 0f 11 05
col  7: [ 7]  78 69 08 1e 0f 11 05
col  8: [19]  32 30 30 35 2d 30 38 2d 33 30 3a 31 34 3a 31 36 3a 30 34
col  9: [ 5]  56 41 4c 49 44
col 10: [ 1]  4e
col 11: [ 1]  4e
col 12: [ 1]  4e
tab 0, row 42, @0xe44
tl: 98 fb: --H-FL-- lb: 0x0  cc: 13
col  0: [ 3]  53 59 53
col  1: [24]
 2f 37 36 38 65 65 38 61 30 5f 50 6f 6c 69 63 79 4e 6f 64 65 49 6d 70 6c
col  2: *NULL*
col  3: [ 4]  c3 02 04 55
col  4: *NULL*
col  5: [10]  4a 41 56 41 20 43 4c 41 53 53
col  6: [ 7]  78 69 08 1e 0f 11 05
col  7: [ 7]  78 69 08 1e 0f 11 05
col  8: [19]  32 30 30 35 2d 30 38 2d 33 30 3a 31 34 3a 31 36 3a 30 34
col  9: [ 5]  56 41 4c 49 44
col 10: [ 1]  4e
col 11: [ 1]  4e
col 12: [ 1]  4e
...
end_of_block_dump
End dump data blocks tsn: 4 file#: 4 minblk 29457 maxblk 29457

通过块转储文件的内容,可确认如下事实:

1 ITL 上,已经执行修改的事务在 ITL 上以 itl=0x03 登记。当前状态是尚未提交的活动的状态, 因此正在获得 TX 锁。将 Xid=0x0006.00b.00000bc6变换为十 进制就 是USN=6 SLOT=11 SQN=3014 。从 V$TRANSACTION 视图上确认当前会话相应的信息, 可以发现是完全一致的。

SQL>  select sid from v$mystat where rownum=1;  
 
       SID  
----------  
       137  
 
SQL> select xidusn,xidslot,xidsqn from v$transaction where addr=(select taddr from v$session where s   id=137);  
 
    XIDUSN    XIDSLOT     XIDSQN  
---------- ---------- ----------  
         6         11       3014                        XID=USN + SLOT + SQN  

 

 2 ITL 信息上 Lock=1 ,这代表被事务修改的行数。而且,因为尚未提交,所以 Flag 上没有设定任何值。与此相同, SCN 也未被分配。 Flag 值为 C ”或“ U ”时,就意味着已执行提交。

3 )利用 ITL UBA Undo Block Address )信息,可以掌握当前事务最近使用的撤销块和撤销记录( Record )的位置。 UBA [Undo Block DBA+Seq#+Record#] 组成,执行回滚时就要利用这些信息。

4 block_row_dump 区域上的第一行的 lb 值被设定为 0x1 lb Lock Byte 的缩写,表示当前行挂起锁的 ITL 编号。也就是说, 1 ITL 修改当前行。 Lock byte 值实际发生提交也不会被清除,最终发生 Delayed block cleanout 或因另外进程修改块时才会被清除。

 

事务和撤销块转储

在上面例子中, 若能转储已修改数据块的事务所使用的回滚段( USN=6 )的头块( header block ), 就可以确认事务相应信息是怎样被管理的。

SQL> select xidusn,xidslot,xidsqn from v$transaction where addr=(select taddr from v$session where s  
id=137);  
 
    XIDUSN    XIDSLOT     XIDSQN  
---------- ---------- ----------  
         6         11       3014                        USN=6,Slot=11  
SQL> select file_id,block_id from dba_rollback_segs where segment_id=6;  
 
   FILE_ID   BLOCK_ID  
---------- ----------  
         2         89

 

dump 2号文件89号数据块内容
SQL> alter system dump datafile 2 block 89;

系统已更改。

*** 2010-12-14 14:14:11.171
Start dump data blocks tsn: 1 file#: 2 minblk 89 maxblk 89
buffer tsn: 1 rdba: 0x00800059 (2/89)
scn: 0x0000.0045b9bb seq: 0x01 flg: 0x04 tail: 0xb9bb2601
frmt: 0x02 chkval: 0x8562 type: 0x26=KTU SMU HEADER BLOCK
...
  Extent Control Header
  -----------------------------------------------------------------
  Extent Header:: spare1: 0      spare2: 0      #extents: 3      #blocks: 23   
                  last map  0x00000000  #maps: 0      offset: 4080 
      Highwater::  0x0080005a  ext#: 0      blk#: 0      ext size: 7    
  #blocks in seg. hdr's freelists: 0    
  #blocks below: 0    
  mapblk  0x00000000  offset: 0    
                   Unlocked
     Map Header:: next  0x00000000  #extents: 3    obj#: 0      flag: 0x40000000
  Extent Map
  -----------------------------------------------------------------
   0x0080005a  length: 7    
   0x00800121  length: 8    
   0x00800041  length: 8    
 
 Retention Table  和flashback 功能 相关
  -----------------------------------------------------------
 Extent Number:0  Commit Time: 1292304533
 Extent Number:1  Commit Time: 1292302823
 Extent Number:2  Commit Time: 1292304533
 
  TRN CTL:: seq: 0x04c8 chd: 0x0009 ctl: 0x0023 inc: 0x00000000 nfb: 0x0000
            mgc: 0x8201 xts: 0x0068 flg: 0x0001 opt: 2147483646 (0x7ffffffe)
            uba: 0x0080005a.04c8.17 scn: 0x0000.0045b3cc
Version: 0x01
  FREE BLOCK POOL::
    uba: 0x00000000.04c8.16 ext: 0x0  spc: 0x157e 
    uba: 0x00000000.04c8.03 ext: 0x0  spc: 0x1eb8 
    uba: 0x00000000.04bc.14 ext: 0x2  spc: 0x5c2  
    uba: 0x00000000.0473.20 ext: 0x1  spc: 0x1012 
    uba: 0x00000000.0000.00 ext: 0x0  spc: 0x0    
  TRN TBL::   事物表
 
  index  state cflags  wrap#    uel         scn            dba            parent-xid    nub     stmt_num    cmt
  ------------------------------------------------------------------------------------------------
   ...
   0x0a    9    0x00  0x0bc7  0x001a  0x0000.0045b492  0x00800045  0x0000.000.00000000  0x00000001   0x00000000  1292303166

   0x0b   10    0x80  0x0bc6  0x0000  0x0000.0045b96e  0x0080005a  0x0000.000.00000000  0x00000001   0x00000000  0

   0x0c    9    0x00  0x0bc5  0x0029  0x0000.0045b55c  0x00800045  0x0000.000.00000000  0x00000001   0x00000000  1292303295
   ...
End dump data blocks tsn: 1 file#: 2 minblk 89 maxblk 89

 

然后我们执行commit操作。

SQL> commit;

提交完成。

从新dump 数据块内容。
SQL> alter system dump datafile 4 block 29457;

系统已更改。

Start dump data blocks tsn: 4 file#: 4 minblk 29457 maxblk 29457
buffer tsn: 4 rdba: 0x01007311 (4/29457)
scn: 0x0000.0045c06a seq: 0x01 flg: 0x02 tail: 0xc06a0601
frmt: 0x02 chkval: 0x0000 type: 0x06=trans data
...
Block header dump:  0x01007311
 Object id on Block? Y
 seg/obj: 0xcb81  csc: 0x00.1223d9  itc: 3  flg: E  typ: 1 - DATA
     brn: 0  bdba: 0x1007309 ver: 0x01 opc: 0
     inc: 0  exflg: 0
 
 Itl           Xid                  Uba         Flag  Lck        Scn/Fsc
0x01   0x000a.026.0000023a  0x00000000.0000.00  ----    0  fsc 0x0000.00000000
0x02   0x0001.00d.00000396  0x0080072c.0119.07  --U-   41  fsc 0x1027.001226bd
0x03   0x0006.00b.00000bc6  0x0080005a.04c8.17  --U-    1  fsc 0x0001.0045c06a    -FLAG 变为 U(upper bound commit)提交状态
 
data_block_dump,data header at 0x7ab227c
===============
tsiz: 0x1f80
hsiz: 0x9e
pbl: 0x07ab227c
bdba: 0x01007311
     76543210
flag=--------
ntab=1
nrow=70
frre=-1
fsbo=0x9e
fseo=0x37f
avsp=0x341
tosp=0x13bb

tab 0, row 41, @0x37f
tl: 96 fb: --H-FL-- lb: 0x3  cc: 13
col  0: [ 5]  48 45 4c 4c 4f
col  1: [23]
 2f 33 64 37 30 62 62 33 36 5f 50 6f 6c 69 63 79 43 68 65 63 6b 65 72
col  2: *NULL*
col  3: [ 4]  c3 02 04 54
col  4: *NULL*
col  5: [ 7]  53 59 4e 4f 4e 59 4d
col  6: [ 7]  78 69 08 1e 0f 11 05
col  7: [ 7]  78 69 08 1e 0f 11 05
col  8: [19]  32 30 30 35 2d 30 38 2d 33 30 3a 31 34 3a 31 36 3a 30 34
col  9: [ 5]  56 41 4c 49 44
col 10: [ 1]  4e
col 11: [ 1]  4e
col 12: [ 1]  4e
tab 0, row 42, @0xe44
tl: 98 fb: --H-FL-- lb: 0x0  cc: 13
col  0: [ 3]  53 59 53
col  1: [24]
 2f 37 36 38 65 65 38 61 30 5f 50 6f 6c 69 63 79 4e 6f 64 65 49 6d 70 6c
col  2: *NULL*
col  3: [ 4]  c3 02 04 55
col  4: *NULL*
col  5: [10]  4a 41 56 41 20 43 4c 41 53 53
col  6: [ 7]  78 69 08 1e 0f 11 05
col  7: [ 7]  78 69 08 1e 0f 11 05
col  8: [19]  32 30 30 35 2d 30 38 2d 33 30 3a 31 34 3a 31 36 3a 30 34
col  9: [ 5]  56 41 4c 49 44
col 10: [ 1]  4e
col 11: [ 1]  4e
col 12: [ 1]  4e
end_of_block_dump
End dump data blocks tsn: 4 file#: 4 minblk 29457 maxblk 29457

dump undo数据块的内容
SQL> alter system dump datafile 2 block 89;

系统已更改。

Start dump data blocks tsn: 1 file#: 2 minblk 89 maxblk 89
buffer tsn: 1 rdba: 0x00800059 (2/89)
scn: 0x0000.0045c156 seq: 0x02 flg: 0x00 tail: 0xc1562602
frmt: 0x02 chkval: 0x0000 type: 0x26=KTU SMU HEADER BLOCK

  Extent Control Header
  -----------------------------------------------------------------
  Extent Header:: spare1: 0      spare2: 0      #extents: 3      #blocks: 23   
                  last map  0x00000000  #maps: 0      offset: 4080 
      Highwater::  0x0080005b  ext#: 0      blk#: 1      ext size: 7    
  #blocks in seg. hdr's freelists: 0    
  #blocks below: 0    
  mapblk  0x00000000  offset: 0    
                   Unlocked
     Map Header:: next  0x00000000  #extents: 3    obj#: 0      flag: 0x40000000
  Extent Map
  -----------------------------------------------------------------
   0x0080005a  length: 7    
   0x00800121  length: 8    
   0x00800041  length: 8    
 
 Retention Table
  -----------------------------------------------------------
 Extent Number:0  Commit Time: 1292304533
 Extent Number:1  Commit Time: 1292302823
 Extent Number:2  Commit Time: 1292304533
 
  TRN CTL:: seq: 0x04c8 chd: 0x000a ctl: 0x0011 inc: 0x00000000 nfb: 0x0001
            mgc: 0x8201 xts: 0x0068 flg: 0x0001 opt: 2147483646 (0x7ffffffe)
            uba: 0x0080005b.04c8.0d scn: 0x0000.0045b480
Version: 0x01
  FREE BLOCK POOL::
    uba: 0x0080005b.04c8.0e ext: 0x0  spc: 0x18d2 
    uba: 0x00000000.04c8.03 ext: 0x0  spc: 0x1eb8 
    uba: 0x00000000.04bc.14 ext: 0x2  spc: 0x5c2  
    uba: 0x00000000.0473.20 ext: 0x1  spc: 0x1012 
    uba: 0x00000000.0000.00 ext: 0x0  spc: 0x0    
  TRN TBL::
 
  index  state cflags  wrap#    uel         scn            dba            parent-xid    nub     stmt_num    cmt
  ------------------------------------------------------------------------------------------------
   0x0b    9    0x00  0x0bc6  0x0009  0x0000.0045c06a  0x0080005a  0x0000.000.00000000  0x00000001   0x00000000  1292307799
  
End dump data blocks tsn: 1 file#: 2 minblk 89 maxblk 89

 

 

 

 

 

分享到:
评论

相关推荐

    王珊数据库系统概论(第五版)第1到11章PPT

    综上所述,从第一章到第十一章,我们可以系统地掌握数据库系统的全貌,为深入研究和应用打下坚实的基础。对于希望在数据库领域有所建树的读者来说,这些PPT讲义是不可多得的宝贵资源。通过学习,不仅能够使我们在...

    《数据库原理》知识点总结(吐血推荐).doc

    《数据库原理》是一门深入研究数据管理、存储和检索的核心课程。以下是对文档内容的详细总结: 1. **数据库基础知识** - **数据**:数据是任何有意义的信息,可以是数字、文字、图像等。 - **数据库(DB)**:...

    毕设单片机实战项目基于esp8266的高考倒计时.zip

    【项目资源】: 单片机项目适用于从基础到高级的各种项目,特别是在性能要求较高的场景中,比如操作系统开发、嵌入式编程和底层系统编程。如果您是初学者,可以从简单的控制台程序开始练习;如果是进阶开发者,可以尝试涉及硬件或网络的项目。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。 # 注意 1. 本资源仅用于开源学习和技术交流。不可商用等,一切后果由使用者承担。 2. 部分字体以及插图等来自网络,若是侵权请联系删除。

    毕设工坊:专注于计算机毕业设计项目的交流与资源共享平台,涵盖各类技术文档、代码示例及实战经验分享,助力学子顺利完成学业挑战

    毕设工坊:专注于计算机毕业设计项目的交流与资源共享平台,涵盖各类技术文档、代码示例及实战经验分享,助力学子顺利完成学业挑战。

    【window 可视化nvm管理node版本 nvm-desktop】

    【window 可视化nvm管理node版本 nvm-desktop】

    《基于YOLOv8的玉器识别系统》(包含源码、完整数据集、可视化界面、部署教程)简单部署即可运行。功能完善、操作简单,适合毕设或课程设计.zip

    资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。

    (源码)基于microbit编程语言的mymicrobit扩展插件项目.zip

    # 基于microbit编程语言的mymicrobit扩展插件项目 ## 项目简介 这是一个基于microbit编程语言的mymicrobit扩展插件项目。该项目旨在提供额外的功能和特性,以扩展microbit编程环境。通过此插件,用户可以轻松地在MakeCode环境中进行编程,实现对micro:bit设备的更多控制和功能实现。 ## 项目的主要特性和功能 1. 扩展性提供了丰富的积木块和代码库,允许用户轻松实现复杂的编程逻辑和功能扩展。 2. 图形化编程支持通过积木块形式的图形化编程,降低编程门槛,方便初学者快速上手。 3. 实时预览提供了积木块的实时预览功能,方便用户直观地了解代码块的逻辑和功能。 4. 与MakeCode无缝集成可以直接在MakeCode环境中导入和使用,无需额外的配置和安装。 ## 安装使用步骤

    毕设单片机实战项目基于ESP8266的局域网图片刷新显示系统.zip

    【项目资源】: 单片机项目适用于从基础到高级的各种项目,特别是在性能要求较高的场景中,比如操作系统开发、嵌入式编程和底层系统编程。如果您是初学者,可以从简单的控制台程序开始练习;如果是进阶开发者,可以尝试涉及硬件或网络的项目。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。 # 注意 1. 本资源仅用于开源学习和技术交流。不可商用等,一切后果由使用者承担。 2. 部分字体以及插图等来自网络,若是侵权请联系删除。

    《基于YOLOv8的印章分析系统》(包含源码、完整数据集、可视化界面、部署教程)简单部署即可运行。功能完善、操作简单,适合毕设或课程设计.zip

    资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。

    p111基于django的企业员工管理系统.zip

    项目资源包含:可运行源码+sql文件 适用人群:学习不同技术领域的小白或进阶学习者;可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 项目具有较高的学习借鉴价值,也可拿来修改、二次开发。 有任何使用上的问题,欢迎随时与博主沟通,博主看到后会第一时间及时解答。 开发语言:Python 框架:django Python版本:python3.8 数据库:mysql 5.7 数据库工具:Navicat 开发软件:PyCharm 浏览器:谷歌浏览器

    第三章-局域网-思维导图

    第三章-局域网-思维导图

    机械工程PT300机械故障仿真测试台:高校教学与科研用精密振动分析及故障诊断实验系统了您提供的规范

    内容概要:PT300机械故障综合模拟实验台由瓦仑尼安教学设备有限公司生产,旨在帮助用户深入了解振动特征知识及复杂转子振动频谱分析,实现精密振动分析和精准故障诊断。该实验台能模拟轴承故障、不平衡、不对中、设备松动、转子摩擦等多种机械故障现象,可进行不同转速下的轴承故障频率识别、转子静动平衡模拟试验、设备启停机测试等实验。设备采用高效节能ABB三相交流电动机,配备高精度转速控制和测量模块,确保运行稳定。此外,实验台还设有透明防震安全罩和互锁开关,保障实验安全。; 适合人群:高校师生、科研人员等需要学习或研究机械故障诊断相关理论知识和实践技能的人群。; 使用场景及目标:①用于高校等教育机构的教学,辅助学生理解机械故障诊断的理论知识和实践技能;②满足科研人员进行机械故障诊断算法验证、故障特征分析等科研需求。; 其他说明:PT300机械故障综合模拟实验台的每个部件均经过高精度加工,确保在不同振动状态下稳定运行。用户可根据期望分析特定部件的故障特征。设备尺寸为735mm(长)×310mm(宽)×350mm(高),保修一年,且提供免费操作指导服务。

    Android毕设实战项目基于Android+Django+sqlit3开发.zip

    【项目资源】: 适用于从基础到高级的各种项目,特别是在性能要求较高的场景中,比如操作系统开发、嵌入式编程和底层系统编程。如果您是初学者,可以从简单的控制台程序开始练习;如果是进阶开发者,可以尝试涉及硬件或网络的项目。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。 # 注意 1. 本资源仅用于开源学习和技术交流。不可商用等,一切后果由使用者承担。 2. 部分字体以及插图等来自网络,若是侵权请联系删除。

    【光子晶体模拟】基于COMSOL弱形式PDE的三维光子晶体能带结构计算与优化:电磁场切向连续性处理及带隙分析系统设计使用COMSOL

    内容概要:本文详细介绍了使用COMSOL Multiphysics的弱形式接口对三维光子晶体进行数值模拟的方法和技巧。文章通过具体的代码示例,解释了如何构建光子晶体的介电常数分布、设置弱形式PDE、处理电磁场切向连续性、应用Floquet周期边界条件以及特征值求解等关键步骤。特别强调了弱形式接口相比传统物理场接口的优势,如灵活性和对复杂边界的处理能力。文中还分享了一些实用的经验和注意事项,如布洛赫边界条件的实现、特征值求解器参数的优化配置以及网格划分的技巧。 适合人群:具备一定电磁学和数值模拟基础的研究人员或工程师,尤其是对光子晶体仿真感兴趣的读者。 使用场景及目标:①理解并掌握COMSOL弱形式接口在光子晶体仿真中的应用;②学习如何通过弱形式设置处理复杂的电磁场问题;③提高对光子晶体能带结构和带隙特性的认识;④掌握特征值求解和网格划分的最佳实践。 阅读建议:由于本文涉及较多的具体代码和物理概念,建议读者在阅读过程中结合COMSOL软件进行实际操作,同时查阅相关电磁理论书籍以加深理解。此外,对于文中提到的一些具体参数设置和技巧,可以通过尝试不同的配置来巩固所学知识。

    (源码)基于Arduino平台的INSPTComputacion2项目.zip

    # 基于Arduino平台的INSPTComputacion2项目 ## 项目简介 INSPTComputacion2是一个基于Arduino平台的开发项目。该项目旨在通过Arduino的硬件和软件能力,实现一系列计算和交互功能。通过此项目,用户可以体验到Arduino在嵌入式系统、物联网和微控制器等领域的强大功能。 ## 项目的主要特性和功能 该项目的主要特性和功能包括但不限于以下几点 1. 嵌入式系统开发利用Arduino的硬件资源,开发嵌入式系统应用。 2. 物联网应用实现Arduino与物联网技术的结合,进行数据采集、传输和控制。 3. 交互设计通过Arduino实现人机交互,如按钮控制、LED显示等。 4. 数据处理利用Arduino进行数据处理和分析,如温度、湿度等环境数据的采集和处理。 ## 安装使用步骤 以下是在已下载本项目源码文件后的安装使用步骤 1. 确保已安装Arduino IDE软件。

    毕业设计物联网实战项目基于云且连接 Internet 的新式应用程序。 可用于建立Web应用、 IoT物联网、移动后端等。.zip

    【项目资源】: 物联网项目适用于从基础到高级的各种项目,特别是在性能要求较高的场景中,比如操作系统开发、嵌入式编程和底层系统编程。如果您是初学者,可以从简单的控制台程序开始练习;如果是进阶开发者,可以尝试涉及硬件或网络的项目。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。 # 注意 1. 本资源仅用于开源学习和技术交流。不可商用等,一切后果由使用者承担。 2. 部分字体以及插图等来自网络,若是侵权请联系删除。

    毕业设计物联网实战项目基于touchgfx,调度基于freertos.zip

    【项目资源】: 物联网项目适用于从基础到高级的各种项目,特别是在性能要求较高的场景中,比如操作系统开发、嵌入式编程和底层系统编程。如果您是初学者,可以从简单的控制台程序开始练习;如果是进阶开发者,可以尝试涉及硬件或网络的项目。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。 # 注意 1. 本资源仅用于开源学习和技术交流。不可商用等,一切后果由使用者承担。 2. 部分字体以及插图等来自网络,若是侵权请联系删除。

    Python数据结构-学习笔记

    Python数据结构-学习笔记

    电影在线购票系统(springboot+ssm+vue+mysql)含万字系统详细说明文档

    该系统展示了一个电影在线购票系统的结构图,系统分为前台和后台两部分。前台包括首页、影院信息、电影信息、电影资讯和个人中心等模块,主要面向普通用户,提供电影浏览、选座购票、个人账户管理等功能。后台部分由管理员通过后台模块进行操作,包括系统首页、用户管理、场次管理、时间段管理、影院信息管理、电影分类管理、电影信息管理、订单管理和个人中心等模块,用于系统的维护和管理,如用户信息维护、电影和影院信息更新、订单处理等。整个系统旨在为用户提供便捷的在线购票体验,同时确保后台管理的高效和有序。

    5G NR射频基本指标一致性自测用例

    5G NR射频一致性自测用例 由于NR射频测试场景太多,全指标自动化跑测用时太久,本表格选取了主要场景的关键指标,以便于射频工程师对产品的NR射频指标进行初步摸底。 表格每一页概况: 1、NR TDD摸底指标N77/78/79/41 2、NR FDD摸底指标N1/3//5/8/28 附录1、各频段带宽所支持的SCS 附录2、各带宽SCS的RB配置 附录3、灵敏度测试的RB配置 附录4、摸底测试信道查询 附录5、各频段频率范围

Global site tag (gtag.js) - Google Analytics