Oracle体系结构就是围绕这张图展开的,要想深入了解oracle,就必须把这张图搞明白。

如图:

一、基本组成:

Oracle server:

一般情况下是一个instance和一个database组成

1个instance只能对应一个数据库。

特殊:1个数据库可以有多个instance(rac)

一台服务器上同时可装多套版本的数据库软件,每个数据库软件可建多个数据库,但是每个数据库只对应一个instance,也可以理解成每个数据库只有一个SID 。

利用DBCA建出的每个库都是相对独立的,在同一服务器上如果创建多库必须将环境变量的参数文件做区分,并且在对实例切换时需如下操作:

connect 用户名/密码@实例的服务名

Oracle Instance:

是由内存(SGA)和后台进程(backupground Process)组成

通过instance来访问database

一个实例只能打开一个数据库

Oracle database:

数据文件(Data files):

数据文件永远存储数据库的数据,包括数据字典、用户数据(表、索引、簇)、undo数据等

重做日志(Redo log):

“先记后写”

重做日志用于记录数据库的变化,当进行例程恢复或介质恢复时需要使用重做日志

执行DDL或DML操作时,事物变化会被写到重做日志缓冲区,而在特定的时刻LGWR会将重做日志缓冲区中的内容写入重做日志。

控制文件(Control file)

控制文件用于记录和维护数据库的物理结构,并且每个Oracle数据库至少要包含一个控制文件。

归档日志(Archive log):

是非活动(Inactive)重做日志的备份。

口令文件(Password file):

用于验证特权用户(具有SYSDBA、SYSOPER权限的特殊数据库用户)

参数文件(Parameter file):

用于定义启动实例所需要的初始化参数,包括文本参数文件(pfile)和服务器参数文件(spfile)

User and Server process :

在执行sql语句时产生的进程,每一个连接,oracle server创建一个session,产生一个server process,在client发起一个connection时就产生了一个user process。

体系结构可以分为,database结构和instance结构

如下结构:

二、instance结构详解

1、 内存结构

主要包括sga(system global area)和pga(program global area)

Pga是当程序起来时,给server process用(不包含在instance里面,这里不做重点讨论)

SGA(System Global Area)由一组内存结构组成,它是由所有用户进程共享的一块内存区域。启动例程时,Oracle自动分配SGA,关闭例程时,oracle自动释放SGA所占用的内存空间。

Sga包括,share pool,db buffer cache,redo log buffer,large pool,java pool。

在9i中我们都知道在管理Oracle中使用动态SGA时,Granule的大小是和SGA的大小有关系。

SGA分配的最小单元为一个granule.Oracle SGA的大小总是granule的整数倍,即分配是以整数个granule来分配的。

9i中的规则如下:

linux/unix

SGA <=128 M granule 4M

SGA >128M granule 16M

Windows

SGA <=128 M granule 4M

SGA >128M granule 8M

10g中的分配规则为

linux/unix

SGA <=1G granule 4M

SGA >1G granule 16M

Windows

SGA <=1G granule 4M

SGA >1G granule 8M

SQL> select component, granule_size from v$sga_dynamic_components;

COMPONENT GRANULE_SIZE

---------------------------------------------------------------- ------------

shared pool 4194304

large pool 4194304

java pool 4194304

streams pool 4194304

DEFAULT buffer cache 4194304

KEEP buffer cache 4194304

RECYCLE buffer cache 4194304

DEFAULT 2K buffer cache 4194304

DEFAULT 4K buffer cache 4194304

DEFAULT 8K buffer cache 4194304

DEFAULT 16K buffer cache 4194304

DEFAULT 32K buffer cache 4194304

ASM Buffer Cache 4194304

13 rows selected.

Elapsed: 00:00:00.06

SQL>

SQL> desc v$sga_dynamic_components;

Name Type

--------------------------------------------------------

COMPONENT VARCHAR2(64)

CURRENT_SIZE NUMBER

MIN_SIZE NUMBER

MAX_SIZE NUMBER

USER_SPECIFIED_SIZE NUMBER

OPER_COUNT NUMBER

LAST_OPER_TYPE VARCHAR2(13)

LAST_OPER_MODE VARCHAR2(9)

LAST_OPER_TIME DATE

GRANULE_SIZE NUMBER

SQL>

SQL> select * from v$sga_dynamic_components;

COMPONENT CURRENT_SIZE MIN_SIZE MAX_SIZE USER_SPECIFIED_SIZE OPER_COUNT LAST_OPER_TYP LAST_OPER LAST_OPER GRANULE_SIZE

-------------------- ------------ ---------- ---------- ------------------- ---------- ------------- --------- --------- ------------

shared pool 92274688 92274688 0 0 0 STATIC 4194304

large pool 4194304 4194304 0 0 0 STATIC 4194304

java pool 4194304 4194304 0 0 0 STATIC 4194304

streams pool 0 0 0 0 0 STATIC 4194304

DEFAULT buffer cache 62914560 62914560 0 0 0 INITIALIZING 4194304

KEEP buffer cache 0 0 0 0 0 STATIC 4194304

RECYCLE buffer cache 0 0 0 0 0 STATIC 4194304

DEFAULT 2K buffer ca 0 0 0 0 0 STATIC 4194304

DEFAULT 4K buffer ca 0 0 0 0 0 STATIC 4194304

DEFAULT 8K buffer ca 0 0 0 0 0 STATIC 4194304

DEFAULT 16K buffer c 0 0 0 0 0 STATIC 4194304

DEFAULT 32K buffer c 0 0 0 0 0 STATIC 4194304

ASM Buffer Cache 0 0 0 0 0 STATIC 4194304

13 rows selected.

Buffer Cache Size

数据缓存,调高数据命中率可以提高性能。按数据块存放。

db_cache_size

db_keep_cache_size

db_recycle_cache_size

alter system set db_cache_size = xxx M

SQL> show parameter advice

NAME_COL_PLUS_SHOW_PARAM TYPE VALUE_COL_PLUS_SHOW_PARAM

--------------------------------------------------------------------------------

db_cache_advice string ON

SQL>

SQL> select * from v$db_cache_advice;

SQL>

Large Pool Size rman和一些并行处理时候会用到。

Java Pool Size java存储过程的支持

Streams Pool Size

Oracle 10g中sga_target自动调整只是针对这四项:data buffer cache, large_pool, shared_pool, java_pool

1) 03:41:30 SQL> show sga

2)

3) Total System Global Area 285212672 bytes

4) Fixed Size 1218992 bytes

5) Variable Size 71304784 bytes

6) Database Buffers 209715200 bytes

7) Redo Buffers 2973696 bytes

8) 04:45:40 SQL>

9)

04:46:18 SQL> select name,bytes/(1024*1024) ,resizeable from v$sgainfo;

10)

11) NAME BYTES/(1024*1024) RES

12) -------------------------------- ----------------- ---

13) Fixed SGA Size 1.16252136 No

14) Redo Buffers 2.8359375 No

15) Buffer Cache Size 200 Yes

16) Shared Pool Size 60 Yes

17) Large Pool Size 4 Yes

18) Java Pool Size 4 Yes

19) Streams Pool Size 0 Yes

20) Granule Size 4 No;区组大小为4M

21) Maximum SGA Size 272 No

22) Startup overhead in Shared Pool 36 No

23) Free SGA Memory Available 0

24)

04:49:34 SQL> select sum(bytes)/(1024*1024) size_in_mbfrom v$sgastat;

25)

26) SIZE_IN_MB

27) ----------

28) 276.003071

29)

30)

04:48:19 SQL> select * from v$sgastat;

31)

32) POOL NAME BYTES

33) ------------ -------------------------- ----------

34) shared pool KKJ WRK LAT 300

35) shared pool kfkhsh_kfdsg 2052

36) shared pool event statistics ptr arra 680

37) shared pool KGKP randnum 40000

38) large pool PX msg pool 206208

39) large pool free memory 3988096

40) java pool free memory 4194304

41)

42) 602 rows selected.

43)

04:50:37 SQL> show parameter sga;

44)

45) NAME TYPE VALUE

46) ------------------------------------ ----------- ------------------------------

47) lock_sga boolean FALSE

48) pre_page_sga boolean FALSE

49) sga_max_size big integer 272M

50) sga_target big integer 272M

SGA动态尺寸总计不能超过初始化参数SGA_MAX_SIZE的值。

如果sga_target超过了sga_max_size的大小,在Instance重新启动后,sga_max_size会调整成和sga_target一样大小的值。

如果在初始化参数里这些内存池设置为非零,则系统启动后,这些值将作为该参数对应的最小值运行。如果那个值在系统运行时不够,则Oracle将自动为其添加容量,以帮助其优化操作,直到内存使用达到SGA_TARGET所表明的上限。

[oracle@oraserv ~]$ !sql

sqlplus '/as sysdba';

SQL*Plus: Release 10.2.0.1.0 - Production on Sat Mar 19 11:17:30 2011

Copyright (c) 1982, 2005, Oracle. All rights reserved.

Connected to an idle instance.

11:17:35 SQL> startup

ORACLE instance started.

Total System Global Area 419430400 bytes

Fixed Size 1219784 bytes

Variable Size 289407800 bytes

Database Buffers 125829120 bytes

Redo Buffers 2973696 bytes

Database mounted.

Database opened.

11:18:13 SQL> show parameter sga

NAME TYPE VALUE

------------------------------------ ----------- ------------------------------

lock_sga boolean FALSE

pre_page_sga boolean FALSE

sga_max_size big integer 400M

sga_target big integer 300M

11:18:23 SQL> alter system set sga_target=500m ;

alter system set sga_target=500m

*

ERROR at line 1:

ORA-02097: parameter cannot be modified because specified value is invalid

ORA-00823: Specified value of sga_target greater than sga_max_size

11:18:38 SQL> alter system set sga_target=500mscope=spfile;

System altered.

11:18:54 SQL> startup force;

ORACLE instance started.

Total System Global Area 524288000 bytes

Fixed Size 1220360 bytes

Variable Size 176161016 bytes

Database Buffers 343932928 bytes

Redo Buffers 2973696 bytes

Database mounted.

Database opened.

11:19:30 SQL> show parameter sga;

NAME TYPE VALUE

------------------------------------ ----------- ------------------------------

lock_sga boolean FALSE

pre_page_sga boolean FALSE

sga_max_sizebig integer 500M

sga_targetbig integer 500M

11:19:38 SQL>

利用后台进程MMAN进行SGA动态管理

[oracle@oracle ~]$ ps -ef |grep ora_|grep ora_

oracle8012 1 0 11:12 ? 00:00:00 ora_mman_prod

share pool:

共享池(Share Pool)用于存放最近执行的SQL语句和数据字典信息。

共享池主要有库高速缓存(Library Cache)和数据字典高速缓存(Dictionary cache)两部分组成

1)库高速缓存(Library Cache)

库高速缓存用于存放最近执行的sql语句信息,包括sql语句文本,解析代码值及执行计划。

假设执行一条sql语句

-select ename,job from emp where empno=7788;

如果最近(还没有被lru淘汰)执行过这条语句,他就会直接从cache里面读结果;如果没有执行过,就需要读数据文件,这个过程就比较复杂,效率差距很大。

这里还有两个概念:

物理i/o和逻辑i/o---------1:1000

物理i/o:从数据缓冲区找不到所需要的数据,就要从硬盘里面读取。

逻辑i/o:从数据缓冲区能找到所需要的数据,

理论上讲一个数据库性能是否良好,这个逻辑i/o应该占95%以上

2)、数据字典高速缓存区(Dictionary cache)

用于存放数据字典的信息,包括表、列定义以及权限信息)

库高速缓存和数据字典高速缓存大小是动态变化的,不是固定的。

SQL> alter system set share_pool_size=60m;

DB buffer

数据高速缓存(Database Buffer cache)用于存放最近访问的数据块信息,它由许多小缓冲区(缓冲区大小=数据尺寸)组成

Db_cache_size定义标准的高速缓存尺寸

Db_nk_cache_size定义非标准的高速缓存尺寸

数据库高速缓存区:

Db_cache_size Default默认池,所有段都被默认高速缓存到默认池。(采用LRU)

Db_keep_cache_size ,确保某些数据块始终被保留到内存中

Db_recycle_cache_size ,数据高速缓存区“回收池”

Redo log buffer

重做日志缓存区(Redo log buffer),用于记载实例的变化。执行DDL或DML语句时,服务器进程首先将事物的变化记载到重做日志缓存区,然后才会修改数据高速缓存。

重做日志缓存区由很多重做记录(Redo record)组成,并且每条重做记录记载了被修改数据块的位置以及变换后的数据

Large pool

PGA(Program Global Area)

用于存放服务器进程的数据和控制信息,独立于SGA的一块内存区域。

当用户连接到Oracle Server时,Oracle server会为每个服务器进程分配相应的PGA.

SGA是所有服务器进程都可共享那个的一块内存区域,而每个服务器进程都具有私有的PGA内存空间。

客户端在通过sql语句连接database时,必须通过实例Instance来连接和管理数据库。

Connection:客户端进程和服务端进程建立通讯。

Session:当用户经过Oracle server认证后开始建立会话,直到用户退出登录,会话结束

2、进程结构

用户进程

server进程

当客户端运行应用程序时,会启动形影的应用进程,该进程称为用户进程;

当连接到Oracle Server 时,Oracle在服务器端会为用户进程派生一个新的进程

后台进程

启动实例时,Oracle不仅会分配SGA,还会启动后台进程。

[oracle@oraserv ~]$ ps -ef |grep ora_

oracle 4694 1 0 01:18 ? 00:00:01 ora_pmon_orcl

oracle 4696 1 0 01:18 ? 00:00:00 ora_psp0_orcl

oracle 4698 1 0 01:18 ? 00:00:00 ora_mman_orcl

oracle 4700 1 0 01:18 ? 00:00:00 ora_dbw0_orcl

oracle 4702 1 0 01:18 ? 00:00:00 ora_lgwr_orcl

oracle 4704 1 0 01:18 ? 00:00:06 ora_ckpt_orcl

oracle 4706 1 0 01:18 ? 00:00:01 ora_smon_orcl

oracle 4708 1 0 01:18 ? 00:00:00 ora_reco_orcl

oracle 4710 1 0 01:18 ? 00:00:02 ora_cjq0_orcl

oracle 4712 1 0 01:18 ? 00:00:01 ora_mmon_orcl

oracle 4714 1 0 01:18 ? 00:00:01 ora_mmnl_orcl

oracle 4716 1 0 01:18 ? 00:00:00 ora_d000_orcl

oracle 4718 1 0 01:18 ? 00:00:00 ora_s000_orcl

oracle 4722 1 0 01:18 ? 00:00:00 ora_arc0_orcl

oracle 4724 1 0 01:18 ? 00:00:00 ora_arc1_orcl

oracle 4728 1 0 01:18 ? 00:00:00 ora_qmnc_orcl

oracle 4741 1 0 01:18 ? 00:00:00 ora_q000_orcl

oracle 4743 1 0 01:18 ? 00:00:00 ora_q001_orcl

oracle 5467 1 0 03:46 ? 00:00:00 ora_j000_orcl

[oracle@oraserv ~]$

03:50:01 SQL> select paddr,name,description fromv$bgprocess where paddr<>'00';

PADDR NAME DESCRIPTION

-------- ----- ----------------------------------------------------------------

30E16830 PMON process cleanup

30E16DE4 PSP0 process spawner 0

30E17398 MMAN Memory Manager

30E1794C DBW0 db writer process 0

30E1B808 ARC0 Archival Process 0

30E1BDBC ARC1 Archival Process 1

30E1C370 ARC2 Archival Process 2

30E17F00 LGWR Redo etc.

30E184B4 CKPT checkpoint

30E18A68 SMON System Monitor Process

30E1901C RECO distributed recovery

30E195D0 CJQ0 Job Queue Coordinator

30E1C924 QMNC AQ Coordinator

30E19B84 MMON Manageability Monitor Process

30E1A138 MMNL Manageability Monitor Process 2

DBWN

DBWR,用于将数据高速缓存的脏缓冲区数据写入到数据文件中

默认情况下只有一个DBWR0进程,通过db_writer_process 可以定义最多10个DBWR进程(DBWR0-DBWR9).

DBWR工作触发条件:

1、 系统发出检查点(CheckPoint)

如:alter system checkpoint local; 这是手动操作。

2、 脏数据块达到阀值

3、服务器进程不能找到空闲的缓冲区

3、超时

4、 rac ping

3、删除或截断表(表空间的相关操作只写表空间相关的内容)

4、表空间正常脱机(ALTER TABLE … OFFLINE NORMAL)

5、开始表空间备份(ALTER TABLESAPCE ...BEGIN BACKUP )

rac ping官方解释:

Every few seconds, the process in one instance sends messages to each instance. The message is received by PING on the target instance. The time for the round trip is measured and collected.

rac ping是用ops时的概念了,现在已经不用这个概念了,或许没有这个概念了。

Lgwr

LGWR,用于将重做日志缓冲区所记载的全部内容写入到重做日志文件中。

Oracle总是“先日志后修改”(先记载变化然后修改数据);

在DBWR工作之前,LGWR首先将事务变化写入到重做日志。

LGWR工作触发条件:

1、提交事务(commit)

2、每隔3秒钟

3、当重做日志信息超过1M

4、重做日志缓冲区超过1/3满

5、在DBWR进程将脏缓冲区写入到数据文件前

思考:

checkpoint时会不会导致lgwr写?

Smon

在例程失败的情况下,SMON做以下的恢复:

Instance recovery

1、REDO,重新应用那些被记载的重做日志,但尚未记载的数据文件的数据。因为所有被提交的事务已经记载到了重做日志,所以可以确保恢复事务数据。(前滚)

2、打开数据库,在打开数据库时,既包含了被提交的数据,也包含了未被提交的数据(加锁)。

3、Undo,取消未提交的数据。打开数据库之后,Oracle会自动使用Undo段回退未提交的数据。(回滚)

整合空闲空间

临时段

Pmon

PMON,用于监视服务器进程的执行,并且在服务器进程失败时清除该服务器进程。

用户例程意外终止运行时,PMON可以轮询检测该服务进程,并执行以下操作:

1、回退用户的当前事务

2、释放服务器进程所占用的所有表锁和行锁

3、释放用户所占用的其他资源

Checkpoint

CKPT,用于发出检查点(CheckPoint),检查点会同步数据库的数据文件和控制文件、重做日志)。

当发出检查点时,后台进程CKPT将检查点时刻的SCN(System Change Number)写入到控制文件、和数据文件头部,同时会促使后台进程DBWR将所有的脏缓冲区写入到数据文件中。

当发出检查点是,不仅后台进程CKPT和DBWR要开始工作,LGWR也会将重做日志缓冲区写入到重做日志,从而确保数据文件、控制文件、重做日志的一致性。

CKPT工作触发条件:

1、日志切换(包括手动:ALTER SYSTEM SWITCH LOGFILE,手动归档应该也可以)

2、关闭实例(shutdown abort除外)

3、手工检查点操作(alter system checkpoint)

4、热备

5、当运行ALTER TABLESPACE/DATAFILE READ ONLY的时候

6、手动设置fast_start_mttr_target

检查点发生后,他会立马做出如下事件:

1、更新数据文件头部

2、更新控制文件

主要是scn,用于恢复,chpt发生的频率越高,恢复的时间越短,频率高了,数据库性能可能有影响;所以设置这个参数的时候要慎重。

Arcn

ARCH,用于将重做日志的事务变化复制到归档日志中(用于重做日志的备份)

SQL> show parameter archive

NAME TYPE VALUE

------------------------------------ ----------- ------------------------------

archive_lag_target integer 0

log_archive_config string

log_archive_dest string

log_archive_dest_1 string location=/disk1/arch

log_archive_dest_10 string

log_archive_dest_2 string

log_archive_dest_3 string

log_archive_dest_4 string

log_archive_dest_5 string

log_archive_dest_6 string

log_archive_dest_7 string

log_archive_dest_8 string

log_archive_dest_9 string

log_archive_dest_state_1 string enable

log_archive_dest_state_10 string enable

log_archive_dest_state_2 string enable

log_archive_dest_state_3 string enable

NAME TYPE VALUE

------------------------------------ ----------- ------------------------------

log_archive_dest_state_4 string enable

log_archive_dest_state_5 string enable

log_archive_dest_state_6 string enable

log_archive_dest_state_7 string enable

log_archive_dest_state_8 string enable

log_archive_dest_state_9 string enable

log_archive_duplex_dest string

log_archive_format string %s_%t_%r.log

log_archive_local_first boolean TRUE

log_archive_max_processes integer 2

log_archive_min_succeed_dest integer 1

log_archive_start boolean FALSE

log_archive_trace integer 0

remote_archive_enable string true

standby_archive_dest string ?/dbs/arch

三、 database 结构

1、物理结构

Oracle物理结构主要由:数据文件,日志文件,控制文件

当然还有一些其他的文件:参数文件,口令文件,告紧日志文件,归档日志文件等

具体内容后面一一总结

2、逻辑结构

1、表空间(tablespace),是数据库的逻辑组成部分。

2、段(Segment),用于存放特定的逻辑对象(表、簇、索引等)的所有数据,它由一个或多个区组成的。

如表段、索引段、临时段、undo段等

3、区(extent),是Oracle进行空间分配的逻辑单元,它由相邻的数据块组成。

4、Oracle 块,数据块,是Oracle 在数据文件上执行I/0的最小单位,其尺寸应该为OS块的整数倍

处理sql

服务器进程处理select语句包括解析(Parse),执行(Execute),和提取数据(Fetch)三个阶段

处理DML语句:

因为DML语句不会返回数据,所以处理DML语句只包括解析和执行两个阶段

处理commit

oracle e18,oracle 体系结构相关推荐

  1. Oracle实例和Oracle数据库(Oracle体系结构)

    --========================================== --Oracle实例和Oracle数据库(Oracle体系结构) --==================== ...

  2. 阐述oracle的体系结构,Oracle数据库逻辑体系结构详解

    以前对Oracle数据库的了解大多数是集中在mysql,最近工作里面一直使用的是Oracle,虽然说在互联网行业mysql大行其道,但是一些传统行业或者是金融领域还是更加倾向于使用oracle,sql ...

  3. Oracle数据库的体系结构和用户管理

    一.Oracle体系结构 数据库的体系结构是指数据库的组成.工作过程.以及数据库中数据的组织与管理机制,要了解Oracle数据库的体系结构,必须理解Oracle系统的主要组件和重要概念. 1.Orac ...

  4. oracle数据库系统介绍,Oracle数据库(Oracle Database)体系结构及基本组成介绍

    Oracle数据库服务器(Oracle database server)一般情况下是一个Oracle instance和一个Oracle database组成.当在计算机服务器上启动Oracle数据库 ...

  5. Linux下docker安装配置oracle,oracle创建用户并远程连接,实测可用!

    最近在给同学弄毕业设计的数据库,因为oracle在个人电脑上极不稳定,所以他的电脑数据库崩溃了,这时候我就在docker上为他拉了一个oracle,解决了问题. docker的安装共有以下几步,实测没 ...

  6. oracle自动化,Oracle 自动化备份脚本

    备份脚本,基于linux,windows环境需要适当修改. 主脚本,会调用2,3步骤的rman.sql&status.sql $ more main.sh #set env ######### ...

  7. it oracle 培训,Oracle数据库技术培训_OracleDBA数据库工程师_Oracle数据库在线学习视频教程_IT职业培训-51CTO学院_精培学院...

    第一阶段:企业级Oracle数据库实战入门与集群实施 特色:本阶段部分内容为OCP/OCM课程内容,以企业实战项目为主导讲解,实用性更强. 第1章 Oracle数据库高级工程师职业发展与学习方法 第2 ...

  8. 【oracle】oracle经典sql,exception,database link纠错

    [oracle]oracle经典sql,exception,database link纠错 1111-01 oracle经典sql,exception,database link纠错 1.给表tabl ...

  9. oracle v$system_event,45.Oracle杂记——Oracle常用动态视图v$system_event

    45.Oracle杂记--Oracle常用动态视图v$system_event 视图v$system_event 显示一个事件的总共等待. 如果不支持计时机制,那么TIME_WAITED和AVERAG ...

最新文章

  1. SAP RETAIL - How to activate SAP Retail system
  2. 美国任命首位首席信息安全官
  3. 小学校园里计算机文字,中小学计算机教学论文(共2228字).doc
  4. vc中GetDlgItem用法
  5. https下 http的会被阻塞 This request has been blocked; the content must be served over HTTPS.
  6. python基础--字符串的内置函数
  7. 如何用linux登入数据库,Linux中MySQL数据库的使用①-----登录、数据库操作、表结构操作...
  8. 欢乐纪中某A组赛【2019.7.5】
  9. CF526G Spiders Evil Plan(树上最优性问题、倍增+线段树)
  10. Diango博客--7.自动生成文章摘要
  11. 钉钉调岗申请单怎么写 钉钉申请调岗的教程
  12. c语言黄建灯第七章答案,c语言实训大纲.doc
  13. (转)NYU教授给写AI新闻的记者们写了一封推心置腹的信,你也应该读读
  14. 2017计算机驱动用什么好处,驱动精灵和驱动人生哪个好2017
  15. mbot编程机器人怎么连接蓝牙_STEAM教育机器人搭建指南,mBot入门级编程机器人搭建教程...
  16. uni-app小程序生成海报,支持各种机型
  17. SpringMVC学习----请求与响应
  18. 微信外部浏览器支付遇到:支付场景非法、appid 未关联paysignkey、商户支付下单id非法 等问题
  19. UDS之浅谈10服务
  20. flask装饰器顺序

热门文章

  1. 机器学习之分类决策树节点划分指标
  2. 单片机的各种存储的含义和区别
  3. 卡饭里的云计算机,微云可以在电脑用吗
  4. keras提取模型中的某一层_Keras做图片分类(四):迁移学习--猫狗大战实战
  5. java yml文件_yml文件内容映射到pojo
  6. mybatis 存储过程 tmp_count_mysql存储过程(一)-navicat与mybatis
  7. gms签名不一致_电子签名拍照-多媒体互动装置介绍「振邦视界」
  8. 怎么把苹果手机通讯录导入华为手机_苹果手机资料快速导入华为手机。苹果的ios系统也可以把资料导入安卓!...
  9. LR中并发用户和集合点
  10. mysql之explain详解(分析索引的最佳使用)