更新oracle索引字段的值,可以更新引用索引字段的值吗?

在navicat(mysql版)里,我可以给表中的字段加索引,索引的作用就是,当我修改索引字段值的时候,引用索引的字段值会自动更新.那么问题来了,plSql里有这种功能吗?或者说Oracle的管理工具里面有没有类似的功能?
举个例子来说说明这个问题:
有两张表,如下所示
部门表[deptID,deptName];员工表(empID,deptID,deptName)

我通过navicat给deptName设置索引,员工表引用deptName的索引

当我修改deptName的时候(把deptName从'研发部',修改成'销售部',那么员工表中的deptName,自动从'研发部'更新成'销售部')

之前听人说索引是为了加快访问速度,但是我在navacat里用的索引貌似和这个概念不是完全符合

0
扫码支付0.1元 ×
其他相关推荐
【实践、技术】解决一起索引字段经常更新造成的索引效率低下的问题
        操作系统: 数据库版本:     数据库机器读盘厉害,由于没有完整的检测手段以及历史累计数据,因此只能用简单的方式先进行检查:   检查消耗磁盘多的SQL语句:   从V$SQLAREA中查询最占用资源的查询 select b.username username         ,a.disk_reads reads         ,a.exe...
oracle的索引字段可以设置为空?
答案是肯定的; 可以建,就是有点不合理; 索引是告诉你有什么,并不会告诉你没有什么; 如果少数几条null无所谓,如果很多null/很多重复值建索引的意义就打折扣了
数据库索引字段请不要为NULL
一、实验create table tbNotNull ( `id` INT (11) NOT NULL, name varchar(20) NOT NULL) create table tbHaveNull ( `id` INT (11) NOT NULL,name varchar(20) NULL) insert into tbNotNull values(4,"zhaol...
数据库字段值相似性高导致的索引问题
问题描述:表A是数据对接表,有800万左右的数据量,对字段a1加了normal索引,发现查询性能问题,分析后发现查询不走索引,强制走索引查询性能依然很差。分析后发现a1字段值类似递增的序列号,因此导致每行记录该字段的值都相差不大,虽然加了索引,但是索引树的层级将会增加很快,导致索引效果很不理想。这里提出几种解决方案:方案1:将A表改造成分区表,查询时定位到分区,通过缩小数据范围来提升查询性能。但是...
Oracle索引开销
虽然索引可以显著提高查询性能,但是它会降低insert,update,delete与merge这些DML操作的性能。 索引总是增加插入,删除语句的开销,可能会增加更新语句的开销。因此,要避免过度索引,特别是要避免在更新频繁的字段上进行索引。 所以我们应该想办法标出没有被使用的索引。 select index_name,table_name,used,start_monitoring from
oracle查唯一索引有哪些字段
select t.*,i.index_type from user_ind_columns t,user_indexes i where t.index_name = i.index_name and i.uniqueness='UNIQUE' and t.table_name='B2C_PSN_PAYTYPE'
数据库性能问题:当表字段重复记录过多,索引可能失去意义
今天遇到一个DB2的问题:两条同样的SQL语句,只是where条件指定的字段的值不一样,结果访问计划中,一条SQL走了索引,另一条没有,类似如下: SQL1: select id, name from t1 where id = 3000  and .... ->使用了索引 SQL2:select id, name from t1 where id = 10001 and ....-&g...
字段中有null值查询不走索引的问题解决
生产环境发现有一条sql 效率很差,发现是由于查询中有null值,导致了执行计划不走索引。 搜索了解决办法,主要是创建该字段和其它常量字段的联合索引 或者通过函数索引排除空值的情况。 下面是测试过程 --测试 构造测试表 create table test_null (id  number(10), comm varchar2(20)); 插入测试数据 decl
索引字段顺序对效率的影响
个人总结几点: 1、驱动表中的索引要将区间字段(sendtime之类)放到固定值(orgid等)的后面 2、驱动表的连接字段可以放在索引最后,以避免读取rowid 3、连接表的连接字段要放在索引最前面。 举个例子: selectcount(*) as col_0_0_   from REC_BANKINSTRUCTION batchrecba0_  crossjoin
MySql索引字段为NULL值答疑解惑
引言 此处就不详细的谈测试的过程了,只说结论,大家平常设计开发的过程中就可以以此为标准就OK了。 结论 当在创建的索引的字段上出现空值的时候,所创建的索引是起作用有效果的,去谷歌或者百度的时候出现各种言论,其中有很多说不起作用的,这种说法是不正确的。 下面摘自《高性能mysql第三版》关于表设计的优化论述:尽量避免NULL,应该指定列为NOT NULL,除非你就想存储NULL。在MySQL中...
Mysql 索引 和修改字段
看看 索引 show index from first_page_record;// 查看first_page_record 表所有 索引 CREATE INDEX itvaccount_index ON first_page_record (itvaccount);//给表first_page_record 列itvaccount添加索引itvaccount_index ALTER t...
oracle函数索引解决null字段导致索引失效问题
我们知道索引列如果出现null值会导致索引失效。具体情况如下: 表中数据如下: 可见storeid列有null值。 当执行查询语句:select * from demo  where storeid= '10';时我们通过plsql的sql分析(F5触发)可以看到触发全表查询。 那该如何让该在字段有空值的情况下触发索引呢? 有两种方法: 1、建立函数索引 create index...
数据字段长度影响索引
截图来自院子里的SQL Server大神
索引是什么?索引索引的是谁?是整个字段值,还是前面一部分?哪一部分?
1. 索引是对数据库表中一列或多列的值进行排序的一种结构,从本质上来讲,索引就是一种数据结构。   2. 使用索引可快速访问数据库表中的特定信息。   3. 在关系数据库中,索引是一种与表有关的数据库结构,它可以使对应于表的SQL语句执行得更快。索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容。   4. 在使用索引字段作为条件时,如果该索引是复合索引,那么必须使用到该索引
建在含有null值的字段上的索引会包含null值数据
今天,一个朋友问了个问题:“如果一个表中的某个列的数据有null的,那我为这个列建索引,然后查询有用吗?”我回答:“有用。”他又说(可能是从网上摘抄下来的):“不能用null作索引,任何包含null值的列都将不会被包含在索引中。即使索引有多列这样的情况下,只要这些列中有一列含有null,该列就会从索引中排除。也就是说如果某列存在空值,即使对该列建索引也不会提高性能。任何在where子句中使
oracle创建索引会降低更新的效率?
需要看创建索引的字段 是在 WHERE条件后面充当条件, 还是索引字段就为更新字段 :比如UPDATE 表 SET A = 1     WHERE  B = 2如果 B  列有索引,那么提高效率。如果 A  列有索引,那么降低效率。因为:更新的列上建有索引,数据库不但要更新表里的数据,而且要更新相应的索引。所以这个索引就会降低update执行的效率。...
MySQL之索引:索引字段的选取
        日常在建数据表的时候,通常会在WHERE,GROUP BY,ORDER BY等常用的字段上建立索引,当有多个字段时候,有一项原则就是该字段的去重后的值个数越多,索引建立的必要性越强。        这里建立一张数据表,有staff_id和leader_id两个字段,通过EXPLAIN分析可以验证哪个字段更适合做索引。CREATE TABLE `test_index_distinct...
MySql 索引字段太长
MySql 索引字段太长 今天数据库执行 quartz sql 错误 Specified key was too long; max key length is 767 bytes。我采用的数据库字符集是 utf8mb4 解决如下: ALTER DATABASEdatabasenameCHARACTER SET utf8; ...
索引为空是不可以
众所周知,存在空值的列,在谓词中有is null会导致索引失效,因为索引都有保存,你怎么可能通过索引查找数据信息呢?所以,索引大部分情况下创建到主键之中;wid之中;所以is null的选择性还是很强的。那么在该字段上应该有索引,创建一个索引create index IDX_DEPT_FSTANDARDCODE on T_ORG_DEPARTMENT (FSTANDARDCODE)cost:198...
solrj 更新部分索引域的值
solrj set 更细部分字段
oracle复合索引介绍(多字段索引)
首先,在大多数情况下,复合索引比单字段索引好.以税务系统的SB_ZSXX(申报类_征收信息表)为例,该表为税务系统最大的交易表.如果分别按纳税人识别号,税务机关代码,月份3个字段查询,每个字段在该表中的可选性或约束性都不强,如一个纳税人识别号有很多纳税记录,一个税务机关代码和同一月份记录就更多了,所以3个字段合起来,"某个纳税人识别号+某个税务机关代码+某月"的记录就少多了.因此复合索引比单字段索
学习MongoDB 八: MongoDB索引(索引限制条件)(二)
我们上一篇介绍了索引基本操作,通过db.collection.createIndex(keys, options)语法创建索引,我们继续介绍地理空间索引、索引的限制,使我们在MongoDB时能提高查询效率。
单列索引和多列索引性能对比,索引字段空值情况的处理
由于Contact表存在多个(单列)索引,造成Delete ,update ,insert操作时需要花费大量的时间删除索引和重建索引。 通过把多个(单列)索引合并成一个(多列)索引后,测试得出Delete ,update ,insert操作时需要花费的时间大大缩短。 由于多个(单列)索引合并成一个(多列)索引,可能会对之前单列索引字段的查询性能有影响,做了对比测试 注意:My
读出索引字段的值
其他字段都能读,唯独读索引字段出错rnrs.fields("classid")不能读
SQL优化:NULL值与索引的使用
NULL是数据库中特有的数据类型,当一条记录的某个列为NULL,则表示这个列的值是未知的、是不确定的。简单的说,由于NULL存在着无数的可能,因此两个NULL不是相等的关系,同样也不能说两个NULL就不相等,或者比较两个NULL的大小,这些操作都没有意义,得不到一个确切的答案。 那么,一个字段有可能存在空值是否适合创建索引呢? 大多数人都听说过这样一句话,索引不存储NULL值。这句话其实
建立组合索引的字段顺序优化
建立组合索引的字段顺序优化 简介 组合索引我们经常用到,建立组合索引大家也都会,但是如何考虑建立组合索引的顺序是一个值得推敲的事情。 正文 1. 尽量把最常用的字段放在最前面 对于我们需要创建的组合索引,如果同时又经常单独使用其中某个字段作为查询条件,这样的字段是要求放在组合索引前面的。 因为这种场景下,能直接使用组合索引做范围扫描,否则,如果该字段放在后面,可能走索引跳跃扫描,全索引扫描,甚至...
如何修改带索引的字段的长度,查看、删除索引,修改字段属性、创建索引!
需要重新创建索引,因为长度不同会认为是两个不同的所索引。 创建和删除索引 索引的创建可以在CREATE TABLE语句中进行,也可以单独用CREATE INDEX或ALTER TABLE来给表增加索引。删除索引可以利用ALTER TABLE或DROP INDEX语句来实现。 (1)使用ALTER TABLE语句创建索引。 语法如下: alter table table_name add index...
MySQL大数据量表根据非索引字段检索优化
MySQL大数据量表根据非索引字段检索优化项目背景 在项目业务中经常会出现根据非索引字段查询数据的场景。如根据根据订单支付状态查询未支付或者已支付的的订单信息进行一些业务处理。 假设订单表支付状态列有两个值(1-已支付/0-未支付),实际项目中由于此字段仅有两个值是不适合加索引的,所以当我们仅根据支付状态字段查询订单信息的时候其实是进行的全表扫描。如下图所示: 执行该SQL耗时如下
Trafodion 查看表上索引及索引字段信息
昨天有人问到怎么通过SQL的方式查看表上有哪些索引、每个索引上有哪些字段,通过SQL的方式,意味着我们得需要直接从元数据表中查询。 Trafodion将所有的对象(表、索引、字段等)元数据信息保存到”MD“这个Schema下,每个对象都需要唯一的对象ID(OBJECT_ID),通过OBJECT_ID,可以在不同的元数据表中查询需要的信息。 下面这条SQL语句可以帮助我们查看所有表及表上的索引及...
mysql中如何用一条语句更新主键增加特定的值
mysql> select * from bai_utf8; +-----+--------+ | id | myname | +-----+--------+ | 1 | aa | | 100 | ab | | 200 | cc | | 300 | dd | | 400 | ee | | 500 | ff | +-----+------...
Oracle 中merge into不能更新on中的字段
oracle中的更新可以有这几中方式来实现: 1,update 2,merge 3,利用Pl/SQL批量更新我这里比较update和merge两种更新操作:首先看update操作:SQL> Update emp Set deptno = 90 Where deptno In (Select deptno From dept);14 rows updated.这里是没有错误的。merge 操作
Oracle索引的建立、修改、删除
一、概念和作用      在oracle索引是一种供服务器在表中快速查找一个行的数据库结构。合理使用索引能够大大提高数据库的运行效率。      在数据库中建立索
使用索引时需要使用独立的列作为where条件
对于下面的SQL select * from table where id + 1 = 5; 即使表table上为id列建立了索引,上面的SQL依然无法使用索引进行性能优化。我们应该养简化where条件的习惯,始终将索引列单独放置在比较符号的一边。...
Elasticsearch 索引新增字段并且设置mappping
添加字段并设置类型 PUT /my_index/_mapping/my_type { "base_policy_basic_info": { "properties": { "city": { "type": "text", "analyzer":"ik_max_word", "fields":{ "raw": { "type": "keyword" } } }
Mybatis <foreach>标签中使用唯一索引插入更新
公司使用Mybatis的注解形式,之前一直用XML形式,这让我十分不适应,简单的CURD单语句还行,遇上复杂连表查询或者动态Sql,要么使用&amp;lt;script&amp;gt;标签要么使用@SelectProvider注解,那一大堆Sql混杂着标签或Java代码,着实让人恶心,同时极容易出错,个人不太喜欢这种使用方式。 无奈,项目组统一使用注解方式,我也就不好说什...
索引列上计算引起的索引失效及优化措施以及注意事项
两个示例 例子一 表结构 DROP TABLE IF EXISTS `account`; CREATE TABLE IF NOT EXISTS `account` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `account` int(10) unsigned NOT NULL, `password` char(32)
对数据库索引的理解及适合建立索引的字段
因本人小白,总结一下别人总结的,勿怪勿怪。转载深入浅出数据库索引原理,哪些字段适合建立索引 问题 为什么要给表加上主键? 为什么加索引后会使查询变快? 为什么加索引后会使写入、修改、删除变慢? 什么情况下要同时在两个字段上建索引? 这些问题他们可能不一定能说出答案。知道这些问题的答案有什么好处呢?如果开发的应用使用的数据库表中只有1万条数据,那么了解与不了解真的没有差别, 然而, 如果...
索引区分度
How to measure Index Selectivity Index Selectivity  B*TREE Indexes improve the performance of queries that select a small percentage of rows from a table. As a general guideline, we should c
关于oracle中的not null约束
写在开始处:这是 茉茉 的第一篇博客,今天是 茉茉 实习的第一个月的倒数第二天(茉茉是11月3号开始实习的呢) oracle中一个字段不能同时设置 not null 约束 和 默认值么?
Oracle-update同时更新多个字段多个值
--创建表A,B: create table CUX_TEST_TABLE_A (a1 varchar2(240),a2 varchar2(240),a3 varchar2(240)); create table CUX_TEST_TABLE_B (b1 varchar2(240),b2 varchar2(240),b3 varchar2(240)); --插入数据  insert into CU...
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 深度学习视频花钱值吗 python更新教程