首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

走起,带你操纵数据

ORACLE ——带你操纵数据 本文讲述是基于Oracle Linux 5 update 2下 Oracle 11g 数据库数据操纵语言(DML),Linux系统是由VMWare虚拟机创建,可以查看本公众号历史文章进行学习...创建数据库对象 /*要求: 具备建权限,拥有充足空间,指明名称,字段名称,字段类型,字段大小 */ create table tablename (columnname datatype [,......更改数据库对象 /*要求: 具备更改权限,可以用来修改属性:名、、数据类型、长度等和表相关内容; 也可以修改状态,如只读状态或可读可写状态。...增加操作 /*说明: 使用insert语句在添加新数据,每次只能一条哦; 日期型数据和字符型数据应该包含在单引号 */ insert into tablename (column [,...])...更新操作 /*说明: 使用update语句更新数据,可以一次更新多条数据; 使用where子句可以指定需要更新数据,如果省略where子句,则数据都将被更新

33610

深入解析:Oracle11g而始数据库一致读行为改变

但从Oracle 11g开始,Oracle更改了在某些特定条件一致读行为,这使得一些看起来不合常理行为在Oracle 11g以及后续版本得以出现,即在Oracle 11g以及后续版本,当满足一定条件时...60秒缓冲时间内将EMPempno=7369记录所对应ename“SMITH”改为“CUIHUA”并commit,这样通过观察Session 1存储过程p_demo_cr_read_change...我们现在去Session 2EMPempno=7369记录所对应ename恢复成原先“SMITH”并且在empno上创建一个名为idx_emp_empno非唯一性索引: Session...我们现在去Session 2EMPempno=7369记录所对应ename恢复成原先“SMITH”并且在empno上创建一个名为idx_uk_emp_empno唯一性索引: Session...——————– ——————– _row_cr TRUE 如下查询结果我们可以看到,EMP13条记录全部在datafile 4,block 151这个数据块: SQL> select empno

842100
您找到你想要的搜索结果了吗?
是的
没有找到

PostgreSQL技术大讲堂 - 第24讲:TOAST技术

PostgreSQL从小白到专家,是入门逐渐能力提升一个系列教程,内容包括对PG基础认知、包括安装使用、包括角色权限、包括维护管理、、等内容,希望对热爱PG、学习PG同学们有帮助,欢迎持续关注...建时自动创建Toast --创建 create table toast_t(id int,vname varchar(48),remark text); --其中remak数据类型是text,长度超过...bytes · Toast计算案例(五) --查看各数据变化,说明在尺寸超过2k时候就会把数据存放到toast: testdb=# select pg_column_size(id),...数据没有被更新时,不用去更新Toast Toast缺点 1.对大字段索引创建是一个问题,有可能会失败,通常不建议在大字段上创建,全文检索是一个解决方案 2.大字段更新会有点慢,其它DB也存在相同问题...Oracle大对象段存储特点 11g版本推出了针对 LOB字段处理新技术:SecureFiles 该技术在性能、可管理性、易用性等方面,具有如下具体特点和优势: · 提供数据去重、压缩和透明加密功能

24420

Oracle 分区 FOR 语句,你这样用过吗?

11g以后,Oracle简化了指定分区方式,不再需要明确指定分区名称,而是可以通过指定分区键值数据方式来指向对应分区。 指定一个分区除了使用分区名称外,很多时候还可以使用FOR语句。...11g开始,对分区进行操作时候,不仅可以使用分区名称,还可以使用FOR语句。 在10g,MERGE RANGE分区语句如下: 创建。...而在11g,除了使用分区名称外,还可以使用FOR语句来代替,比如: 创建。 这种语法优势对于范围分区还不是很明显,而对于INTERVAL分区就十分有意义了。...最终发现了问题所在,FOR语句中指定并不是分区定义时使用,而是存储在当前分区更改。...因此Oracle并非根据分区定义来判断分区,而是根据用户给出,来判断所属分区,所以,P1分区和SYS_P78分区合并完全可以写成: 更改

62020

【DB笔试面试560】在Oracle,虚拟索引(Virtual Column Indexes)作用是什么?

♣ 答案部分 在Oracle 11g之前版本,如果需要使用表达式或者一些计算公式,那么需要创建数据库视图;如果需要在这个视图上使用索引,那么会在创建基于函数索引。...虚拟Oracle 11g新引入一项技术,虚拟是一个表达式,在运行时计算,不存储在数据库,不能更新虚拟。...⑤ 由于虚拟Oracle根据表达式自动计算得出,所以,虚拟可以用在SELECT,UPDATE,DELETE语句WHERE条件,但是不能用于DML语句。 ⑥ 可以基于虚拟来做分区。...⑨ 虚拟只能是标量,不能是其它类型(例如集合、LOB、RAW等类型)。 ⑩ 可以把虚拟列当做分区关键字建立分区,这是Oracle 11g另一新特性称为虚拟分区。...⑫ 表达式所有必须在同一张。 ⑬ 虚拟列表达式不能使用其它虚拟

1.2K20

新增字段一点一滴技巧

Oracle新增字段需求,已经写了不少文章了,太多经历告诉我们,一个简单需求,如果不了解背后原理,就很可能出现性能问题。...测试记录如下,200万记录,未设NOT NULL,新增字段,不使用默认使用默认是null,执行时间上,是等价, SQL> select count(*) from t; COUNT(*)...约束包含默认情况下,是将默认存储于数据字典,不用更新, ?...p=1560)发表了篇文章,在Oracle 12c版本,论证了对不存在非空约束添加默认时,采用同样方式,只会更新数据字典,之后新数据才会更新,不会update之前现有数据,效率非常高, ?...利用这个特性,在特殊场景下,是可以作为一种优化手段,例如《千万级数据更新需求》这个案例,通过这个特性,更新一张千万级数据,原来方案需要几个小时,缩短到了1分钟,神不神奇?

1.1K20

【性能优化】一个执行计划异常变更案例(上)

目前掌握信息如下: (1) 应用已经很久未做过更新上线了。 (2) 据开发人员反馈,之前应用日志看,未出现处理时间逐步变长现象。...如下是测试表: 其中name是非唯一索引,NAME是A有100000条记录,NAME是B有1条记录,分布是不均匀,上一篇文章我们使用如下两条SQL做实验, select* from t1...但若绑定变量分布不均匀,则绑定变量窥探副作用会很明显,第二次以后每次执行,无论绑定变量是什么,都会仅使用第一次硬解析窥探参数值,这就有可能选择错误执行计划,就像上面这个实验说明,第二次使用...简而言之,数据分布不均匀使用绑定变量,尤其在11g之前,受绑定变量窥探影响,可能会造成一些特殊作为检索条件选择错误执行计划。11g时候则推出了ACS(自适应游标),缓解了这个问题。...虽然OLTP系统,建议高并发SQL使用绑定变量,避免硬解析,可不是使用绑定变量就一定都好,尤其是11g之前,要充分了解绑定变量窥探副作用原因,根据绑定变量真实分布情况,才能综合判断绑定变量使用正确

1.1K100

Oracle 数据库创建导入方法

对于Oracle 11g/12c,使用如下命令: SQL> CONNECT ot@orcl 输入口令: 已连接。...创建数据库 要为示例数据库创建,需要从SQL plus执行ot_schema.sql文件语句, 在SQL plus文件执行SQL语句,可以使用下面的命令(语法): SQL> @path_to_sql_file...SQL> 在这个语句中,我们user_tables中选择了table_name,并按字母顺序排列了名。如上结果中所见,有12个名按预期方式返回。...通过用另一个替换名(联系人),可以检查所有数据。如果这是您第一次使用数据库系统,这对您来说是一个很好练习。...要删除上面模式,请执行: SQL>@F:\website\oraok\ot\11g\ot_drop.sql

1.3K00

【DB笔试面试666】在Oracle,高并发高负载情况下,如何给添加字段、设置DEFAULT

因为Oracle在执行上述操作过程,不仅要更新数据字典,还会刷新全部记录,并且会使得Undo空间暴涨,所以,正确做法是将更新数据字典和更新字段分开。...,Oracle 11g开始,当添加一个带有默认非空时(注意2个条件,NOT NULL和默认),Oracle不会使用这个默认来物理更新现有存在行,Oracle只会存储这个新元数据(NOT...Oracle 12c开始,支持具有默认添加DDL语句优化,即如下2条SQL语句效率是一样,也不存在锁现象了: 1ALTER TABLE LKILL.T_KILL ADD A_LHR...11g,加了NOT NULL约束SQL语句,可以在瞬间完成添加操作,而只设置了默认SQL语句使用了25秒时间。...,在Oracle 12c,添加具有默认DDL优化已扩展到包括默认

3.6K30

基于同一主机配置Oracle 11g Data Guard(logical standby)

针对下面的情形在写redo时候会附加唯一信息              存在主键,则主键值会随同被更新一起做为update语句一部分              无主键,存在非空唯一索引/...约束时,则最短非空唯一索引/约束会随同被更新做为update语句一部分              无主键,无唯一索引/约束,所有可定长度(除long,lob,long raw,object...type,collection类型)连同被更新列作为update语句一部分              注,存在函数唯一索引能够被实现SQL Apply,只要修改行能够被唯一鉴别,但该索引函数不能用作唯一性去鉴别更新行...       对于那些可由应用程序确保行记录唯一,又不希望创建主键情形,可以通过创建RELY约束,以避免维护主键所带来额外开销 --可使用下面的方式为添加RELY约束 SQL> ALTER...a、首先创建物理备库 创建物理备库方法很多,对于Oracle 11g而言,可以直接active database来创建,也可以基于10g RMAN使用duplicate方式来创建

84110

Oracle 11g 分区创建(自动按年、月、日分区)

Oracle 11g 支持自动分区,不过得在创建时就设置好分区。   如果已经存在需要改分区,就需要将当前 rename后,再创建,然后复制数据到新,然后删除旧表就可以了。...一、为什么要分区(Partition)   1、一般一张超过2G大小,ORACLE是推荐使用分区。   ...4、便于维护,可扩展:11g 分区新特性:Partition(分区)一直是 Oracle 数据库引以为傲一项技术,正是分区存在让 Oracle 高效处理海量数据成为可能,在 Oracle 11g...二、oracle 11g 如何按天、周、月、年自动分区 2.1 按年创建 numtoyminterval(1, 'year') --按年创建分区 create table test_part (  ...-- 当某一行更新时,如果更新是分区,并且更新植不属于原来这个分区, -- 如果开启了这个选项,就会把这行从这个分区 delete 掉,并加到更新后所属分区,此时就会发生 rowid 改变

2.9K10

针对Oracle审计方案

主题:针对Oracle审计方案 数据库环境:Oracle 11g 1.需要对连接数据库行为进行审计 需要对连接数据库行为进行审计,其中包含例如审计那些错误密码登录等失败登录行为。...比如查询最近一天使用错误密码登录行为; --aud$ select sessionid, userid, userhost, comment$text, spare1, ntimestamp# from...查询审计结果(较多,建议图形化工具查看): SQL> select * from dba_audit_trail order by timestamp; 可以结果看到所有DML操作都会对应一条action_name...为“SESSION REC”。...3.需要迁移审计数据到指定空间 创建空间,比如TBS_AUDIT,然后迁移审计数据默认SYSTEM到TBS_AUDIT空间; 核心步骤如下: --查看当前AUD$对象所在空间 SELECT

67520

Oracle压缩黑科技(三):OLTP压缩

但是,您可能还记得,我开始写这篇文章时候使用了freelist管理,而不是ASSM,当我使用ASSM重复简单“插入50,000行数据”时,结果大小227块跳到了250块。...在我第一个块,我有十九个标记覆盖了11个连续,这意味着“真实”行一个字节表示11数据 。 如果只是更新这些一个,Oracle会将一个字节扩展为全11!...当然,通过为pctfree设置一个合适,可以最大限度地减少行迁移。但是,Oracle使用了一些巧妙技巧来最大化压缩,除非你非常了解数据和业务操作,否则很难决定一个好。...也很可能会进入多标记,因此即使“真实”数据更改针对是不期望被压缩,也会发生大量扩展。(当然,与基本压缩一样,如果更新没有完成,则不会发生标记扩展。)...如果您要使用OLTP压缩,则需要针对每个找出合适pctfree,从而将行迁移保持在可接受水平。

2.3K70

Oracle优化02-锁和阻塞

产生是因为并发,并发产生是因为系统需要,系统需要是因为用户需要……. ---- 由唯一性约束引起阻塞 场景模拟 Oracle Database 11g Enterprise Edition Release...我们创建T时候,x字段设置为主键,以确保这个唯一性,然后我们在session1更新x=1数据, 并没有提交,此时session2 也同样对x=1数据进行了update ....session1没有提交,此时数据库会认为你还没有决定是否将这条数据更新到库,数据库会等待你做决定(提交or回滚)。为了确保数据不重复,数据库只能让session2等待,直到你做出决定。...AE锁在11g引入,是一个版本锁. ---- 这里我们分析一下上述统计结果: 通过select sid from v$mystat; 查到当前session对应sid ....通过这个视图,我们很快发现了问题所在, session2卡住是因为session1上有个事物没有提交,而在这张上有要求唯一性约束(建有主键)。

34030

Oracle面试题集锦

所谓第一范式(1NF)是指数据库每一都是不可分割基本数据项,同一不能有多个,即实体某个属性不能有多个或者不能有重复属性。...简言之数据库五大范式: 第一范式:对于每一行,必须且仅仅有唯一.在一行每一仅有唯一并且具有原子性....虽然emp数据行有很多,ORACLE缺省认定是在所有数据行均匀分布,也就是说每种deptno各有25万数据行与之对应。...pctfree:空闲百分比,用来为一个块保留空间百分比,以防止在今后更新操作增加一或多长度。 freelist:可用列表是一组可插入数据可用块。...中表示统计信息译码统计名VSYSSTAT VSESSETA当前每个统计全面的系统VSESSETA当前每个统计全面的系统 VSESSETA当前每个统计全面的系统VTHREAD 控制文件得到线索信息

2.6K21

【云和恩墨大讲堂】谈Oracle新增字段影响

为了证明增加字段操作究竟做了什么,有什么影响,打算使用10046事件来看看,一个11g库,创建测试表T,执行10046事件。...我们直接看关闭10046事件之前最后一句: 执行是col$更新语句。名看,col$是数据字典使用了绑定变量,那这些是什么,就成了问题关键。 5....像上面第一次增加操作时,会同时更新sys.ecol$和sys.col$数据字典,若以后再修改这个默认,则只是会修改sys.col$,且以后每次查询也是sys.col$default$获取默认...$已经变为了1, 11g官方文档也介绍了,Oracle增加了这种新特性,对新增字段操作做了上面这些优化, 如果新增一个含有默认字段,那么会立即更新每一行,在更新过程,会有一个EXCLUSIVE级别的锁在该上...原因就是前面介绍过11g新特性,新增一个有默认NOT NULL约束字段,默认不会像以前一样,插入每条记录,而是会存储于数据字典Oracle允许NOT NULL默认为NULL,因此对于

2.1K70

Oracle统计信息那点事儿

引言 在Oracle11g版本,统计信息为自动收集功能,在部署安装11g Oracle软件过程,其中有一个步骤便是提示是否启动这个功能(默认是启用这个功能);且有时候在生产环境,还会对一些对象做手动统计信息搜集...CBO是一种比RBO更加合理、可靠优化器,它是ORACLE 8开始引入,但到ORACLE 9i才逐渐成熟,在ORACLE 10g完全取代RBO,CBO是计算各种可能“执行计划”“代价”,即COST...好了,这里改说下优化器依赖哪些统计信息,优化器统计范围: 统计: --行数,块数,行平均长度;all_tables:NUM_ROWS,BLOCKS,AVG_ROW_LEN; 统计: --唯一数量...自动收集统计信息情况: 自动统计收集在夜间进行,对所有更改活动中等对象自动统计应该足够; 使用如下命令查看; SELECT WINDOW_NAME, REPEAT_INTERVAL,...在创建了基于索引统计后,应该在上收集新统计,这可以通过调用过程设置METHOD_OPTFOR ALL HIDDEN COLUMNS; 3.

1.6K20

【DB笔试面试553】在Oracle,什么是不可见索引?

♣ 题目部分 在Oracle,什么是不可见索引? ♣ 答案部分 索引维护是DBA一项重要工作。...在Oracle 11g里,Oracle提供了一个新特性来降低直接删除索引或者禁用索引风险,那就是不可见索引(Invisible Indexes)。 Oracle 11g开始,可以创建不可见索引。...还可以创建最初不可见索引,执行测试,然后确定是否使该索引可见。可以查询DBA_INDEXES数据字典视图VISIBILITY来确定该索引是VISIBLE还是INVISIBLE。...不可见索引是Oracle 11g开始出现,所以,在Oracle 11g之前版本索引没有INVISIBLE功能,那么应该如何处理呢?...这样的话,索引定义并未删除,只是索引不能再被使用,也不会随着数据更新更新。当需要重新使用该索引时,需要用REBUILD语句重建、然后更新统计信息。对于一些大来说,这个时间可能就非常长。

62320

12C 新特性 | 标量子查询自动转换

11g 数据库,对于 CUSTOMERS CUST_CREDIT_LIMIT 大于 50000 每一行,在SALES 标量子查询都必须被执行。...(图: Oracle 11g 数据库计划显示,对于 customers 返回每一行,标量子查询都必须被取值) 将标量子查询展开并且将其转换为一个连接,就免除了为外层查询每一行都进行求值必要性。...trace 文件,我们可以看出 Oracle 无法转换原因是有空,优化器在此步不能转换。...4、12C 标量子查询案例 下面是来自某银行系统真实案例模拟,数据库 SQL 代码是 11g 中直接拿来在 12C 中使用,运行出现报错。...5、总结 ① 12C 标量子查询优化器可以实现自动改成一个外连接,仅仅出现在一些聚集函数; ② 并不是所有的聚集函数都会出现,比如 count; ③ 如果连接中出现一些空,优化器是不会自动改写转换

92030
领券