首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【DB笔试面试570】OracleSQL优化写法上有哪些常用方法

♣ 题目部分 OracleSQL优化写法上有哪些常用方法? ♣ 答案部分 一般书写SQL时需要注意哪些问题,如何书写可以提高查询效率呢?...实际上,Oracle解析过程,会将“*”依次转换成所有的列名,这个工作是通过查询数据字典完成,这意味着将耗费更多时间。...如果进行比较两个数据类型不同,那么Oracle必须将其中一个进行类型转换使其能够比较。这就是所谓隐式类型转换。通常当开发人员将数字存储字符列时会导致这种问题产生。...由于转换每行都进行,这会导致性能问题。一般情况下,当比较不同数据类型数据时,Oracle自动地从复杂向简单数据类型转换,该规则MySQL隐式类型转换是一致。...(16)Oracle数据库里,INOR是等价,优化器处理带IN目标SQL时会将其转换为带OR等价SQL

3.6K30
您找到你想要的搜索结果了吗?
是的
没有找到

Oracle,实例恢复介质恢复区别是什么

Q 题目 Oracle,实例恢复介质恢复区别是什么? A 答案 Redo日志是Oracle为确保已经提交事务不会丢失而建立一种机制。...恢复到过去某一时间点是删除误更改一种方法。...当事务提交时,LGWR将内存重做条目事务SCN同时写入联机Redo日志。但是,DBWn进程只最有利时机将已修改数据块写入数据文件。...Oracle数据库使用检查点位置,保证每个低于其SCN已提交更改都已保存到磁盘。Oracle数据库应用Undo块,以回滚数据块实例失败前写入或前滚过程引入未提交更改。...Oracle数据库应用Undo块回滚在数据块未提交改变,这些数据块是实例失败之前或者前滚期间被写入。回滚会将已执行但尚未提交更改会返回到初始状态。

1.7K20

【DB笔试面试607】Oracle,coe_load_sql_profile.sql脚本作用是什么

♣ 题目部分 Oracle,coe_load_sql_profile.sql脚本作用是什么?...♣ 答案部分 可以使用coe_load_sql_profile.sql脚本直接固定执行计划,该脚本也可以实现直接把sqlprofile直接迁移到其它库。...很多DBA习惯于使用coe_xfr_sql_profile.sql脚本来固定SQL执行计划,但是这个脚本操作起来比较麻烦,而且容易出错。这个脚本正确用途是用来做不同数据库之间SQL执行计划固定。...最方便脚本是:coe_load_sql_profile.sql,使用这个脚本,只需要输入几个参数,就能完成快速恢复执行计划任务。...SQL> 6.查看产生sql profile,此时原语句不加hint情况下也走全表扫了select * from dba_sql_profiles; SQL>set line 9999 SQL>

1.5K20

【DB笔试面试584】Oracle,如何得到已执行目标SQL绑定变量

♣ 题目部分 Oracle,如何得到已执行目标SQL绑定变量?...♣ 答案部分 当Oracle解析执行含有绑定变量目标SQL时,如果满足如下两个条件之一,那么该SQL绑定变量具体输入就会被Oracle捕获: l 当含有绑定变量目标SQL以硬解析方式被执行时...l 当含有绑定变量目标SQL以软解析或软软解析方式重复执行时,Oracle默认情况下至少得间隔15分钟才会捕获一次。...,Oracle只会捕获那些位于目标SQLWHERE条件绑定变量具体输入,而对于那些使用了绑定变量INSERT语句,不管该INSERT语句是否是以硬解析方式执行,Oracle始终不会捕获INSERT...查询视图V$SQL_BIND_CAPTURE或V$SQL可以得到已执行目标SQL绑定变量具体输入

3K40

【DB笔试面试394】Oracle,SESSIONSPROCESSES关系是什么

题目 Oracle,SESSIONSPROCESSES关系是什么? 答案 在数据库安装完成后,常常需要设置SESSIONSPROCESSES大小。...通过查找官方文档,可以知道SESSIONS参数Oracle 10g11g是不同,如下表所示: 属性Oracle 10gOracle 11gR2参数值类型IntegerInteger默认Derived...: (1.1 * PROCESSES) + 5Derived: (1.5 * PROCESSES) + 22是否可以动态修改NoNo范围1 to 2311 to 216 (即1到65536)注:Oracle...11gR1,该参数值10g是一样,修改语句为“ALTER SYSTEM SET PROCESSES|SESSIONS=200 SCOPE=SPFILE;” 由于SESSIONS是根据PROCESSES...Oracle 11gR2以下版本,SESSIONS大小计算公式为:(1.1 * PROCESSES) + 5;Oracle 11gR2,SESSIONS大小计算公式为:(1.5 * PROCESSES

1.3K20

【DB笔试面试537】Oracle,PFILESPFILE区别是什么

♣ 题目部分 Oracle,PFILESPFILE区别是什么?...♣ 答案部分 参数文件(Parameter File)也叫初始化文件,它主要用来记录数据库配置文件,在数据库启动时,Oracle读取参数文件,并根据参数文件参数设置来配置数据库,如内存分配,允许打开进程数和会话数等...SPFILEPFILE区别参考下表: 表 3-12 SPFILEPFILE区别 比较内容SPFILEPFILE格式二进制格式文本格式编辑方式Oracle 9i之后引入概念,不能用文本编辑工具打开...,不能直接修改,只能存放在Oracle服务器端,只能使用如下几种方式修改: 1、利用OEM修改 2、SQL*Plus里使用ALTER SYSTEM语句进行修改1、利用OEM修改(重启失效) 2、利用文本工具...,Oracle数据库启动时寻找参数文件顺序如下所示,如果这些文件都不存在,那么Oracle会报错: spfile.ora --> spfile.ora --> init.ora

75510

【DB笔试面试386】Oracle,ROWIDROWNUM区别是什么

Q 题目 Oracle,ROWIDROWNUM区别是什么? A 答案 Oracle有两个著名伪列ROWIDROWNUM,下面分别来介绍它们。...(一)ROWID ROWID是一个伪列,既然是伪列,那么这个列就不是用户定义,而是系统自己给加上。对每个表都有一个ROWID伪列,但是表并不物理存储ROWID列。...ROWID对访问一个表给定行提供了最快访问方法,通过ROWID可以直接定位到相应数据块上,然后将其读到内存。...ROWID可以分为以下几种类型: l 物理ROWID:存储堆组织表、表簇、表分区、索引分区行地址。 l 逻辑ROWID:存储索引组织表行地址。...(二)ROWNUM ROWNUM是一个伪列,不是真正列,并不真实存在,它是Oracle数据库从数据文件或缓冲区读取数据顺序。

53510

【DB笔试面试603】Oracle,固定SQL执行计划方法有哪些?

♣ 题目部分 Oracle,固定SQL执行计划方法有哪些?...♣ 答案部分 实际项目中,通常在开发环境下,一些SQL执行没有任何功能问题,而当到了生产环境或生产环境数据量发生较大变量时,其SQL执行效率非常低。...此时如果更改SQL,那么可能需要重新修改源程序以及重新编译程序。如果修改源程序成本比较大,那么可以使用一些方法不改变源应用程序情况下更改特定SQL执行计划并固定下来。...因为SQL语句执行计划发生更改时,可能存在性能风险。SQL计划发生更改原因有很多,如优化程序版本、优化程序统计信息、优化程序参数、方案定义、系统设计SQL概要文件创建等。...有4种方式可以固定控制执行计划,分别是使用Hint(提示)、OUTLINE(存储概要)、SQL PROFILE(SQL概要文件)SPM(SQL Plan Management,SQL计划管理),如下表所示

67120

【DB笔试面试522】Oracle,数据库实例关系是什么

♣ 题目部分 Oracle,数据库实例关系是什么? ♣ 答案部分 数据库(DATABASE)是一个数据集合,Oracle数据库都将其数据存放在数据文件。...物理结构上,Oracle数据库必须3类文件分别是数据文件、控制文件联机Redo日志文件。逻辑结构上,Oracle数据库由表空间、段、区块组成。数据库名称由DB_NAME来标识。...实例启动时会读取初始化参数文件(SPFILE或PFILE),获取数据库运行时参数。实例名称由INSTANCE_NAME来标识。...从Oracle 12c开始,对于非CDB(non-CDB,非容器数据库)类型数据库而言,它Oracle 12c之前数据库没有差别。...12.1,CDBPDB字符集必须一样,但是12.2,CDBPDB字符集可以不一样。 •根据应用程序需要,PDB可以PDB创建表空间。

1.5K30

【DB笔试面试428】Oracle,实例恢复介质恢复区别是什么

题目 Oracle,实例恢复介质恢复区别是什么? 答案 Redo日志是Oracle为确保已经提交事务不会丢失而建立一种机制。...恢复到过去某一时间点是删除误更改一种方法。...Oracle数据库使用检查点位置,保证每个低于其SCN已提交更改都已保存到磁盘。Oracle数据库应用Undo块,以回滚数据块实例失败前写入或前滚过程引入未提交更改。...Oracle数据库应用Undo块回滚在数据块未提交改变,这些数据块是实例失败之前或者前滚期间被写入。回滚会将已执行但尚未提交更改会返回到初始状态。...总结一下,前滚回滚是Oracle数据库实例发生意外崩溃,重新启动时候,由SMON进行自动恢复过程。

1.4K21

【DB笔试面试717】Oracle,RAC脑裂健忘分别指的是什么

♣ 题目部分 Oracle,RAC脑裂健忘分别指的是什么? ♣ 答案部分 (一)脑裂(SplitBrain) 集群,节点间通过心跳来了解彼此健康状态,以确保各节点协调工作。...集群环境,存储设备都是共享,这就意味着数据灾难。简单点说,就是如果由于私有网络硬件或软件故障,导致集群节点间私有网络一定时间内无法进行正常通信,这种现像称为脑裂。...在出现脑裂后,集群重要任务就是保证错误节点与正确节点间I/O是隔离,这样才能避免对数据造成不一致损坏。处理这个问题方法就是:踢出错误节点执行修复过程。...健忘是由于某个节点更新了OCR(Oracle Cluster Registry,Oracle集群注册)内容,而集群另外一些节点此时处于关闭、维护或重启阶段,OCR Master进程来不及将其信息更新到这些异常节点缓存而导致不一致...有关OCR备份恢复可以参考我BLOG:http://blog.itpub.net/26736162/viewspace-2121470 本文选自《Oracle程序员面试笔试宝典》,作者:小麦苗

1.2K10

【DB笔试面试754】Oracle,物理DG快照DG相互转换步骤有哪些?

♣ 题目部分 Oracle,物理DG快照DG相互转换步骤有哪些? ♣ 答案部分 如何将一个物理DG转换为一个快照DG呢?...并且关闭数据库所有节点到MOUNT阶段: alter database recover managed standby database cancel; alter database close; 只需要执行一条非常简单SQL...只节点一执行: alter database convert to snapshot standby; 最后启动快照DG到OPEN状态: startup 如何将一个快照DG转换为一个物理DG呢?...,节点二处于关闭状态: STARTUP FORCE MOUNT; 或: alter database close; #节点1 shutdown immediate #节点2 只需要执行一条非常简单SQL...只节点一执行: alter database convert to physical standby; 以下命令可以查询出数据库角色: startup force mount; select inst_id

66810
领券