Oracle数据库常见面试题

数据库SQL优化技巧:
1.DDL优化:①通过禁用索引来导入数据,导入完成再恢复索引;
    ②关闭唯一校验
    ③倒入时候修改事物提交方式(改成批量插入)
2.DQL优化:①Order By优化 多用索引排序 
    ②Group By优化 使用order By null取消默认排序
    ③Or优化 or的两遍建议都是用了索引的列做判断,这样才会使用索引;只要有一边不是有索引的列就不会使用索引

不借助第三方工具,怎样查看sql的执行计划
I) 使用Explain Plan,查询PLAN_TABLE;
II)SQLPLUS中的SET TRACE 即可看到Execution Plan Statistics    
    
触发器是可以由事件来启动运行的,存在于数据库服务器中的一个过程。使用触发器并不存在严格的限定,只要用户想在无人工参与的情况下完成一般的定义约束不可以完成的约束,来保证数据库完整性,那么就可以使用触发器。触发器中不可以使用COMMIT。

触发器: 是存储在数据库中的过程,当表被修改(增、删、改)时它隐式地被激发。 
存储过程:是数据库语言SQL的集合,同样也存储在数据库中,但是他是由其他应用程序来启动运行或者也可以直接运行。

oracle的体系结构?
  逻辑体系结构:块,区,段,表空间 
      物理体系结构:表空间,三大文件 1)数据文件     2)控制文件     3)日志文件

日志文件(Log File)记录所有对数据库数据的修改,主要是保护数据库以防止故障,以及恢复数据时使用。

Oracle索引有B树索引,位图索引,函数索引,簇索引等。 
  
唯一索引也是B树索引的一种,它要求被索引的字段值不可以重复。在创建的时候使用B树算法创建。 
  位图索引并不是采用像唯一索引那样存储(索引字段值,记录ROWID)来创建索引段的,而是为每一个唯一的字段值创建一个位图,位图中使用位元来对应一个记录的ROWID。位元到ROWID是通过映射的到的

索引使用原则: 
索引字段建议建立NOT NULL约束 
经常与其他表进行连接的表,在连接字段上应该建立索引; 
经常出现在Where子句中的字段且过滤性很强的,特别是大表的字段,应该建立索引; 
可选择性高的关键字 ,应该建立索引; 
可选择性低的关键字,但数据的值分布差异很大时,选择性数据比较少时仍然可以利用索引提高效率 

你可能感兴趣的:(面试)