在 Oracle 23c 中,数据库表或视图中允许的最大列数已增加到 4096。此功能允许您构建可以在单个表中存储超过之前 1000 列限制的属性的应用程序。...某些应用程序(例如机器学习和流式 IoT 应用程序工作负载)可能需要使用包含超过 1000 列的非规范化表。 您现在可以在单行中存储大量属性,这对于某些应用程序来说可以简化应用程序设计和实现。...这与 Oracle Database 23c 之前版本中的行为相匹配。 可以随时将 MAX_COLUMNS 的值从 STANDARD 更改为 EXTENDED。...但是,仅当数据库中的所有表和视图包含 1000 或更少的列时,才可以将 MAX_COLUMNS 的值从 EXTENDED 更改为 STANDARD。...较旧的客户端版本(Oracle Database 23c 之前的版本)不支持增加的列限制,并且无法访问表或视图中超过 1000 列。 此参数从 Oracle Database 23c 开始可用。
Oracle数据库中自带的4张表: dept、emp、bonus和salgrade是练习SQL查询的经典案例表,本文提供在MySQL中建这4张表的SQL语句 1....创建dept表 CREATE TABLE `dept`( `deptno` INT(2) NOT NULL, `dname` VARCHAR(14), `loc` VARCHAR...创建emp表 CREATE TABLE `emp` ( `empno` int(4) NOT NULL PRIMARY KEY, `ename` VARCHAR(10), `...创建bonus表 CREATE TABLE `bonus`( `ename` VARCHAR(10), `job` VARCHAR(9), `sal` INT, `comm...创建salgrade表 CREATE TABLE `salgrade` ( `grade` int, `losal` int, `hisal` int ) ENGINE
目部分 在Oracle中,什么是DUAL表?...答案部分 有关Oracle的DUAL表,需要掌握以下几点内容: ① 系统提供的一个DUMMY表,临时显示结果的表,里边的内容没有特定的意义,就是为了存在而存在。...FROM DBA_OBJECTS D WHERE D.OBJECT_NAME='DUAL'; ③ Oracle对DUAL表的操作做了一些内部处理,尽量保证DUAL表中只返回一条记录。...⑤ DUAL在数据库OPEN状态下是一行一列的表,但是在MOUNT和NOMOUNT状态下是一行四列的表。 ⑥ DUAL的常用方式如下所示: a....& 说明: 有关DUAL表破坏后的恢复可以参考我的BLOG:http://blog.itpub.net/26736162/viewspace-2123291 本文选自《Oracle程序员面试笔试宝典》,
♣ 题目部分 在Oracle中,什么是外部表? ♣ 答案部分 外部表是指不存在于数据库中的表。...通过向Oracle提供描述外部表的元数据,可以把一个操作系统文件当成一个只读的数据库表,就像这些数据存储在一个普通数据库表中一样来进行访问。外部表是对数据库表的延伸。...ORACLE_LOADER访问驱动程序只能用于读取外部表中的表数据并将其载入数据库。它使用文本文件作为数据源。ORACLE_LOADER访问驱动程序使用SQL*Loader语法来定义外部表。...ORACLE_DATAPUMP访问驱动程序既可以将表数据从外部文件载入数据库中,也可以将数据从数据库卸载到外部文件中。它使用二进制文件作为外部文件。...操作系统文件在数据库中的标志是通过一个逻辑目录来映射的,所以外部表需要在Oracle数据库“服务端”创建目录,这些OS文件必须放在这些目录中。
♣ 题目部分 在Oracle中,表可以分为哪几类? ♣ 答案部分 从理论上来讲,不存在一种能够满足所有读取要求的数据存储方式,所以,Oracle设计了大约6种数据的存储格式,详见下表: ?...从上表中可以看出,没有最好的技术,只有最合适的技术。...& 说明: 有关这几种表类型的更多内容介绍可以参考我的BLOG:http://blog.itpub.net/26736162/viewspace-2140734/ 本文选自《Oracle程序员面试笔试宝典
♣ 题目部分 在Oracle中,OGG-00446 Could not find archived log for sequence错误的处理办法是什么?...OGG-00446主要是归档文件丢失引起,处理办法就是将缺失的归档日志找回来。...如果找不到所需归档日志,那么可以按照如下2种办法来处理: 第一种办法是改变抽取进程的时间,但这可能会导致数据不一致,执行方法如下: GGSCI (HP-HP) 1> alter extract extl...,begin now 第二种办法:重新初始化,重新初始化过程如下: 源库查询到当前的SCN: SQL> COL CURRENT_SCN FORMAT 999999999999999 SQL> SELECT...aftercsn 12242466771468 & 说明: 有关详细的解决过程可以参考我的BLOG:http://blog.itpub.net/26736162/viewspace-1982701/ 本文选自《Oracle
② 该语句只能是在相关数据文件ONLINE的时候才可以使用。...“DROP TABLE XXX;”的情况下,再使用“PURGE TABLE "XXX表在回收站中的名称";”来删除回收站中的该表,否则空间还是不释放,数据文件仍然不能DROP。...数据文件的相关信息还会存在数据字典和控制文件中。 对于归档模式而言,“OFFLINE FOR DROP”和“OFFLINE”没有什么区别,因为Oracle会忽略FOR DROP选项。...oracle/app/oracle/product/11.2.0/db/dbs/+DATAA'; ---->无法识别数据文件 SQL>alter database datafile 11 offline...数据文件中含有数据的处理办法 如果数据文件中有数据,需要先迁移,重建索引。
♣ 题目部分 在Oracle中,数据迁移之可传输表空间(Transportable Tablespaces)是什么? ♣ 答案部分 数据迁移也是面试官经常性问的一些问题。...最常见的问题是:异构平台迁移有哪些常用的办法?若异构平台迁移可以考虑exp/imp、expdp/impdp、可传输表空间、OGG等,Oracle 11gR2也支持了部分异构平台的数据库。...在执行可传输表空间之前,需要注意以下几点内容: ① 源库和目标库的字符集和国家字符集必须相同。 ② 要传输的表空间不能与目标服务器现有表空间名称重复。...③ 有关联关系的对象(例如物化视图)或包含对象(例如表分区)一般情况下不能被传送,除非所有的关联对象都在表空间集(tablespace set)中。...从Oracle 10g开始,无论目标库运行在相同或不同的平台,利用传输表空间都可以将一个表空间传输到相同或更高版本的Oracle库。但是,如果目标库的版本比源库低的话,那么就不能利用可传输表空间了。
♣ 题目部分 在Oracle中,什么是闪回表(Flashback TABLE)? ♣ 答案部分 闪回表(Flashback TABLE)是将表恢复到过去的某个时间点或某个SCN值时的状态。...LHR; A B ---------- ---------- 1 1 2 2 下面是验证索引在FLASHBACK...TABLE TO SCN中的情况: LHR@orclasm > DROP TABLE T_FT_20170617_LHR; Table dropped....LHR@orclasm > SELECT DBMS_FLASHBACK.GET_SYSTEM_CHANGE_NUMBER FROM DUAL;---该SCN表中存在索引 GET_SYSTEM_CHANGE_NUMBER...STATUS FROM USER_INDEXES WHERE TABLE_NAME='T_FT_20170617_LHR'; no rows selected LHR@orclasm > 本文选自《Oracle
♣ 题目部分 在Oracle中,表和表之间的关联方式有哪几种?...,在Oracle 6版本的时候就已经提供,一般情况下,尽量避免使用。...在嵌套循环连接中,Oracle读取驱动表(外部表)中的每一行,然后在被驱动表(内部表)中检查是否有匹配的行,所有被匹配的行都被放到结果集中,然后处理驱动表中的下一行。...这种连接是在Oracle 7.3引入的,从理论上来说比NL与SMJ更高效,而且只用在CBO(Cost Based Optimization,基于代价的优化器)优化器中。...这个阶段中如果被驱动表的连接列的值没有与驱动表连接列的值相等的话,那么这些记录将会被丢弃而不进行探测。 这种方式适用于较小的表完全可以放于内存中的情况,这样总成本就是访问两个表的成本之和。
♣ 题目部分 在Oracle中,表的访问方式有哪几种?...通常应该避免全表扫描,但是在检索大量数据时全表扫描优于索引扫描,这正是因为全表扫描可以在一次I/O中读取多个块,从而减少了I/O的次数。在使用全表扫描的同时也可以使用并行来提高扫描的速度。...全表扫描的Hint为:FULL(T)。 CBO优化器在以下几种情况下会选择全表扫描: ① 无合适的索引。 ② 检索表中绝大多数的数据。 ③ 表非常小。...(二)索引扫描(INDEX SCAN) 索引不仅包含被索引的字段值,还包含行的位置标识ROWID,如果SQL语句只检索索引字段,那么Oracle将直接从索引中读取而不需要通过ROWID去访问表;如果SQL...语句通过索引检索其它字段值,那么Oracle通过索引获得ROWID再回表读就可以迅速找到需要的内容。
在Oracle数据库中查询所有触发器、存储过程、视图、表 方法一: Select object_name From user_objects Where object_type='TRIGGER'; ...Where object_type='VIEW'; --所有视图 Select object_name From user_objects Where object_type='TABLE'; --所有表...Select * From user_procedures; --所有存储过程 Select * From user_views; --所有视图 Select * From user_tables; --所有表
♣ 题目部分 在Oracle中,如何查询表和索引的历史统计信息?...♣ 答案部分 从Oracle 10g开始,当收集表的统计信息的时候,旧的统计数据被保留,如果因为新的统计信息而出现性能问题,旧的统计信息就可以被恢复。...历史统计信息保存在以下几张表中: l WRI$_OPTSTAT_TAB_HISTORY 表的统计信息 l WRI$_OPTSTAT_IND_HISTORY 索引的统计信息 l WRI$_OPTSTAT_HISTHEAD_HISTORY...默认情况下统计信息将被保留31天,可以使用下面的命令修改: EXECUTE DBMS_STATS.ALTER_STATS_HISTORY_RETENTION (XX); --xx是保留的天数 注意:这些统计信息在SYSAUX...表空间中占有额外的存储开销,所以应该注意并防止统计信息将表空间填满。
♣ 题目部分 【DB笔试面试829】在Oracle中,如何迁移或清理审计表SYS.AUD$?...♣ 答案部分 在日常的数据库维护中,经常出现SYSTEM表空间被撑满,在绝大多数情况下是因为数据库登录审计的功能被启动了,此时一般建议把SYS.AUD$相关对象迁移到其它表空间,从而避免SYSTEM被用完的风险...在Oracle 11g之前迁移方法如下所示: ALTER TABLE SYS.AUDIT$ MOVE TABLESPACE USERS; ALTER TABLE SYS.AUDIT_ACTIONS MOVE...AUDIT_TRAIL_LOCATION_VALUE => 'USERS'); 如下示例为授予审计的一些权限: GRANT AUDIT ANY TO LHR_TEST; GRANT AUDIT SYSTEM TO LHR_TEST; 在Oracle...若审计在OS和XML选项下进行手动删除审计文件。在Oracle 11g中通过DBMS_AUDIT_MGMT包下的子过程进行手动或定期清理。
♣ 题目部分 在Oracle中,TSPITR(表空间基于时间点恢复)是什么?...通过执行TSPITR可将一个或多个表空间快速恢复到以前的某个时间。执行TSPITR不会影响数据库中其它表空间或对象的状态。...注意,辅助数据库的所有物理文件都是从主数据库备份中取得,并且辅助数据库必须包含SYSTEM表空间、Undo表空间以及恢复集表空间的备份文件。...在Oracle 11gR2之前,TSPITR使用导出和导入进行处理,而现在使用可移动表空间和数据泵。由于底层技术的这一变化,现在可使用TSPITR来恢复已删除的表空间。...本文选自《Oracle程序员面试笔试宝典》,作者:小麦苗 ?
♣ 题目部分 在Oracle中,怎样收集表的统计信息?怎样收集分区表的统计信息?...DBMS_STATS.GATHER_TABLE_STATS包进行统计信息的收集,如下所示: DBMS_STATS.GATHER_TABLE_STATS(USER,'TB_NAME',CASCADE=>TRUE);--普通表...,如果每次都收集全部的分区必然会导致统计信息的收集非常慢,在Oracle 11g之后可以通过设置INCREMENTAL来只针对数据有变动的分区做收集: EXEC DBMS_STATS.SET_TABLE_PREFS...','TRUE');--只收集数据变动的分区 SELECT DBMS_STATS.GET_PREFS('INCREMENTAL',NULL,'TABLE_NAME') FROM DUAL;--查看分区表INCREMENTAL...的值 本文选自《Oracle程序员面试笔试宝典》,作者:小麦苗
♣ 题目部分 在Oracle中,什么是临时表?它有哪些分类?有关临时表需要注意什么?...当然,在Oracle中创建分区是一种不错的选择,但是当发现应用有多张表关联的时候,并且这些表大部分都比较庞大,而关联的时候发现其中的某一张或者某几张表关联之后得到的结果集非常小,并且查询得到这个结果集的速度非常快...,那么这个时候考虑在Oracle中创建“临时表”。...相对应的,在Oracle数据库中,还有一种类型的表,叫做临时表。这个临时表跟永久表最大的区别就是表中的数据不会永远地存在。...共10行数据),而T_CGTT_20170619_LHR是大表(共100000行数据),处于被驱动的位置,是正确的,而且在执行中,Oracle对大表使用了动态采样。
♣ 题目部分 在Oracle中,什么是用户的表空间配额(User tablespace Quota)? ♣ 答案部分 用户的表空间配额也叫表空间限额,指的是用户可以使用指定表空间的最大大小。...表空间配额可以在创建用户的时候指定,也可以在创建用户后再修改用户的配额。...,所以,在回收DBA角色时需特别注意。...③ 目标用户必须不能含有UNLIMITED TABLESPACE的系统权限,否则空间配额对用户的设置无效,也就会出现在DBA_TS_QUOTAS中的BYTES大于MAX_BYTES的情况。...BLOG:http://blog.itpub.net/26736162/viewspace-2140868/ 本文选自《Oracle程序员面试笔试宝典》,作者:李华荣。
♣ 题目部分 在Oracle中,基表COL_USAGE$的作用是什么?...♣ 答案部分 从Oracle 9i开始引入了SYS.COL_USAGE$表用来跟踪列的使用情况,该功能通过隐含参数“_COLUMN_TRACKING_LEVEL”来控制。...缺省情况下,该功能是生效的,并且CBO负责将SQL语句中WHERE条件的查询谓词信息保存在该表中,数据库在执行SHUTDOWN NORMAL或者SHUTDOWN IMMEDIATE会自动将该表中的数据清空...SYS.COL_USAGE$表中。...本文选自《Oracle程序员面试笔试宝典》,作者:小麦苗
题目部分 在Oracle中,什么是高水位?如何回收表的高水位? 答案部分 Oracle数据库通过跟踪段中的块状态来管理空间。...在MSSM中,当数据插入以后,如果是插入到新的数据块中,那么数据块就会被自动格式化等待数据访问;而在ASSM中,数据插入到新的数据块以后,数据块并没有被格式化,而是在第一次访问这个数据块的时候才格式化这个块...在一个ASSM段中的每个数据块处于以下状态之一: ① 在HWM之上,这些块是未分配、未格式化的,且从未使用过。...释放表的高水位通常有如下几种办法: (1)对表进行MOVE操作:ALTER TABLE TABLE_NAME MOVE;。若表上存在索引,则记得重建索引。...(4)exp/imp或expdp/impdp重构表。 (5)若表中没有数据则直接使用TRUNCATE来释放高水位。 如何找出系统中哪些表拥有高水位呢?这里给出两种办法,①比较表的行数和表的大小关系。
领取专属 10元无门槛券
手把手带您无忧上云