数据库面试题
- 格式:docx
- 大小:20.47 KB
- 文档页数:9
数据库面试题 11. 在一个查询中,使用哪一个关键字能够除去重复列值?答案:使用distinct关键字2. 什么是快照?它的作用是什么?答案:快照Snapshot是一个文件系统在特定时间里的镜像,对于在线实时数据备份非常有用。
快照对于拥有不能停止的应用或具有常打开文件的文件系统的备份非常重要。
对于只能提供一个非常短的备份时间而言,快照能保证系统的完整性。
3. 解释存储过程和触发器答案:存储过程是一组Transact-SQL语句,在一次编译后可以执行多次。
因为不必重新编译Transact-SQL语句,所以执行存储过程可以提高性能。
触发器是一种特殊类型的存储过程,不由用户直接调用。
创建触发器时会对其进行定义,以便在对特定表或列作特定类型的数据修改时执行。
4. SQL Server是否支持行级锁,有什么好处?答案:支持动态行级锁定SQL Server 2000动态地将查询所引用的每一个表的锁定粒度调整到合适的级别。
当查询所引用的少数几行分散在一个大型表中时,优化数据并行访问的最佳办法是使用粒度锁,如行锁。
但是,如果查询引用的是一个表中的大多数行或所有行,优化数据并行访问的最佳办法可以是锁定整个表,以尽量减少锁定开销并尽快完成查询。
SQL Serve 2000通过为每个查询中的每个表选择适当的锁定级别,在总体上优化了数据并发访问。
对于一个查询,如果只引用一个大型表中的几行,则数据库引擎可以使用行级锁定;如果引用一个大型表的几页中的多行,则使用页级锁定;如果引用一个小型表中的所有行,则使用表级锁定。
5. 数据库日志干什么用,数据库日志满的时候再查询数据库时会出现什么情况。
答案:每个数据库都有事务日志,用以记录所有事务和每个事务对数据库所做的修改。
6. 存储过程和函数的区别?答案:存储过程是用户定义的一系列SQL语句的集合,涉及特定表或其它对象的任务,用户可以调用存储过程,而函数通常是数据库已定义的方法,它接收参数并返回某种类型的值并且不涉及特定用户表7. 事务是什么?答案:事务是作为一个逻辑单元执行的一系列操作,一个逻辑工作单元必须有四个属性,称为 ACID(原子性、一致性、隔离性和持久性)属性,只有这样才能成为一个事务:(1) 原子性事务必须是原子工作单元;对于其数据修改,要么全都执行,要么全都不执行。
数据库面试题目及答案数据库面试是程序员求职过程中必不可少的一部分。
在面试中,面试官通常会提出各种与数据库相关的问题,以考察面试者对数据库的理解和应用能力。
本文将介绍一些常见的数据库面试题目,并提供相应的答案,希望能帮助读者在面试中取得好成绩。
1. 什么是数据库?答案:数据库是存储和组织数据的集合。
它是一个可以持久存储的数据集合,可以通过各种操作进行管理和访问。
2. 什么是关系型数据库?答案:关系型数据库是基于关系模型的数据库管理系统。
它使用表(关系)来组织数据,并通过主键和外键等约束保持表之间的关联性。
3. 什么是主键?答案:主键是一个唯一标识符,用于唯一地标识关系中的每一行。
它可以是一个或多个列,并且不允许有重复的值。
4. 什么是外键?答案:外键是关系模型中用来建立表之间关系的一种机制。
它用于在一个表中引用另一个表的主键。
5. 什么是索引?答案:索引是为了提高数据库查询性能而创建的数据结构。
它可以加快数据的查找速度,类似于书籍的目录。
6. 请解释一下数据库范式?答案:数据库范式是创建和规范化数据库表的一种方法。
它分为不同的级别(第一范式、第二范式、第三范式等),每个级别都有一些规则,用于减少数据冗余和提高数据的完整性。
7. 什么是事务?答案:事务是一系列数据库操作的集合,它们要么全部执行成功,要么全部回滚。
事务具有四个特性,即原子性、一致性、隔离性和持久性(ACID)。
8. 请解释一下数据库的ACID原则?答案:ACID是指数据库事务的四个特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。
原子性指事务要么全部执行成功,要么全部回滚;一致性指事务在执行之前和之后数据库的状态必须保持一致;隔离性指多个事务之间应该相互隔离,互不干扰;持久性指一旦事务提交,其结果将永久保存在数据库中。
9. 什么是数据库连接池?答案:数据库连接池是一种管理和复用数据库连接的机制。
数据库工程师面试题及答案1.请简要介绍你对数据库的理解以及你的数据库工作经验?答:数据库是一种可以存储、管理和检索数据的软件系统。
作为一名数据库工程师,我的主要工作职责包括设计和管理数据库系统、调优和优化数据库性能、实现数据备份和恢复、确保数据安全和隐私保护等。
我拥有多年的数据库工作经验,擅长使用MySQL、Oracle、SQL Server等数据库管理系统,对SQL语言和数据库优化有深入的了解。
2.请介绍一下数据库索引的原理和常用类型?答:数据库索引是一种数据结构,可以加速数据检索的速度和效率。
常见的索引类型包括B+树索引、哈希索引、全文索引等。
其中,B+树索引是最常用的索引类型,它采用平衡树结构来存储数据,可以支持快速的范围查找和排序操作。
哈希索引是一种使用哈希函数将数据映射到索引中的索引类型,可以支持快速的精确查找操作。
全文索引是一种可以在文本中进行模糊匹配的索引类型,可以支持全文搜索和关键词查询。
3.请介绍一下数据库事务的概念和ACID特性?答:数据库事务是一组需要被看作为一个单独的操作执行的SQL语句集合。
为了确保数据的完整性和一致性,事务需要满足ACID特性。
ACID是指原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。
⏹原子性:事务中的所有操作要么全部执行成功,要么全部失败,不存在中间状态。
⏹一致性:事务执行前后,数据库中的数据保持一致性状态。
⏹隔离性:事务之间的操作互相隔离,一个事务的执行不应该影响其他事务。
⏹持久性:事务执行成功后,其所做的修改应该被持久化存储,不会因为系统故障等原因丢失。
4.请简述一下数据库优化的方法和技巧?答:数据库优化是提高数据库性能和响应速度的重要手段,常用的方法和技巧包括:⏹合理设计和优化数据库结构,避免冗余和无用数据。
⏹创建适当的索引,加快数据检索速度。
⏹使用分区表,优化大数据表的查询速度。
数据库工程师面试准备考试试卷(答案见尾页)一、选择题1. 在关系型数据库中,索引的主要作用是什么?A. 提高数据查询效率B. 存储冗余数据C. 提高数据完整性D. 增加数据安全性2. 以下哪个不是SQL语言的数据操作语句?A. SELECTB. INSERTC. UPDATED. DELETE3. 在数据库设计中,哪种范式用于消除非主属性对主键的部分依赖?A. 第一范式(1NF)B. 第二范式(2NF)C. 第三范式(3NF)D. BCNF4. 什么是数据库事务的ACID特性?A. 原子性(Atomicity)B. 一致性(Consistency)C. 隔离性(Isolation)D. 持久性(Durability)5. 在分布式数据库中,什么是CAP定理?它说明了什么?A. 一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance)之间的权衡B. 数据库复制延迟C. 数据库锁机制D. 数据库备份策略6. 以下哪种数据模型是用于描述实体之间关系的?A. 网状模型(Graph Model)B. 关系模型(Relational Model)C. 面向对象模型(Object-Oriented Model)D. 树状模型(Tree Model)7. 在数据库优化中,如何提高查询性能(多选)?A. 使用索引B. 添加冗余数据C. 优化查询语句D. 增加数据副本8. 什么是数据库的正常关闭和异常关闭?它们各自的处理方法是什么?A. 正常关闭:优雅地关闭数据库连接,释放资源。
B. 异常关闭:突然终止数据库服务,可能导致数据不一致。
C. 处理方法:正常关闭需要确保所有活动事务都已完成;异常关闭需要记录日志并尝试恢复数据。
9. 在数据库备份策略中,全备份、增量备份和差异备份有什么区别?A. 全备份:备份全部数据,恢复时最简单。
B. 增量备份:仅备份自上次备份以来发生变化的数据。
第1篇1. 请简述Oracle数据库的体系结构,并说明各层的作用。
2. 请解释什么是Oracle实例?实例与数据库之间的关系是什么?3. 请简述Oracle数据库的存储结构,包括数据文件、控制文件、日志文件等。
4. 请说明Oracle数据库的内存结构,包括SGA、PGA等。
5. 请解释Oracle数据库的备份策略,包括全备份、增量备份、差异备份等。
6. 请说明Oracle数据库的恢复策略,包括不完全恢复、完全恢复等。
7. 请解释Oracle数据库的事务管理,包括事务的ACID特性。
8. 请说明Oracle数据库的锁机制,包括共享锁、排他锁等。
9. 请解释Oracle数据库的并发控制,包括多版本并发控制(MVCC)。
10. 请说明Oracle数据库的安全机制,包括角色、权限、用户等。
二、SQL语言1. 请简述SQL语言的组成,包括数据定义语言(DDL)、数据操纵语言(DML)、数据控制语言(DCL)等。
2. 请说明如何创建一个简单的表,包括表结构、字段类型、约束等。
3. 请编写一个查询语句,查询某个表中所有年龄大于30岁的记录。
4. 请编写一个更新语句,将某个表中年龄大于40岁的记录的年龄加1。
5. 请编写一个删除语句,删除某个表中年龄小于20岁的记录。
6. 请编写一个插入语句,插入一条记录到某个表中。
7. 请说明如何使用SQL语句实现分页查询。
8. 请说明如何使用SQL语句实现多表查询。
9. 请说明如何使用SQL语句实现子查询。
10. 请说明如何使用SQL语句实现联合查询。
三、Oracle高级特性1. 请解释什么是视图?如何创建视图?2. 请解释什么是索引?有哪些常见的索引类型?3. 请解释什么是触发器?如何创建触发器?4. 请解释什么是存储过程?如何创建存储过程?5. 请解释什么是函数?如何创建函数?6. 请解释什么是包?如何创建包?7. 请解释什么是序列?如何创建序列?8. 请解释什么是同义词?如何创建同义词?9. 请解释什么是物化视图?如何创建物化视图?10. 请解释什么是分区表?如何创建分区表?四、Oracle性能优化1. 请说明如何查看Oracle数据库的性能统计信息。
数据库面试题及答案在数据库领域的面试中,常常会遇到各种各样的问题。
这些问题涵盖了数据库的基本概念、SQL语言、数据库设计、性能优化等方面。
本文将为您详细介绍一些常见的数据库面试题及其答案,以帮助您在面试中更好地表现自己。
1. 什么是数据库的事务(transaction),并描述ACID特性。
答:事务是数据库中一系列操作的逻辑单位,要么全部执行成功,要么全部失败回滚。
ACID特性包括原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。
2. 请解释一下SQL语言中的DDL、DML和DQL的概念。
答:DDL(Data Definition Language)用于定义数据库的结构或模式,如CREATE、ALTER和DROP等操作。
DML(Data Manipulation Language)用于操作数据库中的数据,如INSERT、UPDATE和DELETE等操作。
DQL(Data Query Language)用于查询数据库中的数据,如SELECT等操作。
3. 什么是数据库索引,以及为什么要使用索引?答:数据库索引是一种特殊的数据结构,用于加速对数据库表中数据的查询。
使用索引可以减少查询数据的IO消耗,提高查询效率。
索引的创建需要占用额外的存储空间,并在数据变更时维护索引,因此需要权衡存储空间和查询性能之间的关系。
4. 请简要介绍关系数据库设计中的三大范式。
答:第一范式(1NF)要求字段具有原子性,即每个字段的值不可再分。
第二范式(2NF)要求表中的非主键字段完全依赖于主键,不能存在部分依赖。
第三范式(3NF)要求表中的非主键字段与主键字段不存在传递依赖。
5. 如何进行数据库性能优化?答:数据库性能优化可以从多个方面入手。
首先,合理设计数据库结构,包括表、索引和关联等。
其次,编写高效的SQL查询语句,避免全表扫描和重复查询。
再次,定期优化数据库的配置参数,如缓冲区大小、连接数等。
数据库面试题大全以下是一些常见的数据库面试题目:1. 什么是数据库?请简要描述数据库的基本概念。
2. 请解释一下关系型数据库和非关系型数据库的区别。
3. 什么是SQL?请简要描述SQL的作用和用途。
4. 什么是主键和外键?请举例说明它们在数据库中的作用。
5. 什么是索引?请简要描述索引的作用和优缺点。
6. 请解释一下事务的概念,以及事务的隔离级别。
7. 请解释一下数据库的连接池和它的作用。
8. 什么是数据库触发器?请简要描述触发器的作用和用途。
9. 什么是存储过程?请简要描述存储过程的作用和用途。
10. 什么是视图?请简要描述视图的作用和用途。
11. 请解释一下数据库的规范化,以及规范化的好处。
12. 请解释一下数据库的性能优化,以及如何进行性能优化。
13. 请描述一下你如何处理数据库中的重复数据。
14. 什么是数据库备份和恢复?请简要描述备份和恢复的方法。
15. 请解释一下数据库的并发控制,以及并发控制的方法。
16. 请解释一下数据库的分区,以及分区的好处。
17. 什么是数据库的乐观锁和悲观锁?请简要描述它们的区别和用途。
18. 请解释一下数据库的日志和日志的重要性。
19. 什么是数据库的联接?请简要描述不同类型的联接(如内联接、左外联接、右外联接、全外联接等)。
20. 请解释一下数据库的索引,以及如何使用索引来提高查询性能。
21. 请解释一下数据库的性能优化,以及如何进行性能优化。
22. 什么是数据库的安全性?如何保证数据库的安全性?23. 请解释一下数据库的视图,以及视图的用途和优点。
24. 什么是数据库的游标?游标在数据库中有什么用途?25. 请解释一下数据库的存储过程和函数,以及它们的用途和优点。
数据库基础面试题目及答案数据库是计算机系统中用于存储和管理数据的软件工具。
在数据库管理系统(DBMS)中,我们可以通过使用结构化查询语言(SQL)来操作和查询数据库。
数据库技术在信息管理和数据处理方面扮演着至关重要的角色。
下面是一些数据库基础面试题及其答案,帮助你更好地了解和掌握数据库知识。
1. 什么是数据库?数据库是一个组织和存储数据的集合。
它允许用户通过使用各种操作和查询语言来访问和管理数据。
2. 数据库管理系统(DBMS)的作用是什么?数据库管理系统(DBMS)是用于创建、维护和管理数据库的软件工具。
它负责处理数据库的安全性、完整性、一致性和持久性等方面的问题。
3. 什么是SQL?SQL是结构化查询语言(Structured Query Language)的缩写。
它是一种用于处理关系数据库的标准语言,用于执行查询、插入、更新和删除操作。
4. 数据库中,主键的作用是什么?主键是一列或一组列,其值能唯一标识表中的每一行数据。
它具有唯一性以及非空性的特性,能够确保数据库表中的数据完整性和一致性。
5. 什么是外键?外键是用于建立表与表之间关系的一种约束。
它指向另一个表中的主键,用于保持数据的完整性和一致性。
6. 数据库中的范式是什么意思?范式是设计关系数据库时的一种规范化方法。
它有助于减少数据冗余、提高数据的完整性和一致性。
7. 数据库索引的作用是什么?数据库索引是一种数据结构,用于提高数据的查询性能。
通过创建索引,可以加快数据的查找速度,减少查询操作的时间复杂度。
8. 数据库事务是什么?数据库事务是一系列数据库操作的逻辑单元,是数据库管理系统中确保数据一致性和完整性的重要机制。
事务具有原子性、一致性、隔离性和持久性(ACID)的特性。
9. 数据库锁是什么?有哪些类型的锁?数据库锁是一种机制,用于协调并发访问数据库资源。
主要有共享锁(Shared Lock)和排他锁(Exclusive Lock)两种类型。
第1篇1. 请简述数据库的基本概念。
2. 什么是数据库管理系统(DBMS)?3. 请列举数据库的主要功能。
4. 什么是数据库的三级模式结构?5. 请简述数据库的ACID原则。
6. 什么是数据库的事务?7. 什么是数据库的并发控制?8. 什么是数据库的恢复机制?9. 什么是数据库的索引?10. 什么是数据库的视图?11. 什么是数据库的存储过程?12. 什么是数据库的触发器?13. 什么是数据库的权限控制?14. 什么是数据库的备份与恢复?15. 什么是数据库的规范化理论?二、SQL语言16. 什么是SQL?17. SQL语句主要分为哪几类?18. 什么是数据定义语言(DDL)?19. 什么是数据查询语言(DQL)?20. 什么是数据操纵语言(DML)?21. 什么是数据控制语言(DCL)?22. 什么是SQL中的SELECT语句?23. 什么是SQL中的INSERT语句?24. 什么是SQL中的UPDATE语句?25. 什么是SQL中的DELETE语句?26. 什么是SQL中的JOIN语句?27. 什么是SQL中的WHERE子句?28. 什么是SQL中的ORDER BY子句?29. 什么是SQL中的GROUP BY子句?30. 什么是SQL中的HAVING子句?31. 什么是SQL中的子查询?32. 什么是SQL中的递归查询?33. 什么是SQL中的UNION和UNION ALL?34. 什么是SQL中的视图?35. 什么是SQL中的存储过程?36. 什么是SQL中的触发器?37. 什么是SQL中的事务?38. 什么是SQL中的索引?39. 什么是SQL中的约束?40. 什么是SQL中的分区?41. 什么是SQL中的全文索引?42. 什么是SQL中的物化视图?43. 什么是SQL中的CTE(公用表表达式)?44. 什么是SQL中的临时表和表变量?45. 什么是SQL中的游标?46. 什么是SQL中的事务隔离级别?47. 什么是SQL中的锁?48. 什么是SQL中的优化器?49. 什么是SQL中的分区键和分区函数?50. 什么是SQL中的分区表?三、数据库设计51. 什么是数据库设计?52. 数据库设计的主要步骤有哪些?53. 什么是ER图(实体-关系图)?54. 什么是数据库规范化?55. 什么是第一范式(1NF)、第二范式(2NF)、第三范式(3NF)?56. 什么是BCNF(Boyce-Codd范式)?57. 什么是第四范式(4NF)和第五范式(5NF)?58. 什么是数据库的实体完整性?59. 什么是数据库的参照完整性?60. 什么是数据库的用户视图?61. 什么是数据库的完整性约束?62. 什么是数据库的数据完整性?63. 什么是数据库的逻辑设计?64. 什么是数据库的物理设计?65. 什么是数据库的索引设计?66. 什么是数据库的分区设计?67. 什么是数据库的视图设计?68. 什么是数据库的存储过程设计?69. 什么是数据库的触发器设计?70. 什么是数据库的备份与恢复设计?四、数据库性能优化71. 什么是数据库性能优化?72. 数据库性能优化的主要方法有哪些?73. 什么是查询优化?74. 什么是索引优化?75. 什么是数据库分区优化?76. 什么是数据库缓存优化?77. 什么是数据库锁优化?78. 什么是数据库并发控制优化?79. 什么是数据库的分区键选择?80. 什么是数据库的分区函数选择?81. 什么是数据库的分区表设计?82. 什么是数据库的视图优化?83. 什么是数据库的存储过程优化?84. 什么是数据库的触发器优化?85. 什么是数据库的备份与恢复优化?86. 什么是数据库的硬件优化?87. 什么是数据库的软件优化?88. 什么是数据库的数据库引擎优化?89. 什么是数据库的SQL语句优化?90. 什么是数据库的数据库配置优化?五、数据库系统91. 什么是数据库系统?92. 数据库系统的组成有哪些?93. 什么是数据库系统架构?94. 什么是数据库系统模式?95. 什么是数据库系统安全?96. 什么是数据库系统备份与恢复?97. 什么是数据库系统监控?98. 什么是数据库系统维护?99. 什么是数据库系统迁移?100. 什么是数据库系统性能评估?以上100个数据库面试题目涵盖了数据库基础知识、SQL语言、数据库设计、数据库性能优化以及数据库系统等方面。
第1篇一、基础知识1. 请简述数据库的基本概念及其在银行系统中的作用。
解析:数据库是按照数据结构来组织、存储和管理数据的仓库。
在银行系统中,数据库用于存储和管理客户信息、交易记录、财务数据等,是银行信息化建设的基础。
2. 请列举数据库的几种类型,并简要说明它们的特点。
解析:(1)关系型数据库:以表格形式存储数据,便于查询和统计,如MySQL、Oracle 等。
(2)非关系型数据库:以键值对、文档、图形等非表格形式存储数据,具有高扩展性、易扩展性等特点,如MongoDB、Redis等。
(3)分布式数据库:将数据分布存储在多个物理位置上,提高数据访问速度和系统可靠性,如HBase、Cassandra等。
3. 请简述SQL语言的基本功能。
解析:SQL(Structured Query Language)是一种用于管理关系型数据库的语言,主要功能包括:(1)数据定义:创建、修改、删除数据库中的表、索引等。
(2)数据查询:通过SELECT语句查询数据库中的数据。
(3)数据更新:通过INSERT、UPDATE、DELETE语句插入、更新、删除数据库中的数据。
(4)数据控制:通过GRANT、REVOKE语句控制数据库访问权限。
4. 请简述数据库的规范化理论及其在数据库设计中的作用。
解析:规范化理论是数据库设计中的一项重要原则,其主要目的是消除数据冗余和依赖,提高数据的一致性和完整性。
规范化理论包括以下级别:(1)第一范式(1NF):字段值不可再分。
(2)第二范式(2NF):满足1NF,且非主属性完全依赖于主键。
(3)第三范式(3NF):满足2NF,且非主属性不依赖于其他非主属性。
(4)BCNF(Boyce-Codd范式):满足3NF,且每个非平凡函数依赖都由超键决定。
二、数据库设计5. 请简述数据库设计的基本步骤。
解析:(1)需求分析:了解系统需求,包括数据需求、功能需求等。
(2)概念设计:将需求分析结果转化为概念模型,如E-R图。
Oracle常见面试题1、对数据库SQL2005、ORACLE熟悉吗?SQL2005是微软公司的数据库产品。
是一个RDBMS数据库,一般应用在一些中型数据库的应用,不能跨平台。
ORACLE是ORACLE公司的数据产品,支持海量数据存储,支持分布式布暑,支持多用户,跨平台,数据安全完整性控制性能优越,是一个ORDBMS,一般用在大型公司。
2、能不能设计数据库?如何实现数据库导入与导出的更新使用POWERDISINE工具的使用,一般满足第三范式就可以了。
EXP与IMP数据库的逻辑导入与导出3、如何只显示重复数据,或不显示重复数据显示重复:select * from tablename group by id having count(*)>1不显示重复:select * from tablename group by id having count(*)=14、什么是数据库的映射就是将数据库的表与字段对应到模型层类名与属性的过程.5、写分页有哪些方法,你一般用什么方法?用SQL语句写一个分页?如何用存储过程写分页?在SQLSERVER中使用TOP分页,在ORACLE中用ROWNUM,或分析函数ROW_NUMBER使用TOP:select top 20,n.* from tablename n minus select top 10,m.* from tablename m使用分析函数:select * from(select n.*,row_number() over(order by columnname) num from tablename n)where num>=10 and num <=20;使用过程时,只要将分页的范围用两个参数就可以实现。
在ORACLE中,要将过程封装在包里,还要用动态游标变量才能实现数据集的返回。
6、ORACLE中左连接与右连接左连接:LEFT JOIN 右连接:RIGHT JOINselect n.column,m.column from tablename1 n left join tablename2 mon n.columnname=m.columnname用WHERE实现:select n.column,m.column from tablename1 n,tablename2 mwhere n.columnname(+)=m.columnname7、什么是反射、序列化、反序列化?事务有几种级别?反射是在程序运行时动态访问DDL的一种方式。
序列化是将对象对二进制、XML等方式直接向文件的存储。
反序列化是将存储到文件的对象取出的过程。
事务的级别的三种:页面级、应用程序级、数据库级。
8、数据测试如何测试?在PLSQL里对过程或函数可能通过专用的测试工具,通过对9、用事务的时候,如果在业务逻辑层中,调用数据库访问层中的方法,访问层中有很多类,类又有很多方法,每个方法都要实现,那么如何处理?通用数据访问层的实现10、什么时候会用到触发器A安全管理、B日志管理、C复杂业务逻辑实现11、如何在数据库中显示树控制?用父ID与子ID来实现12、如何实现数据库的优化?A、调整数据结构的设计。
这一部分在开发信息系统之前完成,程序员需要考虑是否使用ORACLE数据库的分区功能,对于经常访问的数据库表是否需要建立索引等。
B、调整应用程序结构设计。
这一部分也是在开发信息系统之前完成,程序员在这一步需要考虑应用程序使用什么样的体系结构,是使用传统的Client/Server两层体系结构,还是使用Browser/Web/Database的三层体系结构。
不同的应用程序体系结构要求的数据库资源是不同的。
C、调整数据库SQL语句。
应用程序的执行最终将归结为数据库中的SQL语句执行,因此SQL语句的执行效率最终决定了ORACLE数据库的性能。
ORACLE公司推荐使用ORACLE语句优化器(Oracle Optimizer)和行锁管理器(row-level manager)来调整优化SQL语句。
D、调整服务器内存分配。
内存分配是在信息系统运行过程中优化配置的,数据库管理员可以根据数据库运行状况调整数据库系统全局区(SGA区)的数据缓冲区、日志缓冲区和共享池的大小;还可以调整程序全局区(PGA区)的大小。
需要注意的是,SGA区不是越大越好,SGA区过大会占用操作系统使用的内存而引起虚拟内存的页面交换,这样反而会降低系统。
E、调整硬盘I/O,这一步是在信息系统开发之前完成的。
数据库管理员可以将组成同一个表空间的数据文件放在不同的硬盘上,做到硬盘之间I/O负载均衡。
F、调整操作系统参数,例如:运行在UNIX操作系统上的ORACLE数据库,可以调整UNIX数据缓冲池的大小,每个进程所能使用的内存大小等参数。
13. 如何使用Oracle的游标?1). oracle中的游标分为显示游标和隐式游标2). 显示游标是用cursor...is命令定义的游标,它可以对查询语句(select)返回的多条记录进行处理;隐式游标是在执行插入 (insert)、删除(delete)、修改(update)和返回单条记录的查询(select)语句时由PL/SQL自动定义的。
3). 显式游标的操作:打开游标、操作游标、关闭游标;PL/SQL隐式地打开SQL游标,并在它内部处理SQL语句,然后关闭它14. Oracle的导入导出有几种方式,有何区别?1). 使用oracle工具 exp/imp2). 使用plsql相关工具方法1. 导入/导出的是二进制的数据,2.plsql导入/导出的是sql语句的文本文件15. Oracle是怎样分页的?Oracle中使用rownum来进行分页, 这个是效率最好的分页方法,hibernate也是使用rownum来进行oralce分页的select * from( select rownum r,a from tabName where rownum <= 20 )where r > 1016. Oracle中使用了索引的列,对该列进行where条件查询、分组、排序、使用聚集函数,哪些用到了索引?均会使用索引,值得注意的是复合索引(如在列A和列B上建立的索引)可能会有不同情况v17. Oracle中where条件查询和排序的性能比较?Order by使用索引的条件极为严格,只有满足如下情况才可以使用索引,1). order by中的列必须包含相同的索引并且索引顺序和排序顺序一致2). 不能有null值的列所以排序的性能往往并不高,所以建议尽量避免order by18. 解释冷备份和热备份的不同点以及各自的优点?冷备份发生在数据库已经正常关闭的情况下,将关键性文件拷贝到另外位置的一种说法热备份是在数据库运行的情况下,采用归档方式备份数据的方法冷备的优缺点:1).是非常快速的备份方法(只需拷贝文件)2).容易归档(简单拷贝即可)3).容易恢复到某个时间点上(只需将文件再拷贝回去)4).能与归档方法相结合,作数据库“最新状态”的恢复。
5).低度维护,高度安全。
冷备份不足:1).单独使用时,只能提供到“某一时间点上”的恢复。
2).在实施备份的全过程中,数据库必须要作备份而不能作其它工作。
也就是说,在冷备份过程中,数据库必须是关闭状态。
3).若磁盘空间有限,只能拷贝到磁带等其它外部存储设备上,速度会很慢。
4).不能按表或按用户恢复。
热备的优缺点1).可在表空间或数据文件级备份,备份时间短。
2).备份时数据库仍可使用。
3).可达到秒级恢复(恢复到某一时间点上)。
4).可对几乎所有数据库实体作恢复。
5).恢复是快速的,在大多数情况下在数据库仍工作时恢复。
热备份的不足是:1).不能出错,否则后果严重。
2).若热备份不成功,所得结果不可用于时间点的恢复。
3).因难于维护,所以要特别仔细小心,不允许“以失败而告终”。
19. 解释什么是死锁,如何解决Oracle中的死锁?简言之就是存在加了锁而没有解锁,可能是使用锁没有提交或者回滚事务,如果是表级锁则不能操作表,客户端处于等在状态,如果是行级锁则不能操作锁定行解决办法:1). 查找出被锁的表select b.owner,b.object_name,a.session_id,a.locked_modefrom v$locked_object a,dba_objects bwhere b.object_id = a.object_id;select ername,b.sid,b.serial#,logon_timefrom v$locked_object a,v$session bwhere a.session_id = b.sid order by b.logon_time;2). 杀进程中的会话alter system kill session "sid,serial#";20. 简述oracle中 dml、ddl、dcl的使用Dml 数据操纵语言,如select、update、delete,insertDdl 数据定义语言,如create table 、drop table 等等Dcl 数据控制语言,如 commit、 rollback、grant、 invoke等21. 说说oracle中的经常使用到得函数Length 长度、 lower 小写、upper 大写, to_date 转化日期, to_char转化字符Ltrim 去左边空格、 rtrim去右边空格,substr取字串,add_month增加或者减掉月份、to_number转变为数字22. 怎样创建一个一个索引,索引使用的原则,有什么优点和缺点创建标准索引:CREATE INDEX 索引名 ON 表名 (列名) TABLESPACE 表空间名;创建唯一索引:CREATE unique INDEX 索引名 ON 表名 (列名) TABLESPACE 表空间名;创建组合索引:CREATE INDEX 索引名 ON 表名 (列名1,列名2) TABLESPACE 表空间名;创建反向键索引:CREATE INDEX 索引名 ON 表名 (列名) reverse TABLESPACE 表空间名;索引使用原则:索引字段建议建立NOT NULL约束经常与其他表进行连接的表,在连接字段上应该建立索引;经常出现在Where子句中的字段且过滤性很强的,特别是大表的字段,应该建立索引;可选择性高的关键字,应该建立索引;可选择性低的关键字,但数据的值分布差异很大时,选择性数据比较少时仍然可以利用索引提高效率复合索引的建立需要进行仔细分析;尽量考虑用单字段索引代替:A、正确选择复合索引中的第一个字段,一般是选择性较好的且在where子句中常用的字段上;B、复合索引的几个字段经常同时以AND方式出现在Where子句中可以建立复合索引;否则单字段索引;C、如果复合索引中包含的字段经常单独出现在Where子句中,则分解为多个单字段索引;D、如果复合索引所包含的字段超过3个,那么仔细考虑其必要性,考虑减少复合的字段;E、如果既有单字段索引,又有这几个字段上的复合索引,一般可以删除复合索引;频繁DML的表,不要建立太多的索引;不要将那些频繁修改的列作为索引列;索引的优缺点:有点:1. 创建唯一性索引,保证数据库表中每一行数据的唯一性2. 大大加快数据的检索速度,这也是创建索引的最主要的原因3. 加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。