【【DB笔试面试689】在Oracle中,如何收集systemdump?如何收集hanganalyze?】教程文章相关的互联网学习教程文章

【DB笔试面试612】在Oracle中,查询转换包含哪些类型?【代码】【图】

?题目 部分在Oracle中,查询转换包含哪些类型? ?答案部分在Oracle数据库中,用户发给Oracle让其执行的目标SQL和Oracle实际执行的SQL有可能是不同的,这是因为Oracle可能会对执行的目标SQL做等价改写,即查询转换。查询转换(Query Transformation),也叫逻辑优化(Logical Optimization),又称为查询改写(Query Rewrite)或软优化,即查询转换器在逻辑上对语句做一些语义等价转换,它是Oracle在解析目标SQL的过程中的非常...

【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笔试面试618】在Oracle中,“OR扩展”可以有查询转换吗?【代码】【图】

?题目 部分在Oracle中,“OR扩展”可以有查询转换吗? ?答案部分 同一字段: 1LHR@orclasm > SELECT * FROM SCOTT.EMP A WHERE A.EMPNO =7369 OR A.EMPNO=1; 2 3 EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO 4---------- ---------- --------- ---------- ------------------- ---------- ---------- ---------- 5 7369 SMITH CLERK 7902 198...

【DB笔试面试617】在Oracle中,和“表达式和条件评估”相关的查询转换有哪些?...【代码】【图】

?题目 部分在Oracle中,和“表达式和条件评估”相关的查询转换有哪些? ?答案部分(一)逻辑转换 1LHR@orclasm > SELECT /*+FULL(A) FULL(B)*/ * FROM SCOTT.EMP A,SCOTT.DEPT B WHERE A.DEPTNO=B.DEPTNO AND B.DEPTNO=20; 2 3Execution Plan 4---------------------------------------------------------- 5Plan hash value: 4192419542 6 7------------------------------------------------------------------------...

【DB笔试面试619】在Oracle中,举例说明“连接因式分解(Join factorization,JF)”查询转换。...【代码】【图】

?题目 部分在Oracle中,举例说明“连接因式分解(Join factorization,JF)”查询转换。 ?答案部分 1LHR@orclasm > SELECT /*+FULL(A) FULL(B)*/ A.*,B.DNAME FROM SCOTT.EMP A,SCOTT.DEPT B WHERE A.DEPTNO=B.DEPTNO AND A.EMPNO=6 2 2 UNION ALL 3 3 SELECT /*+FULL(A) FULL(B)*/ A.*,B.DNAME FROM SCOTT.EMP A,SCOTT.DEPT B WHERE A.DEPTNO=B.DEPTNO AND A.EMPNO=7; 4 5no rows selected 6 7 8Execution P...

【DB笔试面试616】在Oracle中,和“消除”相关的查询转换有哪些?【代码】【图】

?题目 部分在Oracle中,和“消除”相关的查询转换有哪些? ?答案部分(一)排序消除 1LHR@orclasm > SELECT COUNT(1) FROM ( SELECT T.EMPNO FROM SCOTT.EMP T ORDER BY T.EMPNO); 2 3 COUNT(1) 4---------- 5 14 6 7 8Execution Plan 9----------------------------------------------------------10Plan hash value: 966064101112-----------------------------------------------------------------------------13...

【DB笔试面试610】在Oracle中,SPM的使用有哪些步骤?【代码】【图】

?题目 部分在Oracle中,SPM的使用有哪些步骤? ?答案部分取消自动捕获,也可以不取消自动捕捉:1show parameter baselines2ALTER SYSTEM SET OPTIMIZER_CAPTURE_SQL_PLAN_BASELINES=FALSE;show parameter baselines 2ALTER SYSTEM SET OPTIMIZER_CAPTURE_SQL_PLAN_BASELINES=FALSE;执行: 1[ZHLHRSPMDB2:oracle]:/oracle>ORACLE_SID=dlhr 2[ZHLHRSPMDB2:oracle]:/oracle>sqlplus / as sysdba 3 4SQL*Plus: Release 11.2.0.4.0...

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

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

【DB笔试面试185】在Oracle中,如何让普通用户可以TRUNCATE其他用户的表?【图】

【DB笔试面试185】在Oracle中,如何让普通用户可以TRUNCATE其他用户的表?在Oracle中, 如何让普通用户可以TRUNCATE其他用户的表 ? 用户1若要删除用户2的索引,则用户1需要有DROP ANY INDEX的权限。用户1若要TRUNCATE用户2的表,则用户1需要有DROP ANY TABLE的权限。但是,DROP ANY INDEX和DROP ANY TABLE的权限过大,一般不能赋予普通用户这2个权限,那么可以通过写存储过程来实现该功能,如下所示:CREATE OR REPLACE PROCEDUR...

【DB笔试面试164】在Oracle中,如何彻底停止expdp数据泵进程?

【DB笔试面试164】在Oracle中,如何彻底停止expdp数据泵进程? 真题1、 如何彻底停止 expdp 进程? 答案:许多同事在使用expdp命令时,不小心按了CTRL+C组合键,然后又输入exit命令(或者网络中断等异常情况),导致expdp进程不存在,但Oracle数据库的会话仍存在,所以dmp文件也一直在增长。在这种情况下的处理办法如下所示:1、检查expdp进程是否还在ps -ef | grep expdp若存在,则可用“kill -9 process”命令杀掉expdp的进...

【DB笔试面试389】在Oracle中,什么是绑定变量窥探?【图】

Q ? ? ? ? ?题目 在Oracle中,什么是绑定变量窥探?? ? ?A ? ? ? ? ?答案 ? ? ? ? ? 目标SQL若不使用绑定变量,则当具体输入值一旦发生了变化,目标SQL的SQL文本就会随之发生变化,这样Oracle就能很容易地计算出对应Selectivity和Cardinality的值,进而据此来选择执行计划。但对于使用了绑定变量的目标SQL而言,情况就完全不一样了,因为现在无论对应绑定变量的具体输入值是什么,目标SQL的SQL文本都是一模一样的。对于使用了绑定...

【DB笔试面试234】在Oracle中,如何有效的删除一个大表(即表的EXTENT数很多)?【图】

Q ? ? ? ? ?题目如下所示:在Oracle中,如何有效的删除一个大表(即表的EXTENT数很多)?? ? ?A ? ? ? ? ?答案如下所示: ? ? ? ? ?一个有很多EXTENT(100k+)的表,如果只是简单地用DROP TABLE的话,那么会大量消耗CPU(在DMT管理下,Oracle要对FET$、UET$数据字典进行操作),可能会用上很长的时间,较好的方法是分多次删除EXTENT,以减轻这种消耗:1. TRUNCATE TABLE BIG_TABLE REUSE STORAGE;2. ALTER TABLE BIG_TABLE DEALLOC...

【DB笔试面试583】在Oracle中,什么是绑定变量分级?【代码】【图】

? ? ? ? ? ?题目 ? ? ? ? 部分在Oracle中,什么是绑定变量分级?? ? ?? ? ? ? ? ?答案部分 ? ? ? ? ?绑定变量分级(Bind Graduation)是指Oracle在PL/SQL代码中会根据文本型绑定变量的定义长度而将这些文本型绑定变量分为四个等级,不同等级分配的内存大小不同,如下表所示:等级定义长度(Byte)分配内存大小(Byte)1(0,32]322[33,128]1283[129,2000]20004大于2000分配的内存空间大小取决于对应文本型绑定变量所传入的实际绑定变...