问题描述
你好,先生,
我有一个表管理器,它有4列。其中3列是复合主键。
创建表管理器 (ID整数,名称varchar(20),名称varchar(20),工资整数);
alter table manager添加约束t_pk主键 (ID,名称,指定);
所以,我的问题是
1) 是否会默认在复合主键上创建索引 (默认情况下)?
2) 如果需要在第一列ID上创建索引,可以在复合主键上创建单个索引吗?
提前谢谢你。
我有一个表管理器,它有4列。其中3列是复合主键。
创建表管理器 (ID整数,名称varchar(20),名称varchar(20),工资整数);
alter table manager添加约束t_pk主键 (ID,名称,指定);
所以,我的问题是
1) 是否会默认在复合主键上创建索引 (默认情况下)?
2) 如果需要在第一列ID上创建索引,可以在复合主键上创建单个索引吗?
提前谢谢你。
专家解答
默认情况下,您将获得与主键中的列匹配的索引。
另一个好处是,对前导列的查询仍然可以从该索引中受益。
另一个好处是,对前导列的查询仍然可以从该索引中受益。
SQL> select index_name,column_name 2 from user_ind_columns 3 where table_name = 'T' 4 order by index_name,column_position; INDEX_NAME COLUMN_NAME ------------------------------ ------------------------------ SYS_C0060960 OBJECT_NAME SYS_C0060960 OWNER SYS_C0060960 OBJECT_ID 3 rows selected. SQL> SQL> set autotrace traceonly explain SQL> select * from t where object_name = 'X' and owner = 'Y' and object_id = 123; Execution Plan ---------------------------------------------------------- Plan hash value: 366573511 -------------------------------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | -------------------------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | 1 | 132 | 3 (0)| 00:00:01 | | 1 | TABLE ACCESS BY INDEX ROWID| T | 1 | 132 | 3 (0)| 00:00:01 | |* 2 | INDEX UNIQUE SCAN | SYS_C0060960 | 1 | | 2 (0)| 00:00:01 | -------------------------------------------------------------------------------------------- Predicate Information (identified by operation id): --------------------------------------------------- 2 - access("OBJECT_NAME"='X' AND "OWNER"='Y' AND "OBJECT_ID"=123) SQL> SQL> select * from t where object_name = 'X' and owner = 'Y'; Execution Plan ---------------------------------------------------------- Plan hash value: 147527283 ---------------------------------------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | ---------------------------------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | 1 | 132 | 4 (0)| 00:00:01 | | 1 | TABLE ACCESS BY INDEX ROWID BATCHED| T | 1 | 132 | 4 (0)| 00:00:01 | |* 2 | INDEX RANGE SCAN | SYS_C0060960 | 1 | | 3 (0)| 00:00:01 | ---------------------------------------------------------------------------------------------------- Predicate Information (identified by operation id): --------------------------------------------------- 2 - access("OBJECT_NAME"='X' AND "OWNER"='Y') SQL> SQL> select * from t where object_name = 'X'; Execution Plan ---------------------------------------------------------- Plan hash value: 147527283 ---------------------------------------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | ---------------------------------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | 1 | 132 | 4 (0)| 00:00:01 | | 1 | TABLE ACCESS BY INDEX ROWID BATCHED| T | 1 | 132 | 4 (0)| 00:00:01 | |* 2 | INDEX RANGE SCAN | SYS_C0060960 | 1 | | 3 (0)| 00:00:01 | ---------------------------------------------------------------------------------------------------- Predicate Information (identified by operation id): --------------------------------------------------- 2 - access("OBJECT_NAME"='X')复制
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
【纯干货】Oracle 19C RU 19.27 发布,如何快速升级和安装?
Lucifer三思而后行
622次阅读
2025-04-18 14:18:38
Oracle RAC 一键安装翻车?手把手教你如何排错!
Lucifer三思而后行
610次阅读
2025-04-15 17:24:06
XTTS跨版本迁移升级方案(11g to 19c RAC for Linux)
zwtian
507次阅读
2025-04-08 09:12:48
Oracle数据库一键巡检并生成HTML结果,免费脚本速来下载!
陈举超
493次阅读
2025-04-20 10:07:02
【ORACLE】记录一些ORACLE的merge into语句的BUG
DarkAthena
471次阅读
2025-04-22 00:20:37
Oracle 19c RAC更换IP实战,运维必看!
szrsu
447次阅读
2025-04-08 23:57:08
【ORACLE】你以为的真的是你以为的么?--ORA-38104: Columns referenced in the ON Clause cannot be updated
DarkAthena
442次阅读
2025-04-22 00:13:51
一页概览:Oracle GoldenGate
甲骨文云技术
436次阅读
2025-04-30 12:17:56
【活动】分享你的压箱底干货文档,三篇解锁进阶奖励!
墨天轮编辑部
436次阅读
2025-04-17 17:02:24
火焰图--分析复杂SQL执行计划的利器
听见风的声音
385次阅读
2025-04-17 09:30:30