
oracle table index
数据库人生
专注于数据库
PostgreSQL;Oracle 11G OCA、OCP;OceanBase V2 OBCA、OBCP
展开
-
oracle 数据库 clob 字段创建索引
使用 CONTAINS 检索数据。原创 2023-10-19 19:55:05 · 986 阅读 · 0 评论 -
oracle 19c 在大部分数据为 null 的列上创建索引
os: centos 7.6db: oracle 19c版本# cat /etc/centos-releaseCentOS Linux release 7.6.1810 (Core) # # su - oracle$ sqlplus as sysdba;SQL*Plus: Release 19.0.0.0.0 - Production on Tue Jan 18 17:40:38 2022Version 19.3.0.0.0Copyright (c) 1982, 2019, Orac原创 2022-01-18 18:03:56 · 940 阅读 · 0 评论 -
oracle 数据库修改列类型
创建基本表create table tmp_clob_col( id number(20) not null, name1 varchar(100), name2 clob);alter table scott2.tmp_clob_col add constraint pk_tmp_clob_col primary key (id) using index;列无值直接修改alter table tmp_clob_col modify (name2 varchar2(200))原创 2021-01-26 21:53:37 · 1023 阅读 · 0 评论 -
oracle 数据库创建表的主键
建表时创建方法一create table tmp_t10( c0 varchar2(100) not null primary key, c1 varchar2(100));方法二create table tmp_t10( c0 varchar2(100), c1 varchar2(100));-- Create/Recreate primary, unique and foreign key constraints alter table tmp_t10原创 2020-12-01 14:19:40 · 3294 阅读 · 0 评论 -
oracle 行迁移和行链接
https://www.cnblogs.com/Richardzhu/p/3449243.html这篇 blog 讲的还是很清楚,转载一下。行迁移当一个行上的更新操作(原来的数据存在且没有减少)导致当前的数据不能在容纳在当前块,我们需要进行行迁移。一个行迁移意味着整行数据将会移动,仅仅保留的是一个转移地址。因此整行数据都被移动,原始的数据块上仅仅保留的是指向新块的一个地址信息。成因:当行被update时,如果update更新的行大于数据块的pctfree值,就需要申请第2个块,从而形成迁移。后转载 2020-10-10 09:33:26 · 217 阅读 · 0 评论 -
oracle 11.2.0.4 add column、drop column 的实验
create tableSQL> create table tmp_t0( id integer, name varchar2(100), memo varchar2(100));SQL> insert into tmp_t0select level, sys_guid() as name, sys_guid() as memofrom dualconnect by level <=1000000;SQL> 插原创 2020-09-18 15:51:32 · 644 阅读 · 0 评论 -
oracle 数据库 unused column
db: oracle 11.2.0.4set unused columnalter table tmp_t0 set unused column a;drop unused columnsalter table tmp_t0 drop unused columns ;参考:https://docs.oracle.com/cd/E11882_01/server.112/e25494/tables.htm#ADMIN11663原创 2020-09-18 09:37:28 · 1031 阅读 · 0 评论 -
oracle 数据库伪列 ORA_ROWSCN 的介绍
ORA_ROWSCN 用来记录每一行数据最后修改时的SCN号,当应用使用乐观锁时,可以使用这列来控制版本。创建表时默认是 NOROWDEPENDENCIES,查询时显示的是该行所在的block 上最后一次修改的SCN,创建表时设置为 ROWDEPENDENCIES 时,每一行都有自己的 SCN。需要注意的是ROWDEPENDENCIES属性只有在创建表时使用才有效,对于已有的表,通过alter table 语句是无效的,因此需通过重建表的方式来解决。create table NOROWDEPENDE原创 2020-09-04 09:21:02 · 1887 阅读 · 0 评论 -
oracle 数据库 单条记录,单个表,单个数据库的最大限制是多少
What Is The Maximum Tablespace Size And Database Limit For An Oracle Database ? (Doc ID 1372905.1)What is the maximum value for the following in Oracle 10g and 11g :database sizetablespace sizefile sizesmall file databaseFor a small file database, th原创 2020-08-03 19:23:22 · 1457 阅读 · 0 评论 -
oracle 数据库 long 类型转换为 varchar 类型
all_tab_columns.data_default 的类型为 long,查看时不太方便,需要做个转换。CREATE OR REPLACE FUNCTION ALL_TAB_COLUMNS_DATA_DEFAULT( in_owner varchar2, in_table_name varchar2, in_column varchar2)RETURN...原创 2020-04-14 09:59:05 · 3951 阅读 · 0 评论 -
oracle varchar2(n) 与 postgresql varchar(n) 的区别
os: centos 7.4db: postgresql 11.5db: oracle 11.2.0.4192.168.56.110 mas192.168.56.111 sla1192.168.56.112 sla2oracle varchar2(n) 表示 n 个字节postgresql varchar(n) 表示 n 个字符版本# cat /etc/centos-r...原创 2020-04-08 21:41:33 · 3678 阅读 · 0 评论 -
oracle 数据库 lob 字段之 clob 存储
os: centos 7.4db: oracle 11.2.0.4版本# cat /etc/centos-releaseCentOS Linux release 7.4.1708 (Core) # # su - oracleLast login: Tue Jan 21 03:40:05 CST 2020 on pts/0$ sqlplus / as sysdba;SQL*Plu...原创 2020-03-02 12:49:53 · 1329 阅读 · 0 评论 -
oracle 数据库 enq: TX - index contention 的对象查找
os: centos 7.4db: oracle 11.2.0.4版本# cat /etc/centos-releaseCentOS Linux release 7.4.1708 (Core) # # su - oracleLast login: Tue Jan 21 03:40:05 CST 2020 on pts/0$ sqlplus / as sysdba;SQL*Plu...原创 2020-02-25 22:05:06 · 810 阅读 · 0 评论 -
oracle 数据库 index monitoring
os: centos 7.4db: oracle 11.2.0.4monitorSQL> alter index <index_name> monitoring usage;SQL> select * from v$object_usage;nomonitorSQL> alter index <index_name> nomonitori...原创 2020-02-25 10:10:03 · 578 阅读 · 0 评论 -
oracle 数据库执行 alter table rename to 后表及索引的统计信息变化
os: centos 7.4db: oracle 11.2.0.4版本# cat /etc/centos-releaseCentOS Linux release 7.4.1708 (Core) # # su - oracleLast login: Tue Jan 21 03:40:05 CST 2020 on pts/0$ sqlplus / as sysdba;SQL*Plu...原创 2020-02-24 15:42:23 · 5047 阅读 · 0 评论 -
oracle 分区表的统计信息采集
os: centos 7.4db: oracle 11.2.0.4版本# cat /etc/centos-releaseCentOS Linux release 7.4.1708 (Core) # # su - oracleLast login: Tue Jan 21 03:40:05 CST 2020 on pts/0$ sqlplus / as sysdba;SQL*Plu...原创 2020-02-20 16:26:32 · 2687 阅读 · 0 评论 -
oracle 数据库聚簇表(cluster) 之二 hash cluster
os: centos 7.4db: oracle 11.2.0.4oracle数据表三种基本类型:Heap Table、IOT、Cluster。名称分别为 堆表、索引组织表、聚簇表。通常情况下,堆表是我们的首选项,也是 create table 时的默认选项。IOT是一种融合数据到索引结构上的数据表类型(另外几篇blog 有介绍)。聚簇表是最不常用的表类型,cluster 是一种独特的段...原创 2020-02-08 15:52:21 · 1212 阅读 · 0 评论 -
oracle 数据库聚簇表(cluster) 之一 index cluster
os: centos 7.4db: oracle 11.2.0.4oracle数据表三种基本类型:Heap Table、IOT、Cluster。名称分别为 堆表、索引组织表、聚簇表。通常情况下,堆表是我们的首选项,也是 create table 时的默认选项。IOT是一种融合数据到索引结构上的数据表类型(另外几篇blog 有介绍)。聚簇表是最不常用的表类型,cluster 是一种独特的段...原创 2020-02-08 13:56:22 · 2398 阅读 · 0 评论 -
oracle 数据库 iot 之二 overflow
os: centos 7.4db: oracle 11.2.0.4默认情况下,索引组织表所有非键列都存储在索引的叶块中。如果行数据非常宽,Btree的条目就可能会变得非常大。这样访问索引中同样多的条目就必须穿越更多的索引块,性能会受到很大影响。把一些非键列值存储在索引组织表的 overflow 中,有助于提高索引组织表的btree索引的整体效率。为索引组织表中行数据添加一个 overflo...原创 2020-02-07 17:32:41 · 1355 阅读 · 0 评论 -
oracle 数据库 iot 之一
os: centos 7.4db: oracle 11.2.0.4索引组织表 IOT 全称是 Index-Organized Tables,访问方式和 oracle 的 heap 表一样,但是物理存储类似 btree 索引。通常情况下,索引组织表的主键是由表中多个列组成。索引组织表的数据是按照主键的顺序存储的,所以必须有主键,另外索引组织表没有数据段,所以没有物理ROWID值。索引组织表...原创 2020-02-07 17:10:06 · 2045 阅读 · 0 评论 -
oracle 数据库 update 语句的初步使用
os: centos 7.4db: oracle 11.2.0.4版本# cat /etc/centos-releaseCentOS Linux release 7.4.1708 (Core) # # su - oracleLast login: Tue Jan 21 03:40:05 CST 2020 on pts/0$ sqlplus / as sysdba;SQL*Plu...原创 2020-02-03 15:40:32 · 1191 阅读 · 0 评论 -
oracle invisible index 的探索
os: centos 7.4db: oracle 11.2.0.4oracle 从 11g 开始提供 invisible index 索引,这对线上系统添加索引引起的性能异常提供了可控的方法。准备表-- drop table tmp_t0 purge;create table tmp_t0asselect *from dba_objectswhere 1=1;inser...原创 2019-12-26 11:30:59 · 660 阅读 · 0 评论 -
oracle initrans 参数
os: centos 7.4db: oracle 11.2.0.4oracle 查看表或者索引时都会看到 initrans 参数,那么这个参数代表什么含义了?INITRANS:INITRANS 指的是一个 BLOCK 上初始预分配给并行交易控制的空间 (ITLs)( 当 BLOCK 上某笔 ROW 被交易更新锁定时,会在 BLOCK header ITL allocate 一个锁,当下一...原创 2019-12-25 09:04:02 · 11130 阅读 · 0 评论 -
oracle 查看含 LOB 字段表的大小、enable storage in row
os: centos 7.4db: oracle 11.2.0.4版本# cat /etc/centos-releaseCentOS Linux release 7.4.1708 (Core) # su - oracle$ sqlplus / as sysdba;SQL*Plus: Release 11.2.0.4.0 Production on Wed Dec 18 18:19...原创 2019-12-18 20:10:29 · 888 阅读 · 0 评论 -
oracle 查看表、视图、列的备注信息
表、视图、列的备注信息一定要做好,这个应该是规范之一。表、视图的备注信息select atc.*, case when atc.table_type='TABLE' then ' comment on table '||atc.owner||'.'||atc.table_name||' is '''';' when atc...原创 2019-11-29 15:30:27 · 1582 阅读 · 1 评论 -
oracle 在线重定义 dbms_redefinition
-- Constants for the options_flag parameter of start_redef_table-- cons_use_pk CONSTANT PLS_INTEGER := 1;-- cons_use_rowid CONSTANT PLS_INTEGER := 2;有主键是最好的,没有主键就需要使用rowidstep 1 验证begin ...原创 2019-11-21 08:43:16 · 567 阅读 · 0 评论 -
oracle table、index 的 parallel 并行度设置
tableselect di.degree,di.*from dba_tables diwhere 1=1and di.table_name='TMP_T0';alter table system.tmp_t0 parallel 2;alter table system.tmp_t0 parallel 1;alter table system.tmp_t0 noparallel...原创 2019-11-19 19:21:14 · 2115 阅读 · 0 评论 -
oracle 执行 truncate table
os: centos 7.4db: oracle 11.2.0.4truncate 一直在使用,但是还有一些选项。常用命令truncate table tmp_t0;默认情况下,该命令会对 data,index,materialized view 都会重新分配空间。需要保留 materialized view 则使用如下命令。truncate table tmp_t0 pres...原创 2019-11-05 10:51:31 · 750 阅读 · 0 评论 -
oracle 调整 hash 分区表时,表上的本地索引、全局索引、全局分区索引需要添加 update global indexes
os: centos 7.4db: oracle 11.2.0.4版本# cat /etc/centos-releaseCentOS Linux release 7.4.1708 (Core)# su - oracleLast login: Tue Oct 8 16:35:50 CST 2019 on pts/0$ sqlplus / as sysdba;SQL> s...原创 2019-11-04 18:57:42 · 1830 阅读 · 0 评论 -
oracle 执行 truncate hash 分区表时,表上的本地索引、全局索引、全局分区索引均可用,无需添加 update global indexes
os: centos 7.4db: oracle 11.2.0.4版本# cat /etc/centos-releaseCentOS Linux release 7.4.1708 (Core)# su - oracleLast login: Tue Oct 8 16:35:50 CST 2019 on pts/0$ sqlplus / as sysdba;SQL> s...原创 2019-11-04 18:29:22 · 1355 阅读 · 0 评论 -
oracle 并行之二: parallel dml
os: centos 7.4db: oracle 12.1.0.2insert,update,delete,merge 的dml操作都可以开启并行,多个会话同时执行,同时每个会话(并发进程)都有自己的undo段,都是独立的一个事务,这些事务要么由pdml协调器进程提交,要么都rollback。在一个有充足I/o带宽的多cpu主机中,对于大规模的dml,速度会有很大的提升,尤其是在大型的数据仓...原创 2019-10-25 18:53:08 · 4553 阅读 · 3 评论 -
oracle 并行之一: parallel query
os: centos 7.4db: oracle 12.1.0.2版本# cat /etc/centos-releaseCentOS Linux release 7.4.1708 (Core) # # cat /proc/cpuinfo |grep -i "processor"processor : 0processor : 1processor : 2processor :...原创 2019-10-25 18:02:14 · 462 阅读 · 0 评论 -
oracle table 碎片化整理及查看函数 show_space
tom 大神写的,有空再翻翻 tom 的书。CREATE OR REPLACE NONEDITIONABLE PROCEDURE show_space ( p_segname_1 IN VARCHAR2, p_type_1 IN VARCHAR2 DEFAULT 'TABLE', p_space IN VARCHAR2 DEFAULT 'M...原创 2019-10-16 17:35:05 · 464 阅读 · 0 评论 -
oracle table 碎片化消除 shrink space
os: centos 7.4db: oracle 12.1.0.2.0版本# cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core)# su - oracle$ sqlplus / as sysdba;SQL*Plus: Release 12.1.0.2.0 Production on Tue Oct 15 14...原创 2019-10-16 16:58:07 · 1122 阅读 · 0 评论 -
oracle 分区之 list-hash 分区及统计信息
db: oracle 12.2.0.1list-hash 分区表create table tmp_part_subpart( c0 number not null , c1 number not null , c2 number not null ) tablespace sysauxpartition by list (c0) subpartition by has...原创 2019-10-12 15:46:20 · 958 阅读 · 0 评论 -
dbms_stat 采集统计信息状态为 stale 的 table、partition table
db: oracle 12.2.0.1declare lv_user varchar(100);begin dbms_stats.flush_database_monitoring_info(); --采集该用户下对象的统计信息 lv_user:='SCOTT'; --非分区表 for c_part in ( ...原创 2019-10-12 15:27:33 · 765 阅读 · 0 评论 -
dbms_stat 采集统计信息
dbms_stat 是oracle database 采集统计信息的集成工具。非常方便和高效。备份创建stat_tablebegin dbms_stats.create_stat_table( ownname =&gt; 'drp', stattab =&gt; 'stat_table' ) ; end;导出整个scheme...原创 2018-04-12 14:21:28 · 909 阅读 · 0 评论 -
oracle 外部表 external table + alert_sid.log
创建 directory– create alert directory select * from dba_directories dd where 1=1 and dd.directory_name=’ALERT_DIR’ ;create or replace directory alert_dir as ‘/oracle/admin/orcl/bdump’alert_dir 需要根原创 2017-08-29 12:34:25 · 420 阅读 · 0 评论 -
oracle 分区之 interval range 分区
os: centos 7.6db: oracle 19.3表分区是 oracle database 一个非常强大的功能. oracle 官方建议应该对 2G 以上的表做分区.先介绍下强大的 interval 分区,使用 interval 分区时只需初始化少量的分区,后期插入数据时会自动创建分区.按年分区 numtoyminterval(1, ‘year’)-- drop table tm...原创 2019-07-12 17:16:28 · 5249 阅读 · 5 评论