Oracle性能优化面试题及答案 - [ 数据库面试题及答案 ]

Oracle性能优化面试题及答案

1. 什么是性能调优?

利用现有资源最佳利用系统,称为性能调整。

详细答案>>

2. 性能调整类型有哪?

CPU调整内存调整,应用程序调,数据库调整

详细答案>>

3. 数据库调优主要包含哪些内容?

命中率等待事件

详细答案>>

4. 什么是优化器类型?

RBO(基于规则的优化器)CBO(基于成本的优化器)。

详细答案>>

5. 哪个优化器是最好的?

CBO优化器是最好的。

详细答案>>

6. 使用优化程序的先决条件是什么?

设置优化器模式收集对象的统计信息。

详细答案>>

7. 如何收集表的统计信息?

分析表emp计算统计信息或分析表emp估算统计信息。

详细答案>>

8. 计算和估计之间的区别是什么?

如果使用计算,FTS将会发生;如果使用估计,则仅读取表的10%

详细答案>>

9. 数据字典遵循哪种优化器模式?

10. 如何删除对象的统计信息?

分析表emp删除统计信息。

详细答案>>

11. 如何收集用户/方案的统计信息?

exec dbms_stats.gather_schema_stats(scott)

详细答案>>

12. 如何查看表的统计信息?

select num_rows,blocks,empty_blocks from dba_tables where tab_name=’emp’

详细答案>>

13. 什么是链式行?

这些是跨越多个块的行。

详细答案>>

14. 如何在Oracle Apps中收集用户的统计信息?

fnd_stats package

详细答案>>

15. 如何知道会话当前正在使用什么Sql?

By goind v$sql and v$sql_area

详细答案>>

16. 什么是执行计划?

它是路线图,说明如何通过oracle db执行sql。

详细答案>>

17. 如何获取表的索引以及索引在哪一列上?

dba_indexes and dba_ind_columns

详细答案>>

18. 需要设置哪个初始参数来绕过解析?

cursor_sharing=force

详细答案>>

19. 如何知道哪个会话正在运行长时间作业?

通过:v$session_longops

详细答案>>

20. 如何刷新共享池?

alter system flush shared_pool

详细答案>>

21. 如何获得有关Fts的信息?

使用:v$sysstat

详细答案>>

22. 如何增加Db缓存?

使用语句:alter table emp cache

详细答案>>

23. 从哪里获得库缓存的信息?

查看:v$librarycache

详细答案>>

24. 如何获取特定会话的信息?

查看:v$mystat

详细答案>>

25. 如何查看跟踪文件?

使用tkprof:tkprof allllle.trc llkld.txt

详细答案>>

26. 在Oracle安装过程中如何设置表空间?

预期答案:应该始终尝试使用Oracle灵活体系结构标准或其他分区方案,以确保正确分离SYSTEM,ROLLBACK,REDO LOG,DATA,TEMPORARY和INDEX段。

详细答案>>

27. 在SYSTEM表空间中看到多个片段,首先应该检查什么?

预期答案:通过检查DBA_USERS视图,确保用户没有将SYSTEM表空间作为其TEMPORARY或DEFAULT表空间分配。

详细答案>>

28. 有什么迹象表明需要增加SHARED_POOL_SIZE参数?

预期答案:数据字典或库缓存命中率低,出现错误ORA-04031。 另一个指示是在所有其他调整参数相同的情况下,性能会稳步下降。

详细答案>>

29. 对于执行许多全表扫描的应用程序,确定db_block_size和db_multi_block_read的大小的一般准则是什么?

预期的答案:Oracle几乎总是读取64k块。 两者的乘积应等于64或64的倍数。

详细答案>>

30. 表格的最快查询方法是什么?

预期答案:获取rowid

详细答案>>

31. 解释TKPROF的用法? 应该打开什么初始化参数以获得完整的TKPROF输出?

tkprof工具是一种调整工具,用于确定SQL语句的CPU和执行时间。 通过首先在初始化文件中将timed_statistics设置为true,然后通过sql_trace参数打开整个数据库的跟踪,或使用ALTER SESSION命令打开会话的跟踪,可以使用它。 跟踪文件生成后,可以运行 tkprof 工具针对跟踪文件,然后查看 tkprof 工具。 这也可以用于生成解释计划输出。详细答案>>

32. 查看v$sysstat时会看到排序(磁盘)很高。 这是好还是坏? 如果不好,您如何纠正?

如果磁盘排序过多,这是不好的。 这表明您需要调整初始化文件中的排序区域参数。 主要排序参数是SORT_AREA_SIZe参数。

详细答案>>

33. 什么时候应该增加复印闩锁? 哪些参数控制复制锁存器?

当对复制闩锁产生过多争用时,如“重做复制”闩锁命中率所示。可以通过初始化参数LOG_SIMULTANEOUS_COPIES将复制锁存器增加到系统上CPU数量的两倍。

详细答案>>

34. 在哪里可以获得实例的所有初始化参数的列表? 如何指示它们是默认设置还是已更改?

预期的答案:可以在init.ora文件中查找有关手动设置参数的指示。 对于所有参数,其值以及当前值是否为默认值,请在v$parameter视图中查找。

详细答案>>

35. 描述与数据库缓冲区有关的命中率。瞬时命中率和累积命中率有什么区别?应该使用哪个进行调整?

命中率是数据库能够从缓冲区读取值的次数的量度,而不是数据库必须从磁盘重新读取数据值的次数。大于80-90%的值表示良好,较小的值表示存在问题。 如果采用现有参数的比率,则它将是自数据库启动以来的累积值。如果基于任意时间跨度在成对的读数之间进行比较,则这是该时间跨度的瞬时比率。 一般来说,瞬时读取会提供更多有价值的数据,因为它会告诉您实例在生成期间正在做什么。详细答案>>

36. 行链接它如何发生? 如何减少呢?如何纠正?

当VARCHAR2值被更新并且新值的长度大于旧值并且不适合剩余的块空间时,将发生行链接。这导致行链接到另一个块。 可以通过将表上的存储参数设置为适当的值来减少此值。 可以通过导出和导入受影响的表进行更正。详细答案>>

37. 查看estat事件报告时发现正在忙于缓冲区等待。这不好吗? 您如何找到造成这种情况的原因?

预期的答案:缓冲区繁忙等待可能指示重做,回滚或数据块中的争用。需要检查v$waitstat视图以查看导致问题的区域。 “计数”列的值指示问题出在哪里,“类别”列告诉您问题所在。 UNDO是回滚段,DATA是数据库缓冲区。详细答案>>

38. 如果看到库缓存争用,如何解决?

预期的答案:增加共享池的大小。

详细答案>>

39. 如果看到有关“撤消”的统计信息,那么在说明什么?

预期答案:回滚段和相关结构。

详细答案>>

40. 如果表空间的默认pctincrease为零,这将导致什么(与smon进程有关)?

预期的答案:SMON进程不会自动合并其自由空间片段。

详细答案>>

41. 如何判断表空间是否有过多的碎片?

如果针对dba_free_space表的选择显示表空间扩展区的数量大于其数据文件的数量,则它将被分段。

详细答案>>
注: 此试题仅作为相关知识水平测试,不能作为权威试题和答案。非商业转载注明原文链接即可;商业转载需本站授权同意。