【【DB笔试面试752】在Oracle中,搭建物理DG需要注意的地方有哪些?】教程文章相关的互联网学习教程文章

【DB笔试面试599】在Oracle中,如何在不执行SQL的情况下获取执行计划?【图】

?题目 部分 在Oracle中,如何在不执行SQL的情况下获取执行计划? ?答案部分 1、“EXPLAIN PLAN FOR SQL”不实际执行SQL语句,生成的计划未必是真实执行的计划。但是,必须要有PLAN_TABLE表,可以执行脚本“@?/rdbms/admin/utlxplan.sql”来创建。2、SQL*Plus的AUTOTRACE功能,命令:SET AUTOTRACE TRACEONLY EXPLAIN。除SET AUTOTRACE TRACEONLY EXPLAIN外其它的AUTOTRACE方式均实际执行SQL。但是,如果该命令后执行的是DML语...

【DB笔试面试605】在Oracle中,SQL概要(SQL Profile)的作用是什么?【代码】【图】

?题目 部分 在Oracle中,SQL概要(SQL Profile)的作用是什么? ?答案部分SQL Profile就是为某条SQL语句提供除了系统统计信息、对象(表和索引等)统计信息之外的其它信息,比如运行环境、额外的更准确的统计信息,以帮助优化器为SQL语句选择更适合的执行计划。SQL Profile可以说是Outline的进化。Outline能够实现的功能SQL Profile也完全能够实现,而SQL Profile具有Outline不具备的优化,最重要的有两点:①SQL Profile更容...

【DB笔试面试600】在Oracle中,如何获取SQL历史执行计划?【代码】【图】

?题目 部分 在Oracle中,如何获取SQL历史执行计划? ?答案部分历史执行计划只能从AWR中获取,如果AWR没有记录的话,那么就无法获取历史执行计划了,获取历史执行计划的命令如下所示:1SELECT??*?FROM?TABLE(DBMS_XPLAN.DISPLAY_AWR('&sqlid'));SELECT??*?FROM?TABLE(DBMS_XPLAN.DISPLAY_AWR('&sqlid'));对于历史计划,可以生成SQL报告,命令如下所示:1SELECT?*?FROM?TABLE(DBMS_WORKLOAD_REPOSITORY.AWR_SQL_REPORT_HTML(L_D...

【DB笔试面试608】在Oracle中,如何使用STA来生成SQL Profile?【代码】【图】

?题目 部分 在Oracle中,如何使用STA来生成SQL Profile? ?答案部分利用STA对语句进行优化后,STA会对语句进行分析,采用最优的优化策略,并给出优化后的查询计划。可以按照STA给出的建议重写语句。但是,有些情况下,你可能无法重写语句(比如在生产环境中,SQL语句又在一个包中)。这个时候就可以利用Sql Profile,将优化策略存储在Profile中,Oracle在构建这条语句的查询计划时,就不会使用已有相关统计数据,而使用Profil...

【DB笔试面试593】在Oracle中,表的访问方式有哪几种?【代码】【图】

?题目 部分 在Oracle中,表的访问方式有哪几种? ?答案部分访问表的方式也叫优化器访问路径,主要有3种访问路径:全表扫描(FULL TABLE SCAN,FTS)、索引扫描(INDEX SCAN)和ROWID访问。(一)全表扫描(FULL TABLE SCAN,FTS)全表扫描将读取高水位(High Warter Mark,HWM)之下的所有数据块,所有行都要经WHERE子句过滤来判断是否满足条件。当Oracle执行全表扫描时,会按顺序读取每个块且只读一次,如果能够一次读取多个...

【DB笔试面试595】在Oracle中,I/O Calibration和DOP有什么关系?【代码】【图】

?题目 部分 在Oracle中,I/O Calibration和DOP有什么关系? ?答案部分从Oracle 11.2.0.2开始,只有当I/O Calibration(I/O 校准、I/O统计信息)被收集才能使用自动并行度(DOP,Automatic Degree of Parallelism)。当PARALLEL_DEGREE_POLICY被设置为AUTO时,Oracle数据库将会基于执行计划中操作的成本和硬件特性来判断是否使用并行。如果一个PARALLEL Hint在语句级被使用,那么无论PARALLEL_DEGREE_POLICY的值设置成什么,自...

【DB笔试面试598】在Oracle中,如何得到真实的执行计划?【代码】【图】

?题目 部分 在Oracle中,如何得到真实的执行计划? ?答案部分在Oracle数据库中判断得到的执行计划是否准确,就是看目标SQL是否被真正执行过,真正执行过的SQL所对应的执行计划就是准确的,反之则有可能不准,因此,通过10046事件及如下的几种方式得到的执行计划是最准确的,而从其它方式获取到的执行计划都有可能不准确。1SELECT?*?FROM?TABLE(DBMS_XPLAN.DISPLAY_CURSOR(NULL,?NULL,?'ADVANCED?ALLSTATS'));2SELECT?*?FROM?T...

【DB笔试面试594】在Oracle中,关键字NOLOGGING、APPEND和PARALLEL提高DML性能方面有什么差别?...【代码】【图】

?题目 部分 在Oracle中,关键字NOLOGGING、APPEND和PARALLEL提高DML性能方面有什么差别? ?答案部分众所周知,表模式(LOGGING/NOLOGGING)、插入模式(APPEND/NOAPPEND)、数据库运行模式(归档(ARCHIVELOG)/非归档(NOARCHIVELOG))和并行模式与DML操作的效率息息相关,作者就此设计了一个实验,用来检测它们不同组合生成的Redo量、Undo量和用时长短的比较,实验结果参考表 3-22,该表数据经过多次实验得到,表中重要数据...

【DB笔试面试597】在Oracle中,获取执行计划有哪几种方法?【代码】【图】

?题目 部分 在Oracle中,获取执行计划有哪几种方法? ?答案部分一般来说,有如下几种获取执行计划的方式:1、AUTOTRACE方式AUTOTRACE是Oracle自带的客户端工具SQL*Plus的一个特性。启用AUTOTRACE后,SQL*Plus会自动收集执行过的SQL语句的执行计划、性能统计数据等,并在语句执行结束后显示在SQL*Plus中。DBA用户可以直接使用AUTOTRACE功能,但是如果用户没有DBA权限,那么需要在SYS用户下执行plustrce.sql脚本,自动创建PLUST...

【DB笔试面试596】在Oracle中,什么是执行计划?【图】

?题目 部分 在Oracle中,什么是执行计划? ?答案部分 执行计划指示Oracle如何获取和过滤数据、产生最终结果集,这是影响SQL语句执行性能的关键因素。在深入了解执行计划之前,首先需要知道执行计划是在什么时候产生的,以及如何让SQL引擎为语句生成执行计划。在Oracle中,任何一条语句在解析过程中都会生成一个唯一的数值标识,即SQL_ID。而同一条语句,在解析过程中,可能会因为执行环境的改变(例如某些优化参数被改变)而生...

【DB笔试面试545】在Oracle中,如何获取用户的权限?【代码】【图】

? ? ? ? ? ?题目 ? ? ? ? 部分 在Oracle中,如何获取用户的权限?? ? ?? ? ? ? ? ?答案部分 ? ? ? ? ?若要获取一个用户的角色、系统权限、对象权限以及列权限,则可以通过以上介绍的数据字典视图来获取也可以通过DBMS_METADATA.GET_GRANTED_DDL来获取。若使用SYS用户创建了如下的用户LHRSYS并赋予相应的权限:1CREATE?USER?LHRSYS?IDENTIFIED?BY?LHRSYS;2GRANT??UPDATE?(ENAME,SAL)?ON??SCOTT.EMP??TO??LHRSYS;3GRANT??UPDATE??(EN...

【DB笔试面试762】在Oracle中,DG中常常用到的比较有用的性能视图有哪些?【图】

? ? ? ? ? ?题目 ? ? ? ? 部分 在Oracle中,DG中常常用到的比较有用的性能视图有哪些?? ? ?? ? ? ? ? ?答案部分 ? ? ? ? ?l V$MANAGED_STANDBY:包含与物理备库相关的数据库进程(例如:LGWR、RFS、LNS、ARCH、MRP等)的信息。l V$ARCHIVED_LOG:在备库执行此查询时,显示该备库接收到的日志。l V$LOG_HISTORY:包含归档历史的详细信息。l V$DATAGUARD_STATUS:包含DG生成的消息,这些消息被写入该特定数据库(主库或备库)的告警...

【DB笔试面试613】在Oracle中,和子查询相关的查询转换有哪些?【代码】【图】

? ? ? ? ? ?题目 ? ? ? ? 部分 在Oracle中,和子查询相关的查询转换有哪些?? ? ?? ? ? ? ? ?答案部分 ? ? ? ? ?(一)子查询推进(Push Subquery)示例 1LHR@orclasm?>?set?serveroutput?on 2LHR@orclasm?>?exec?sql_explain('SELECT?/*+?no_push_subq(@lhr_ps)*/?*?FROM?SYS.TAB$?A?WHERE?A.ANALYZETIME?>?(SELECT?/*+qb_name(lhr_ps)*/?MAX(B.ANALYZETIME)?FROM?SYS.IND$?B)','outline'); 3Plan?hash?value:?553156288 4-------...

【DB笔试面试273】在Oracle中,若数据库发生写错误(非SYSTEM表空间文件),则Oracle是如何处理相关数据文件的?【图】

Q ? ? ? ? ?题目如下所示:在Oracle中,若数据库发生写错误(非SYSTEM表空间文件),则Oracle是如何处理相关数据文件的?? ? ?A ? ? ? ? ?答案如下所示: ? ? ? ? ? 在Oracle 11.2.0.2版本之前,如果数据库运行在归档模式下,并且写错误发生在非SYSTEM表空间文件,那么Oracle数据库会将发生错误的文件离线(OFFLINE)。但是,从Oracle 11.2.0.2开始,数据库会以Crash实例替代相关数据文件的OFFLINE。需要注意的是,在非归档模式下或...

【DB笔试面试663】在Oracle中,死锁的产生情况有哪些?【图】

? ? ? ? ? ?题目 ? ? ? ? 部分 在Oracle中,死锁的产生情况有哪些?? ? ?? ? ? ? ? ?答案部分 ? ? ? ? ?Oracle中的死锁比较复杂,产生死锁的原因也有很多种,曾经有面试官让面试人员口头模拟死锁产生的一个场景。下面详细介绍死锁的相关内容。(一)什么是死锁?所谓死锁,是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死...