oracle 面试题
1.你在设计数据库时,怎样解决锁?
锁:同一时间段,很多用户占用一个资源。
抢火车票,提交了订单但未支付,为了避免出现死锁,则可以设计为预-1,等待一段时间之后查看该订单,进行调整。
预扣决策。
例子:抢火车票,抢小米,一元秒杀。
2.有10000条数据,其中有1000条数据是错误的(比如pk了或数据格式不对),怎样把剩下9000条数据写进table?
3.你现在公司oracle db 是用什么备份?假如db down掉了,怎样恢复?
通过备份的数据文件+重做日志,共同完成。100%恢复
(exp命令进行备份,数据崩备份,)
4.如果系统突然变慢了,你怎么处理?
慢慢变慢:重建索引,降低水位线,添加分区
突然变慢:(检查io,检查sql)
5.分区有几种?解释一下什么时候用到范围分区,什么时候用到hash分区?6.如果一个table很大,你怎样考虑建立索引?你建立组合索引考虑什么?
查询条件,索引类型,索引放到企业级SSD(3万150G)上。
建立一个表空间,建索引时指定表空间。
7.如果一条sql执行很慢,是走全表扫描,你怎样考虑建立索引?
按时间维度分区 ,按地区维度分区,减少扫描,
查询条件,索引类型,索引放到企业级SSD(3万150G)上。
建立一个表空间,建索引时指定表空间。