81-Oracle-块-区-段-表空间-解析

Oracle数据库表空间段区块详解 Oracle数据库表空间段区块详解。 阅读详情

上一期说到Oracle推荐的 LMT+ASSM管理方式77-Oracle 表空间管理(官方推荐)LMT-ASSM-优快云博客,现在深入掌握Oracle存储架构的核心组件(块/区/段/表空间),这样可以提高维护精准度和效率:

​性能优化:通过监控块的空间利用率(ASSM位图)和行迁移,解决I/O瓶颈;调整区分配策略预防碎片化;管理高水位线(HWM)避免全表扫描无效数据。

​容量管理:在表空间层级预判数据增长,及时扩容或迁移热数据;通过段分析精准定位空间浪费对象(如空表延迟分配);利用区回收机制释放存储资源。

​故障诊断:快速定位存储异常:ORA-01555错误(回滚段配置)、索引分裂(区分配过小)、大表查询缓慢(HWM未回收)。

​架构设计:合理规划表空间物理布局(如分离索引/LOB数据),设计分区表(段级隔离),选择最佳块大小(OLTP vs DSS场景),构建高性能存储方案。

​通过深入理解块、区、段和表空间的协作机制,加深我们对数据存储的理解,将物理存储抽象为可控逻辑单元,方便我们精准调试Oracle的存储引擎。

一、核心概念与结构

1. 数据块 (Block)
  • ​概念​:
    • Oracle 数据库的最小 I/O 单位(默认 8KB)
    • 数据存储的基本单元,存储实际的行数据
  • ​结构​:
    • 块头:元数据(块地址、SCN、事务槽)
    • 表目录:表信息(仅堆组织表)
    • 行目录:行位置指针
    • 空闲空间:可插入新数据或更新的区域
    • 行数据:实际存储的行记录
  • ​空间管理​:
    • ​ASSM(自动管理)​​:
      • 使用位图按空闲比例分类块(0-25%, 25-50%, 50-75%, 75-100%)
      • 插入数据时根据行大小匹配对应空闲级别的块
      • 仅保留 PCTFREE 参数(预留更新空间)
    • ​MSSM(手动管理)​​:
      • 使用空闲列表(FREELIST)跟踪可用块
      • PCTFREE(预留更新空间)和 PCTUSED(可插入阈值)配合管理

     

2. 区 (Extent)
  • ​概念​:
    • 空间分配的最小单位(由连续数据块组成)
    • 段存储空间的基本扩展单元
  • ​结构​:
    • 初始区(Initial Extent):对象创建时分配的第一个区
    • 后续区(Next Extent):空间不足时动态分配的区
  • ​管理方式​:
    • ​本地管理(LMT)​​:
      • 使用数据文件头部的位图跟踪区分配
      • 高效无争用(默认方式)
    • ​字典管理(已淘汰)​​:
      • 通过数据字典表管理区分配
3. 段 (Segment)
  • ​概念​:
    • 逻辑对象(表/索引/LOB)的物理存储容器
    • 由一个或多个区组成
  • ​结构​:
    • 段头块:存储位图(ASSM)或空闲列表(MSSM)
    • 区链表:管理多个区
  • ​类型​:
    • 表段(TABLE)
    • 索引段(INDEX)
    • LOB段(LOBSEGMENT)
    • 分区段(每个分区独立)
  • ​延迟段创建​:
    • 表创建时不立即分配段(deferred_segment_creation=true)
    • 首次插入数据时分配初始区 
4. 表空间 (Tablespace)
  • ​概念​:
    • 数据库的逻辑存储容器
    • 管理物理数据文件的逻辑抽象
  • ​结构​:
    • 数据文件:物理存储文件
    • 段空间管理:
      • 本地管理(LMT,推荐)
      • 字典管理(已淘汰)
    • 块大小:可指定非标准块大小(需配置DB缓存)

二、Oracle 体系架构中的功能 

​组件​

​功能描述​

​数据块​

最小 I/O 单元,存储实际行数据,支持事务处理(行锁、事务槽)

​区​

空间分配单元,保证数据物理连续性,提升 I/O 效率

​段​

逻辑对象容器,管理空间扩展和高水位线(HWM)

​表空间​

逻辑存储容器,隔离物理文件,支持存储策略(如热冷数据分离)

关键机制​:

  1. ​ASSM + LMT​:自动化空间管理(减少 DBA 干预)
  2. ​延迟段创建​:减少空对象空间占用
  3. ​高水位线(HWM)​​:标记段中已使用区的最高位置(影响全表扫描范围)
  • DELETE数据并不降低 HWM,需 SHRINK 或 MOVE 回收空间

三、验证脚本

1. 查看表空间与数据文件
-- 查看表空间信息
SELECT tablespace_name, block_size, status, contents FROM dba_tablespaces;
--
   TABLESPACE_NAME    BLOCK_SIZE    STATUS     CONTENTS
__________________ _____________ _________ ____________
SYSTEM                      8192 ONLINE    PERMANENT
SYSAUX                      8192 ONLINE    PERMANENT
UNDOTBS1                    8192 ONLINE    UNDO
TEMP                        8192 ONLINE    TEMPORARY
USERS                       8192 ONLINE    PERMANENT
BIDATA                      8192 ONLINE    PERMANENT
BIINDEX                     8192 ONLINE    PERMANENT
ODSDATA                     8192 ONLINE    PERMANENT
ODSINDEX                    8192 ONLINE    PERMANENT
-- 查看数据文件
SELECT file_name, tablespace_name, bytes/1024/1024 AS size_mb FROM dba_data_files;
--
  SIZE_MB
_________________________________________________________________________________________ __________________ __________
/oradata/HBICDB/383C85C956F239E2E063BD00060A05F5/datafile/o1_mf_system_n5lgnhs6_.dbf      SYSTEM                    480
/oradata/HBICDB/383C85C956F239E2E063BD00060A05F5/datafile/o1_mf_sysaux_n5lgnhsg_.dbf      SYSAUX                    520
/oradata/HBICDB/383C85C956F239E2E063BD00060A05F5/datafile/o1_mf_undotbs1_n5lgnhsg_.dbf    UNDOTBS1                  260
/oradata/HBICDB/383C85C956F239E2E063BD00060A05F5/datafile/o1_mf_users_n5lgnoj8_.dbf       USERS                     100
/oradata/HBICDB/383C85C956F239E2E063BD00060A05F5/datafile/bidata01.dbf                    BIDATA                  30720
/oradata/HBICDB/383C85C956F239E2E063BD00060A05F5/datafile/biindex01.dbf                   BIINDEX                 30720
/oradata/HBICDB/383C85C956F239E2E063BD00060A05F5/datafile/odsdata01.dbf                   ODSDATA                 30720
/oradata/HBICDB/383C85C956F239E2E063BD00060A05F5/datafile/odsindex01.dbf                  ODSINDEX                30720
 2. 验证段与区分配
-- 创建测试用户
CREATE USER test_user IDENTIFIED BY test;
GRANT CONNECT, RESOURCE, UNLIMITED TABLESPACE TO test_user;
--User TEST_USER created.
--Grant succeeded.
-- 延迟段创建(默认)
CREATE TABLE test_user.t_delayed (id NUMBER);
--Table TEST_USER.T_DELAYED created.
SELECT segment_name FROM user_segments WHERE segment_name = 'T_DELAYED';
-- 无结果,no rows selected

INSERT INTO test_user.t_delayed VALUES (1);
COMMIT;
SELECT segment_name, blocks, extents FROM user_segments;
--
SEGMENT_NAME                            BLOCKS    EXTENTS
____________________________________ _________ __________
UNDO$                                        8          1
PROXY_ROLE_DATA$                             8          1
CON$                                        40          5
PROXY_DATA$                                  8          1
FILE$                                        8          1

-- 立即分配段
CREATE TABLE test_user.t_immediate (id NUMBER) SEGMENT CREATION IMMEDIATE;
SELECT segment_name, blocks, extents FROM user_segments;
--
SEGMENT_NAME                         BLOCKS    EXTENTS
_________________________________ _________ __________
C_OBJ#                                 2048         31
I_OBJ#                                   40          5
C_TS#                                    32          4
I_TS#                                     8          1
C_FILE#_BLOCK#                          256         17
I_FILE#_BLOCK#                           32          4
C_USER#                                  16          2
I_USER#                                   8          1
………………
13.52186                         8          1
13.52218                         8          1
3,423 rows selected.
-- 多类型段(表+索引+LOB)
CREATE TABLE test_user.t_lob (
    id NUMBER PRIMARY KEY,
    doc CLOB
) SEGMENT CREATION IMMEDIATE;

SELECT segment_name, segment_type FROM user_segments;
3. 块管理验证(ASSM vs MSSM)
-- 创建ASSM表空间
CREATE TABLESPACE assm_ts 
DATAFILE 'assm.dbf' SIZE 100M 
EXTENT MANAGEMENT LOCAL 
SEGMENT SPACE MANAGEMENT AUTO;

-- 创建MSSM表空间
CREATE TABLESPACE mssm_ts 
DATAFILE 'mssm.dbf' SIZE 100M 
EXTENT MANAGEMENT LOCAL 
SEGMENT SPACE MANAGEMENT MANUAL;

-- 在ASSM表空间建表
CREATE TABLE test_user.t_assm (id NUMBER) TABLESPACE assm_ts;
SELECT segment_name, segment_subtype FROM user_segments;

-- 在MSSM表空间建表(指定PCTFREE/PCTUSED)
CREATE TABLE test_user.t_mssm (
    id NUMBER
) PCTFREE 20 PCTUSED 40 TABLESPACE mssm_ts;
 4. 区扩展与回收
-- 手动分配区
ALTER TABLE test_user.t_immediate ALLOCATE EXTENT (SIZE 1M);
SELECT extent_id, bytes FROM user_extents;
--
           2    1048576
           3    1048576
           4      65536
           5    1048576

7,476 rows selected.

-- 删除数据并回收空间
DELETE FROM test_user.t_immediate;
COMMIT;

-- 回收未使用区(仅回收未使用区)
ALTER TABLE test_user.t_immediate DEALLOCATE UNUSED;
SELECT bytes, blocks FROM user_segments;
--
    65536         8
    65536         8

3,423 rows selected.

-- 降低高水位线(HWM)
ALTER TABLE test_user.t_immediate ENABLE ROW MOVEMENT;
--Table TEST_USER.T_IMMEDIATE altered.
ALTER TABLE test_user.t_immediate SHRINK SPACE;
--Table TEST_USER.T_IMMEDIATE altered.
 5. 块使用分析
-- 查看块使用情况(需DBA权限)
SELECT table_name, blocks, empty_blocks 
FROM dba_tables 
WHERE owner = 'TEST_USER';
--
TABLE_NAME        BLOCKS    EMPTY_BLOCKS
______________ _________ _______________
T_DELAYED
T_IMMEDIATE
T_LOB

-- 分析表空间使用,查看表的空间利用率(ASSM表空间)
SELECT 
  df.tablespace_name,
  ROUND(SUM(df.bytes) / 1024 / 1024, 2) AS allocated_mb,
  ROUND((SUM(df.bytes) - SUM(fs.bytes)) / 1024 / 1024, 2) AS used_mb
FROM dba_data_files df
JOIN dba_free_space fs ON df.tablespace_name = fs.tablespace_name
WHERE df.tablespace_name = (
  SELECT tablespace_name 
  FROM dba_tables 
  WHERE owner = 'TEST_USER' AND table_name = 'T_IMMEDIATE'
)
GROUP BY df.tablespace_name;
--
TABLESPACE_NAME       ALLOCATED_MB    USED_MB
__________________ _______________ __________
USERS                           72       6.75

四、使用体验

Oracle 存储层次结构: 表空间 → 段 → 区 → 块
​ 关键结论​:
  1. ​块是 I/O 最小单元,ASSM 简化空间管理
  2. ​区保证数据连续性,本地管理提升效率
  3. ​段管理对象存储,延迟创建优化空间
  4. ​表空间隔离物理存储,支持不同存储策略
​ 最佳实践​:
  1. 使用 ASSM + LMT 表空间(SEGMENT SPACE MANAGEMENT AUTO)
  2. 启用延迟段创建(deferred_segment_creation=true)
  3. 定期监控高水位线,使用 SHRINK SPACE 回收空间
  4. 对大型表使用分区+压缩优化存储
基于PSO-BP神经网络的风电功率预测研究论文复现 风电功率预测。基于PSO-BP神经网络的风电功率预测论文复现。matlab程序,注释清晰。 阅读详情

相关推荐

用运放和乘法器DIY忆阻模拟器:从理论到Multisim仿真实战

本文详细介绍了如何利用运放和乘法器DIY忆阻模拟器,从理论基础到Multisim仿真实战。通过解析忆阻器的数学模型,设计关键电路模块,并完成仿真验证,帮助电子爱好者低成本实现忆阻器功能。文章还提供了实际调试中的常见问题解决方案和进阶应用建议,适合神经形态计算和非易失性存储领域的研究者参考。

weixin_28718345的博客 415

oracle 表空间、段、区、块

1、块(block) oracle存储的最小单位,默认块大小是8K,可通过“show parameter db_block_size”查看,数据库建立后不可修改 2、区(extent) 多个数据块(block)组成区,区也是oracle进行空间扩展的最小单位。如下图所示,一个区含有8个块,故区的大小为:8 * 8192 = 65536 但区含有块的个数是不确定的 3、段 数据段是与数据库对象相对应,一般一个数据库对象对应一个数据段。多个extent是对应一个数据段,每个数据段就是数据库一个对象。表、索

qq_25863973的博客 4822

西门子交换机环网冗余设置(实战篇2.2)

MRP的重组时间为 200ms 因此 PROFINET 通信必须选择大于 200ms 的看门狗时间,看门狗。ET200SP默认为 2ms*3=6ms) MRP 的重组时间为 200ms 故系统会报出看门狗超时。更新,默认是 3 个周期,超出设置的周期数就会报 IO 设备故障。时间不是直接配置的,而是作为没有 IO 数据可接受的更新周期,也就是允许几个周期没有数据。来达到大于 200ms 的看门狗时间的要求(看门狗时间 可接受更新周期数 更新时间)。是IO 控制器和 IO 设备)

weixin_42580591的博客 363

Oracle数据库存储结构

Oracle数据库中的块(Block)、区(Extent)、段(Segment)、表空间(Tablespace)和数据文件(Data File)是数据库存储结构的关键组件。它们共同构成了数据库中数据的存储和管理框架。在本文中,我将详细解释每个组件的概念、作用以及它们之间的关系。

专注于数据库技术分享,包含但不限于Oracle,MySQL,PostgreSQL,ElasticSearch及国产数据库等 1220

2.4G/4G天线共存方案:Air8101多频段隔离设计实战(附波长计算表)

本文深入探讨了物联网设备中Wi-Fi 2.4GHz与4G LTE天线共存设计的实战方案。针对B40与2.4G频段紧邻带来的干扰挑战,文章系统性地提出了空间隔离、PCB布局优化、结构设计三重防线,并提供了关键的波长计算工具与系统级验证Checklist,旨在帮助工程师将多频段隔离设计从“玄学”变为可执行的工程规范。

weixin_29197051的博客 388

Ubuntu+Dify实战:如何让大模型知识库完美支持图片召回(附避坑指南)

本文详细介绍了在Ubuntu系统上部署Dify平台,并实现大模型知识库图片召回功能的完整实战方案。通过解析Dify处理图片的底层逻辑,重点讲解了配置Nginx代理服务器将本地图片路径转换为可公开访问URL的核心工程步骤,并提供了文档预处理、环境变量配置以及父子分段策略等高级技巧,帮助开发者构建图文并茂的AI应用,有效提升知识库的丰富性和用户体验。

c7d8e的博客 445

oracle存储结构-----逻辑存储结构(表空间、段、区、块)

当表中数据量增大时,数据段的大小自然也随着变大,数据段的增大过程是通过向其添加新的数据区来实现的。查询等操作时,Oracle可能会使用一些临时存储空间,用于暂时性地保存解析过的查询语句以及在排序过程中产生的临时数据,Oracle系统将在专门用于存储临时数据的表空间中为操作分配临时段。3、··段(多个段组成表空间):数据段(保存表记录)、索引段(保存索引数目)、临时段(临时数据)、回滚段(回滚数据)一个段只属于一个特定的数据对象,每当创建一个具有独立段的数据对象时,Oracle将为它创建一个段。

睡不醒的每天 1592

基于MATLAB的脑功能网络工具箱:BCT与FCLab

脑功能网络分析是神经科学领域的一个重要研究方向,它通过分析大脑中神经元之间的连接模式和信息传递方式,揭示脑网络的结构和功能。在这个领域,MATLAB是一个广泛使用的工具,提供了丰富的函数和工具箱来进行脑功能网络的分析和可视化。这些工具箱提供了丰富的函数和工具,使得脑功能网络的计算和分析变得更加简单和高效。在上述示例代码中,我们首先导入BCT工具箱,并构建一个邻接矩阵来表示脑网络的连接关系。在上述示例代码中,我们首先导入FCLab工具箱,并导入脑功能数据。函数对数据进行预处理,如去除噪声、降采样等操作。

web_bug407的博客 2607

Oracle体系结构之逻辑存储结构(表->段->区->块)

Oracle数据库逻辑存储结构采用层级嵌套设计,包含表空间、段、区和块四个层级。表空间作为最高层级,用于隔离逻辑对象、控制磁盘分配和实现空间配额;段是表的存储形式,分为数据段、索引段等类型;区作为空间分配单位,由连续数据块组成;块是最小I/O单元,默认8KB。这种结构实现了逻辑与物理存储的分离,用户无需关心数据物理位置。文章详细介绍了各层级的定义、作用、类型和管理方式,包括表空间的创建语法、段的自动分配机制、区的空间管理原理以及块的结构组成,全面解析了Oracle数据库的存储架构。

qq_57492774的博客 491

100 道大数据开发技术原理与实战面试宝典(必过答案详细解析)I

在数字化浪潮席卷全球的今天,大数据开发工程师已成为企业数字化转型的核心力量。无论是互联网巨头的用户行为分析,还是金融机构的风险控制,亦或是智慧城市的数据中枢,都离不开大数据技术的支撑。然而,面对BAT等头部企业严格的面试要求,候选人不仅需要掌握扎实的理论基础,更需具备将技术落地的实战能力。本文基于历年高频面试题与企业真实场景需求,梳理100道必考题目,涵盖基础概念、框架原理、算法设计、性能优化等核心领域,助你构建完整的知识体系,从容应对面试挑战。

AI天才研究院 1384

【Claude Code】Not logged in 未登录错误解决方案 + /login 认证路径

Claude Code 启动时提示 Not logged in 表示当前会话缺少有效凭证。本文从环境变量、API Key 配置、CI 自动化凭证脚本和系统时钟四个维度,提供完整的认证排查流程与修复方案。

多媒体编程、网络编程、系统编程、网络安全编程、驱动编程 891

Oracle数据库逻辑结构

逻辑上:8K数据块——>区——>段——>表空间——>数据库(多对一) 1.block 数据块 oracle数据库将数据存储在Block 数据块,⼀个数据块对应于磁盘上物理数据库空间的特定字节数。(默认8KB) 标准块大小由DB_BLOCK_SIZE初始化参数指定 查看初始化参数: 【show parameter 参数】 数据块(8K)大小应该是操作系统块(2K)大小的倍...

weixin_44807657的博客 1851

YOLOv5源码逐行超详细注释与解读(5)——配置文件yolov5s.yaml

全网最详细的YOLOv5源码解读之配置文件yaml。逐行注释,逐句讲解,一文带你了解yaml。小白必看!

路人贾的博客 1万+

oracle--SYSTEM表空间不足问题

杂症二、SYSTEM表空间不足报错 一、杂症: PLSQL登录,报错: ORA-00604: 递归 SQL 层出现错误 ORA-01653: 表.无法通过(在表空间中)扩展 ORA-02002: 写入审记线索时出错 二、病理: 1、表空间不足 2、数据库的审计功能已经开启引起(SYS.AUD$表) 三、病因定位: 先连接上数据库: # su oracle # sqlpl...

La victoria的博客 873

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

oracle问题之SYSTEM表空间不足 (二)

杂症二、SYSTEM表空间不足报错 一、杂症: PLSQL登录,报错: ORA-00604: 递归 SQL 层 出现错误 ORA-01653: 表.无法通过(在表空间中)扩展 ORA-02002: 写入审记线索时出错 二、病理: 1、表空间不足 2、数据库的审计功能已经开启引起(SYS.AUD$表) 三、病因定位: 先连接上数据库: # su orac...

小时候挺菜的博客 388

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

oracle dba 命令解析,Oracle DBA常用命令总结

Oracle DBA常用命令总结//创建临时表空间create temporary tablespace zfmi_temptempfile 'D:\oracle\oradata\zfmi\zfmi_temp.dbf'size 32mautoextend onnext 32m maxsize 2048mextent management local;//tempfile参数必须有//创建数据表空间...

weixin_39527768的博客 282

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

RMAN恢复之后, Oracle Lob 1578坏块问题

在任何平台的Oracle版本上(from 8i to 11g),Oracle Server - Enterprise Edition - Version: 8.1.7.0 to 11.1.0.7Oracle Server - S...

cobraqing7177的博客 316

oracle 数据块解析,Oracle 数据块(data block)的构造和解析

Oracle 数据块(data block)的结构和解析First of all let’s create a new tablespace and a table:SQL> create tablespace my_tbs datafile '/u01/oradata/chenlin/my_tbs.dbf' size 200m ;Tablespace created.then:SQL&gt...

weixin_34137550的博客 769

oracle错误及解决方法

1、ORA-12541:TNS:没有监听器 原因:没有启动监听器或者监听器损坏。如果是前者,使用命令net start OracleOraHome81TNSListener(名字可能有出入)即可;如果是后者,则使用“Net8 Configuration Assistant”工具向导之“监听程序配置”增加一个监听器即可(基本不用写任何信息,一路OK。在添加之前可能需要把所有的监听器先删除!)    2、ORA-12500:TNS:监听程序无法启动专用服务器进程 或 ORA-12560:TNS:协议适配器错误

DoubleJing的博客 644

简单了解数据在Oracle文件中的存储

2010-02-13 目的: 1、 了解数据块转储 2、 简单认证数据在ORACLE文件的存储 测试环境: VM+Win2003+Oracle11g DB_BLOCK_SIZE 8k C:\Documents and Settings\Administrator>sqlplus /nolog SQL*Plus: Release...

352

Oracle 数据块(data block)的结构和解析

 First of all let’s create a new tablespace and a table: SQL&gt; create tablespace my_tbs datafile '/u01/oradata/chenlin/my_tbs.dbf' size 200m ;  Tablespace created.  then: SQL&gt; create table my...

chenlin5188的专栏 713

imp oracle 导出数据表,imp导出表数据库

Oracle数据导入导出imp/exp(转)在oracle安装目录下有EXP.EXE与IMP.EXE这2个文件,他们分别被用来执行数据库的导入导出。所以Oracle数据导入导出imp/exp就相当与oracle数据还原与备份。一、Oracle数据导出exp1、Exp参数详解(红色字体代表比较重要的参数):(1) US...文章developerguy2014-11-071252浏览量Oracle ...

weixin_34512248的博客 759

053试题 81/249 - dba_temp_free_space

题目: 81.Evaluate the following command and its output: SQL>SELECT * FROM dba_temp_free_space; TABLESPACE_NAME TABLESPACE_SIZE ALLOCATED_SPACE FREE_SPACE LMTEMP 250609664 101048576 149561088 Which t...

文档搬运工 568

Oracle索引内部结构研究

1. 创建一个块大小为2KB的表空间如下所示 create tablespace tbs_2k datafile 'C:\APP\ADMINISTRATOR\ORADATA\HXL11G\hxl01.DBF' size 128m blocksize 2k;如果报错执行如下语句: alter system set db_2k_cache_size=50 scope=both; 2.

liwenshui322的专栏 1545

oracle实例对应的文件夹,oracle安装目录的各文件夹

关于一些文件的说明:1、C:\oracle\ora92\network\admin\listener.ora监听程序配置文件,所有的监听信息都存放在该文件中。2、C:\oracle\admin\数据库SID名\pfile\init.ora数据库的初始化参数文件,在数据库启动时,将首先从初始化文件中读取数据配置信息,没有它数据库无法启动。3、跟踪文件,记录了用户进程、后台进程、核心转储等信息,可以供...

weixin_39609953的博客 1995

oracle 体系结构解析

三、oracle 体系结构 1、oracle内存由SGA+PGA所构成 2、oracle数据库体系结构数据库的体系结构是指数据库的组成、工作过程与原理,以及数据在数据库中的组织与管理机制。 oracle工作原理: 1)、在数据库服务器上启动Oracle实例;2)、应用程序在客户端的用户进程中运行,启用Oracle网络服务驱动器与服务器建立连接;3)、服务器运行Ora...

weixin_30580341的博客 73
上一篇: 80-Oracle 19c PDB dmp数据泵导入-实操
下一篇: 82-Oracle HWM(高水位线)降低水位线-回收
远方1609
博客等级 码龄22年 576粉丝 121原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值