个人面试题(Oracle数据库开发)

1、事务槽
update delete 争用事务槽 每个块都有数据槽


2、100万 分区  一亿 分区 区别…
一亿数据量可以考虑子分区 分表
分区合理的话查询性能无差


3、800万数据索引
查询几条数据性能提升很大  
查询大量数据  全表比索引要好 索引要回表


4、三范式
第一范式 列不可再分
第二范式 需要主键
第三范式 外键约束,减少冗余


5、存储过程 触发器 函数 语法/区别
网上看详细吧


6、约束有哪几种  五种(都忘了)
主键约束
外键约束
唯一约束
检查约束
非空约束


7、awr 事件  等待事件 锁
db file scattered read 文件分散读取
该事件通常与全表扫描或者fast full index scan有关。
db file sequential read文件顺序读取整代码,特别是表连接:最常见的等待事件
buffer busy wait 缓冲区忙增大DB_CACHE_SIZE,加速检查点,调整代码
latch free:
    当闩锁丢失率高于0.5%时,需要调整这个问题。
Enqueue
     队列是一种锁,保护一些共享资源,防止并发的DML操作


8、数据库优化方法


9、SGA PGA
System global area
系统全局内存 包括 
share pool
   buffer cache 共享sql区 存储用户SQL命令
   data dictory cache 数据字典缓存 存储数据库运行的动态信息
database buffer cache
缓存数据文件中读取出的块
large pool 
java pool 
personel global area
单独为每个用户分配的内存


10、审计  使用关闭等
--审计
--基于表的审计
create table test_audit
(id number,
 name varchar2(20));
 
 
audit all on logminer.test_audit;


insert into test_audit 
values 
(1,'dong');
commit;


delete from test_audit ;
commit;


select OS_USERNAME,
       username,
       USERHOST,
       TERMINAL,
       TIMESTAMP,
       OWNER,
       obj_name,
       ACTION_NAME,
       sessionid,
       os_process,
       sql_text
  from dba_audit_trail b
  where b.owner='LOGMINER';


noaudit all on logminer.test_audit;




--审计
AUDIT DELETE ANY TABLE; --审计删除表的操作


AUDIT DELETE ANY TABLE WHENEVER NOT SUCCESSFUL; --只审计删除失败的情况


AUDIT DELETE ANY TABLE WHENEVER SUCCESSFUL; --只审计删除成功的情况


AUDIT DELETE,UPDATE,INSERT ON user.table by test; --审计test用户对表user.table的delete,update,insert操作


--撤销审计
noaudit all on t_test;


11、执行计划 分析步骤
/*
缩进从右往左 从上往下
*/


/*
全表扫描  扫描快(至高水位线)
索引扫描  rowid


运算符 
sort 排序
filter 过滤
view 内联视图(自动转换)
partition view 分区视图 
merge into 合并
CBO 可以用 hint改变


表连接顺序  
access  谓词影响数据方位路径 表或索引
filter 仅过滤
set autotrace on 
*/
12、物化视图 创建  使用场景
--物化试图
/*
普通视图是虚拟表 物化视图是实际存在的表
创建物化视图日志
创建物化视图
物化视图类型  
on demand   需要被刷新时刷新 
on commit   事务提交刷新
物化视图与普通表一样的字典信息
刷新方式  手动刷新 自动刷新
*/


create materialized view mv_name 
refresh  force 
on  demand 
start with sysdate 
next to_date(concat(to_char(sysdate+1,'yyyy-mm-dd'),' 22:00:00'),'yyyy-mm-dd hh24:mi:ss')
as
select d.deptno,count(*) cnt from emp e,dept d
where e.deptno=d.deptno
group by d.deptno
;
13、RAC  RMAN
Rac只在本机安装过  还一堆问题。
Rman也在本机使用过  备份恢复,可能还有些参数设置,定时脚本
14、列表 元祖 字典
作死说了解Python 连基础都搞不清楚的
列表- [1,2,3]  方括号 有序可修改
元祖- (1,2,3)  小括号 有序不可修改
字典- {'name':'dong,'age':21'}  花括号 key-value
集合- {1,2,3,4,5}  无序不重复
15、数据库的几种状态
select status from v$instance;
shutdown 
nomount  startup nomount    STARTED
mount    alter database mount/startup mount    MOUNTED
open     alter database open/startup      OPEN
--关闭四种
shutdown normal
shutdown transaction --等待事务全部提交
shutdown immediate  --未提交的事务将回滚
shutdown abort  --强制关闭 异常关闭
16、控制文件丢失 如何处理
/*
提前备份控制文件
1、生成可重建
*/



 

  • 8
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值