`
zybing
  • 浏览: 458963 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

【技术】找出oracle没有创建索引的外键

阅读更多

 

 

/* Formatted on 2011/05/04 14:53 (Formatter Plus v4.8.7) */
SELECT table_name, constraint_name,
          cname1
       || NVL2 (cname2, ',' || cname2, NULL)
       || NVL2 (cname3, ',' || cname3, NULL)
       || NVL2 (cname4, ',' || cname4, NULL)
       || NVL2 (cname5, ',' || cname5, NULL)
       || NVL2 (cname6, ',' || cname6, NULL)
       || NVL2 (cname7, ',' || cname7, NULL)
       || NVL2 (cname8, ',' || cname8, NULL) COLUMNS
  FROM (SELECT   b.table_name, b.constraint_name,
                 MAX (DECODE (POSITION, 1, column_name, NULL)) cname1,
                 MAX (DECODE (POSITION, 2, column_name, NULL)) cname2,
                 MAX (DECODE (POSITION, 3, column_name, NULL)) cname3,
                 MAX (DECODE (POSITION, 4, column_name, NULL)) cname4,
                 MAX (DECODE (POSITION, 5, column_name, NULL)) cname5,
                 MAX (DECODE (POSITION, 6, column_name, NULL)) cname6,
                 MAX (DECODE (POSITION, 7, column_name, NULL)) cname7,
                 MAX (DECODE (POSITION, 8, column_name, NULL)) cname8,
                 COUNT (*) col_cnt
            FROM (SELECT SUBSTR (table_name, 1, 30) table_name,
                         SUBSTR (constraint_name, 1, 30) constraint_name,
                         SUBSTR (column_name, 1, 30) column_name, POSITION
                    FROM user_cons_columns) a,
                 user_constraints b
           WHERE a.constraint_name = b.constraint_name
             AND b.constraint_type = 'R'
        GROUP BY b.table_name, b.constraint_name) cons
 WHERE col_cnt >
          ALL (SELECT   COUNT (*)
                   FROM user_ind_columns i
                  WHERE i.table_name = cons.table_name
                    AND i.column_name IN
                           (cname1,
                            cname2,
                            cname3,
                            cname4,
                            cname5,
                            cname6,
                            cname7,
                            cname8
                           )
                    AND i.column_position <= cons.col_cnt
               GROUP BY i.index_name)
/
 

 

 

 

 

分享到:
评论

相关推荐

    oracle 本科教学ppt

    Oracle数据库提供了多种工具和技术来监控和优化数据库性能,如SQL*Profiler用于找出性能瓶颈,Explain Plan用于分析SQL执行计划,以及索引的合理使用等。 七、并发控制 在多用户环境下,Oracle使用事务和锁定机制来...

    ORACLE资料 适合初学者

    理解如何设计合理的表结构,设置主键和外键,以及何时创建索引,对于提高数据库性能至关重要。此外,了解视图的概念,它允许你创建虚拟表,可以简化复杂的查询或保护基础数据。 数据库的管理包括用户管理、权限控制...

    oracle常用系统视图+导入导出

    1. `ALL_CONS_COLUMNS` 和 `ALL_CONSTRAINTS`:这两者结合可以找出表间的约束关系,如主键和外键。 2. `DBA_DEPENDENCIES`:追踪对象间的依赖关系,帮助理解哪些表可能是从表。 至于数据的导入导出,Oracle提供了...

    消除行迁移与Oracle数据库性能调优.pdf

    一种传统的方法是通过执行$ORACLE_HOME/rdbms/admin目录下的udchain.sql脚本来创建chained_rows表,然后找出并处理存在行迁移的记录。但这可能无法处理有表关联的情况,因为删除有行迁移的记录可能违反外键约束。...

    Oracle DBA基础培训.ppt

    10. **性能监控**:DBA需要持续监控数据库性能,使用性能分析工具(如SQL Trace、AWR报告等)找出性能瓶颈,进行调优,包括SQL查询优化、索引调整、数据库参数调整等。 Oracle DBA的工作既包含技术层面的操作,也...

    Oracle做的笔记

    7. **性能优化**:通过分析SQL执行计划、调整表分区、使用绑定变量、创建索引等方式,可以有效提升Oracle数据库的性能。EXPLAIN PLAN和SQL Trace等工具帮助诊断和优化问题。 8. **并行执行**:Oracle的并行执行机制...

    Oracle数据库课程设计报告学生成绩管理系统.rar

    9. **性能监控与调优**:通过Oracle提供的工具,如SQL*Plus和企业管理器,可以监控数据库性能,找出瓶颈并进行优化,保证系统的高效运行。 10. **课程设计实施**:在实际项目中,除了技术实现,还需要考虑系统集成...

    Oracle 11g For Dummies

    通过学习如何分析和解读这些报告,你可以找出性能瓶颈并采取相应措施。 安全性是Oracle 11g的重要组成部分。书中会涵盖用户权限管理、角色、审计和数据加密等主题,以确保数据库的安全运行。 最后,Oracle 11g支持...

    小布老师oracle第一集

    Oracle提供了一系列工具和特性,如SQL*Plus、 tkprof 和 explain plan,帮助分析查询性能并找出瓶颈。小布老师可能会讲解如何通过索引优化、查询改写和调整数据库参数来提高查询速度。 【表和索引】 在Oracle中,...

    oracle链接查询

    8. 使用EXPLAIN PLAN:分析查询执行计划,理解Oracle如何处理SQL语句,找出可能的瓶颈。 9. 选择正确的连接顺序:Oracle默认选择最小代价的连接顺序,但有时需要手动调整。 10. 使用物化视图:对于复杂的查询,创建...

    Oracle数据库经典案例教程

    理解执行计划(Execution Plan)有助于找出性能瓶颈并制定优化策略。 “JBOSS”标签可能意味着教程也涵盖了Java企业版中间件JBOSS与Oracle数据库的集成。JBOSS作为一款开源的应用服务器,常用于部署Java EE应用程序...

    Oracle的各种事例

    - **EXPLAIN PLAN**:用于分析SQL查询的执行计划,找出性能瓶颈。 - **V$视图**:监控数据库性能,如V$SESSION、V$SYSTEM_EVENT等。 - **SQL*Plus和Toad等工具**:用于数据库管理和性能优化。 6. **安全性**: ...

    比较精炼的oracle学习讲义

    - AWR报告:分析和解读Automatic Workload Repository报告,找出性能瓶颈。 这份讲义将帮助初学者快速入门Oracle 11g,通过深入学习这些知识点,你可以掌握Oracle数据库的核心操作和管理技巧,为后续的数据库设计...

    Oracle经典面试题(个人精心收集,值得收藏)

    - 使用EXPLAIN PLAN分析查询执行计划,找出性能瓶颈。 - 通过索引优化、查询重写和分区技术提升查询性能。 - 理解数据库调优工具,如SQL*Plus、 tkprof 和AWR报告。 9. **数据库安全性** - 用户权限管理,如...

    oracle SQL疑难解析 书中SQL

    Oracle支持B树索引、位图索引、函数索引等多种类型,但创建索引也会占用存储空间并可能影响数据插入和更新的速度。 8. **事务管理**:Oracle支持ACID(原子性、一致性、隔离性和持久性)属性,确保数据的一致性。...

    oracle实验报告 熟悉ORACLE环境-Oracle的安装与配置、创建 查询.docx

    1. **范围查询**:找出工资在2000到3000之间的员工信息。 2. **索引创建**:为SAGE字段创建降序索引。 3. **聚合函数**:使用COUNT()计算各部门的雇员人数。 4. **连接查询**:通过自连接查询员工的间接上司。 5. **...

    oracle和pl/sq重要知识点

    11. **性能优化**:通过分析查询执行计划(EXPLAIN PLAN)、监控V$视图、使用SQL Tuning Advisor,可以找出性能瓶颈并进行优化。 12. **安全性**:Oracle提供角色、权限和对象权限来控制用户对数据库的访问。GRANT...

    Oracle笔记和总结,包含了ORACLE实际开发中大量列子

    通过分析执行计划,使用 Explain Plan 和 SQL Trace 工具,我们可以找出查询的瓶颈,并通过调整索引、优化查询语句或使用绑定变量等方式提升性能。 另外,Oracle的安全管理不容忽视,包括用户权限的管理、角色的...

    Oracle学习资料

    - SQL优化:通过EXPLAIN PLAN分析查询执行计划,找出性能瓶颈并优化SQL语句。 - 会话管理:了解如何管理和监控数据库会话,以提高系统性能。 8. **Oracle集群与RAC** - RAC(Real Application Clusters):...

    ORACLE_DBA常用脚本.ppt

    例如,如果脚本提示"Changing data in table ITEMS will lock table ITEM_CATEGORIES",那么可以为相关列创建索引来解决。 其次,索引检查也是DBA的重要工作之一。索引可以显著提高查询速度,但过多或不必要的索引...

Global site tag (gtag.js) - Google Analytics