简答题-带答案_第1页
简答题-带答案_第2页
简答题-带答案_第3页
简答题-带答案_第4页
简答题-带答案_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1. Oracle 跟 SQL Server 2005 的区别?宏观上:1) . 最大的区别在于平台, oracle 可以运行在不同的平台上, sql server 只能 运行在 windows 平台上,由于 windows 平台的稳定性和安全性影响了 sql server 的稳定性和安全性2) . oracle 使用的脚本语言为 PL-SQL,而 sql server 使用的脚本为 T-SQL 微观上: 从数据类型 , 数据库的结构等等回答2. 如何使用 Oracle 的游标?1) . oracle 中的游标分为显示游标和隐式游标2) . 显示游标是用 cursor.is 命令定义的游标,它

2、可以对查询语句 (select) 返回的多条记录进行处理;隐式游标是在执行插入 (insert) 、删除 (delete) 、 修改 (update) 和返回单条记录的查询 (select) 语句时由 PL/SQL自动定义的。3) . 显式游标的操作:打开游标、操作游标、关闭游标; PL/SQL隐式地打开 SQL 游标,并在它内部处理 SQL语句,然后关闭它3. Oracle 中 function 和 procedure 的区别?1) . 可以理解函数是存储过程的一种2) . 函数可以没有参数 ,但是一定需要一个返回值, 存储过程可以没有参数 ,不需 要返回值3) . 函数 return 返回

3、值没有返回参数模式,存储过程通过 out 参数返回值 , 如 果需要返回多个参数则建议使用存储过程4) . 在 sql 数据操纵语句中只能调用函数而不能调用存储过程4. Oracle 的导入导出有几种方式,有何区别?1) . 使用 oracle 工具 exp/imp2) . 使用 plsql 相关工具方法 1. 导入/ 导出的是二进制的数据, 2.plsql 导入/ 导出的是 sql 语句的文本 文件5. Oracle 中有哪几种文件?数据文件(一般后缀为 .dbf 或者.ora ),日志文件 (后缀名.log) ,控制文件(后 缀名为 .ctl )6. 怎样优化 Oracle 数据库,有几种

4、方式? 个人理解,数据库性能最关键的因素在于 IO,因为操作内存是快速的,但是读 写磁盘是速度很慢的,优化数据库最关键的问题在于减少磁盘的IO,就个人理解应该分为物理的和逻辑的优化, 物理的是指 oracle 产品本身的一些优化, 逻 辑优化是指应用程序级别的优化 物理优化的一些原则:1) . Oracle 的运行环境(网络,硬件等)2) . 使用合适的优化器3) . 合理配置 oracle 实例参数4) . 建立合适的索引(减少 IO)5) . 将索引数据和表数据分开在不同的表空间上(降低 IO 冲突)6) . 建立表分区,将数据分别存储在不同的分区上(以空间换取时间,减少IO)逻辑上优化:

5、1) . 可以对表进行逻辑分割,如中国移动用户表,可以根据手机尾数分成 10 个 表,这样对性能会有一定的作用2) . Sql 语句使用占位符语句,并且开发时候必须按照规定编写 sql 语句(如全 部大写,全部小写等) oracle 解析语句后会放置到共享池中如: select * from Emp where name=?这个语句只会在共享池中有一条,而如果是字符串的话,那就根据不同名字存在不同的语句,所以占位符效率较好3) . 数据库不仅仅是一个存储数据的地方, 同样是一个编程的地方, 一些耗时的 操作,可以通过存储过程等在用户较少的情况下执行, 从而错开系统使用的高峰 时间,提高数据库性

6、能4) . 尽量不使用 * 号,如 select * from Emp ,因为要转化为具体的列名是要查 数据字典,比较耗时5) . 选择有效的表名 对于多表连接查询,可能 oracle 的优化器并不会优化到这个程度, oracle 中 多表查询是根据 FROM字句从右到左的数据进行的,那么最好右边的表(也就是 基础表)选择数据较少的表, 这样排序更快速, 如果有 link 表(多对多中间表) , 那么将 link 表放最右边作为基础表, 在默认情况下 oracle 会自动优化, 但是如 果配置了优化器的情况下, 可能不会自动优化, 所以平时最好能按照这个方式编 写 sql6) . Where

7、字句 规则Oracle 中 Where字句时从右往左处理的,表之间的连接写在其他条件之前,能 过滤掉非常多的数据的条件,放在 where 的末尾, 另外!= 符号比较的列将不使 用索引,列经过了计算(如变大写等)不会使用索引(需要建立起函数) , is null 、 is not null 等优化器不会使用索引7) . 使用 Exits Not Exits 替代 In Not in8) . 合理使用事务,合理设置事务隔离性 数据库的数据操作比较消耗数据库资源的, 尽量使用批量处理, 以降低事务操作 次数7. Oracle 中字符串用什么符号链接?Oracle 中使用 | 这个符号连接字符串 如

8、 abc | d8. Oracle 分区是怎样优化数据库的 ?Oracle 的分区可以分为:列表分区、范围分区、散列分区、复合分区。1) . 增强可用性:如果表的一个分区由于系统故障而不能使用,表的其余好的 分区仍可以使用;2) . 减少关闭时间:如果系统故障只影响表的一部份分区,那么只有这部份分 区需要修复,可能比整个大表修复花的时间更少;3) . 维护轻松:如果需要得建表,独产管理每个公区比管理单个大表要轻松得 多;4) . 均衡 I/O :可以把表的不同分区分配到不同的磁盘来平衡 I/O 改善性能;5) . 改善性能:对大表的查询、增加、修改等操作可以分解到表的不同分区来 并行执行,可使

9、运行速度更快6) . 分区对用户透明,最终用户感觉不到分区的存在。9. Oracle 是怎样分页的?Oracle 中使用 rownum来进行分页 , 这个是效率最好的分页方法, hibernate 也 是使用 rownum来进行 oralce 分页的 select * from( select rownum r,a from tabName where rownum 1010. Oralce 怎样存储文件,能够存储哪些文件?Oracle 能存储 clob 、nclob 、 blob 、 bfileClob 可变长度的字符型数据,也就是其他数据库中提到的文本型数据类型 Nclob 可变字符类型的

10、数据,不过其存储的是 Unicode 字符集的字符数据 Blob 可变长度的二进制数据Bfile 数据库外面存储的可变二进制数据11. Oracle 中使用了索引的列,对该列进行 where 条件查询、分组、排序、使 用聚集函数,哪些用到了索引?均会使用索引, 值得注意的是复合索引(如在列 A 和列 B上建立的索引)可能 会有不同情况12. 数据库怎样实现每隔 30 分钟备份一次? 通过操作系统的定时任务调用脚本导出数据库13. Oracle 中 where 条件查询和排序的性能比较? Order by 使用索引的条件极为严格,只有满足如下情况才可以使用索引,1) . order by 中的列

11、必须包含相同的索引并且索引顺序和排序顺序一致2) . 不能有 null 值的列 所以排序的性能往往并不高,所以建议尽量避免 order by14. 解释冷备份和热备份的不同点以及各自的优点? 冷备份发生在数据库已经正常关闭的情况下, 将关键性文件拷贝到另外位置的一 种说法热备份是在数据库运行的情况下,采用归档方式备份数据的方法 冷备的优缺点:1) 是非常快速的备份方法(只需拷贝文件)2) 容易归档(简单拷贝即可)3) 容易恢复到某个时间点上(只需将文件再拷贝回去)4) 能与归档方法相结合,作数据库“最新状态”的恢复。5) 低度维护,高度安全。 冷备份不足:1) 单独使用时,只能提供到“某一时间

12、点上”的恢复。2) 在实施备份的全过程中, 数据库必须要作备份而不能作其它工作。 也就是说, 在冷备份过程中,数据库必须是关闭状态。3) 若磁盘空间有限,只能拷贝到磁带等其它外部存储设备上,速度会很慢。4) 不能按表或按用户恢复。热备的优缺点1) 可在表空间或数据文件级备份,备份时间短。2) 备份时数据库仍可使用。3) 可达到秒级恢复(恢复到某一时间点上)。4) 可对几乎所有数据库实体作恢复。5) 恢复是快速的,在大多数情况下在数据库仍工作时恢复。 热备份的不足是:1) 不能出错,否则后果严重。2) 若热备份不成功,所得结果不可用于时间点的恢复。3) 因难于维护,所以要特别仔细小心,不允许“以

13、失败而告终”。15. 解释 data block , extent和 segment 的区别?data block 数据块,是 oracle 最小的逻辑单位,通常 oracle 从磁盘读写的就 是块extent 区,是由若干个相邻的 block 组成segment 段,是有一组区组成tablespace 表空间,数据库中数据逻辑存储的地方,一个 tablespace 可以包含 多个数据文件16. 比较 truncate 和 delete 命令 ?1). Truncate 和 delete 都可以将数据实体删掉, truncate 的操作并不记录到 rollback 日志,所以操作速度较快,但同

14、时这个数据不能恢复2). Delete 操作不腾出表空间的空间3) . Truncate 不能对视图等进行删除4) . Truncate 是数据定义语言( DDL),而 delete 是数据操纵语言 (DML)17. 解释什么是死锁,如何解决 Oracle 中的死锁? 简言之就是存在加了锁而没有解锁, 可能是使用锁没有提交或者回滚事务, 如果 是表级锁则不能操作表, 客户端处于等在状态, 如果是行级锁则不能操作锁定行 解决办法:1). 查找出被锁的表select b.owner,b.object_name,a.session_id,a.locked_modefrom v$locked_obje

15、ct a,dba_objects bwhere b.object_id = a.object_id;select b.username,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#;18. 简述 oracle 中 dml 、ddl 、 dcl 的使用Dml 数据操纵语言,如 select 、update 、delete ,ins

16、ertDdl 数据定义语言,如 create table 、 drop table 等等Dcl 数据控制语言, 如 commit 、 rollback 、grant 、 invoke 等19. 说说 oracle 中的经常使用到得函数Length 长度、 lower 小写、 upper 大写, to_date 转化日期, to_char 转化 字符Ltrim 去左边空格、 rtrim 去右边空格, substr 取字串, add_month增加或者 减掉月份、 to_number 转变为数字20、什么是 DBA?Data base administract 21、SQL语言的主要特点是什么综合

17、统一;高度非过程化;面向集合的操作方式;以同一种语法提供 两种操作方式;语言简洁,易学易用。22、简单介绍几种当前流行的关系数据库系统?Oracle,MySql,MsSql,DB2,Sybase23、从硬件角度指出提高 ORACLE运行速度的方法? 加大内存,加大硬盘缓存。24、简单介绍 ORACLE的物理结构? 数据文件、日志文件、控制文件、配置文件25、介绍日志的种类,各种日志的运行机制,各有什么优缺点? 日志可分为:归档模式和不归档模式两种。归档模式运行机制是:重复写数据,当文件写满重新备份再写、恢复强、占 空间。特点是:缺点 占地方 优点 恢复能力强。非归档模式的运行机制是:不备份,恢

18、复能力有限。特点是:缺点 占空间小 优点 恢复能力差。26、写出序列在实际操作中的作用。产生一断连续不断的数据 答:序列是多个用户能够在此产生唯一整数的数据库对象,可以用序列自动 产生主键值。序列是一个连续数字生成器。序列通过提供唯一数值的顺序来简 化程序设计工作。27、写出一个 SQL语句,语句当中需要使用到“同义词”。Select * from system.table1 a,system.table2 b where =;28、写出一个数据字典的应用(所有用户: all_users ) select * from all_users;29、创建数据库的两个用户的名

19、称和密码 sys/sys as sysdba scott/tiger30、在用 OMS/OEM建立数据库时,什么情况下使用“数据仓库”类型,什么情况 使用“事务处理”类型?当数据库必须处理大量的复杂查询,这些复杂查询将涉及到数据库中大量 的表和记录,并且大部分查询都是 只读的时候,使用“数据仓库”类型。当数据库每天必须处理来自许多并发用户的成千乃至上百的事务,用户必 须能够快速访问到最新数据的时候,使用“事务处理”类型。31、建立数据库时,“专用服务器模式”和“共享服务器模式”的区别是? 在专用服务器模式下,每个用户进程都对应有一个专用的服务器进程为其 提供服务。如果同时存在大量的用 户进程,

20、就需要启动同样数量的服务器进 程。在共享服务器模式下, Oracle 始终保持一定数量的服务器进程,每个用户 进程由调度器进程分配一个服务器进程为该客户进程提供服务。这样只需要少 量的服务器进程就可以为大量的客户进程服务。32、写出三种以上常用的数据类型。Numbervarchar2charbooleandaterealfloat 33、在创建表时有几种方式,并列出相应的作用? 数据库建立时建立了一组方案,每个方案对应一个角色。建表时选择方案 就是将表的所有权给了这个角色, 以后对该表操作时,要以这个角色或这 个角色权限相当的用户进行。34、唯一性约束和非空约束的作用是?唯一约束用于保证那些应

21、具有唯一性而又不是主键的一部分的列的唯一 性。非空约束保护的数据列必须要有数据值。35、delete 与 truncate 区别是?Delete 删除数据可用 rollback 回滚,而 truncate 不可以。36、DESC student 的作用? 展现 student 的表结构37、使用上题中的表,写出 SQL语句完成如下功能:在表中查出年龄大于 20, 且名字以“王”开头的记录,并且按照 年龄的倒叙排列出来(年龄大的在前面)。Select * from system.table1 where age20 and name like 王 % orderby age DESC;38、写出

22、 decode(),replace(),trim()的参数及使用方法。1 、 decode( 字段, a,A,b,B,c)If字段=a, 则返回 A;If字段=b, 则返回BElse返回 C2 、replace( 字段, A,B)A 表示字段中要被替掉的部分B 表示字段中替换的部分3 、trim( 字段) 表示去掉字段中的空格Ltrim(字段)表示去掉字段左边的空格Rtrim(字段)表示去掉字段右边的空格39、写出 PL/SQL程序的三个组成部分。 声明部分,异常处理部分,执行部分40、描述数据的三个范式的定义: 属性的原子性,非主属性对主键的依赖;非主属性之间不互相依赖。41、有一个 ora

23、cle 的数据库 , 内有一个存储学生信息的表 (Student), 包括学号 (id), 姓名(Name), 年龄(Age), 性别(sex), 班级(Classid) 。问题一:查询年龄在 20 和 30 之间的学生由多少人。Select count(*) from student where age age=20 and age1 不显示重复: select * from tablename group by id having count(*)=171、什么是数据库的映射就是将数据库的表与字段对应到模型层类名与属性的过程72、写分页有哪些方法,你一般用什么方法?用 SQL语句写一个分页

24、? 如何用存储过程写分页?在 SQLSERVE中R使用 TOP分页,在 ORACL中E 用 ROWNU,或M 分析函数 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;使用过程时, 只要将分页的范围用两个参数就可以实现。 在OR

25、ACLE中,要将过程封装在包里,还要用动态游标变量才能实现数据集的返回。73、ORACLE中左连接与右连接左连接: LEFT JOIN 右连接: RIGHT JOINselect n.column,m.column from tablename1 n left join tablename2 mon n.columnname=m.columnname用 WHER实E 现:select n.column,m.column from tablename1 n, tablename2 mwhere n.columnname(+)=m.columnname74、什么是反射、序列化、反序列化?事务有几种

26、级别? 反射是在程序运行时动态访问 DDL的一种方式。序列化是将对象对二进制、XML等方式直接向文件的存储。反序列化是将存储到文件的对象取出的过程。事 务的级别的三种:页面级、应用程序级、数据库级。75、数据测试如何测试?在 PLSQL里对过程或函数可能通过专用的测试工具,通过对76、用事务的时候,如果在业务逻辑层中,调用数据库访问层中的方法,访问层 中有很多类,类又有很多方法,每个方法都要实现,那么如何处理? 通用数据访问层的实现77、什么时候会用到触发器A 安全管理、 B日志管理、 C复杂业务逻辑实现78、如何在数据库中显示树控制?用父 ID 与子 ID 来实现79、如何实现数据库的优化?

27、A 、调整数据结构的设计。这一部分在开发信息系统之前完成,程序员需要 考虑是否使用 ORACLE数据库的分区功能,对于经常访问的数据库表是否需要建 立索引等。B 、调整应用程序结构设计。这一部分也是在开发信息系统之前完成,程序 员在这一步需要考虑应用程序使用什么样的体系结构,是使用传统的 Client/Server 两层体系结构,还是使用 Browser/Web/Database 的三层体系结 构。不同的应用程序体系结构要求的数据库资源是不同的。C 、调整数据库 SQL语句。应用程序的执行最终将归结为数据库中的 SQL语 句执行,因此 SQL语句的执行效率最终决定了 ORACLE数据库的性能。

28、 ORACLE公 司推荐使用 ORACLE语句优化器( Oracle Optimizer )和行锁管理器( row-level manager)来调整优化 SQL语句。D 、调整服务器内存分配。内存分配是在信息系统运行过程中优化配置的, 数据库管理员可以根据数据库运行状况调整数据库系统全局区( SGA区)的数据 缓冲区、 日志缓冲区和共享池的大小; 还可以调整程序全局区 (PGA区)的大小。 需要注意的是, SGA区不是越大越好, SGA区过大会占用操作系统使用的内存而 引起虚拟内存的页面交换,这样反而会降低系统。E 、调整硬盘 I/O ,这一步是在信息系统开发之前完成的。数据库管理员可以将组

29、成同一个表空间的数据文件放在不同的硬盘上, 做到硬盘之间 I/O 负载均 衡。F 、调整操作系统参数,例如:运行在 UNIX操作系统上的 ORACLE数据库, 可以调整 UNIX数据缓冲池的大小,每个进程所能使用的内存大小等参数。80、把表 A 从表空间 TSP1更改成表空间 TSP2的方法 解答: alter table A move tablespace TSP281. 删除表的列;解答: alert table表名 drop 列名82. 删除表空间的数据文件?解答:用 SQLPLUS命令 : drop tablespace tablename including contents就可以把

30、所有相关的数据删除83. 如何用 ALTER命令把表数据加到缓存表里,清除呢? 解答:添加: alert table 表名 cache 清除: alert table表名 nocache84数据的复制实现办法? 解答:数据复制,就是将数据库中的数据拷贝到另外一个或多个不同的物理站点 上,从而保持源数据库与目标数据库中指定数据的一致性。数据复制的实现方法: 在具体的实现之前, 首先要做好设计与规划。 这就需要细 致分析具体的业务情况, 设计出一套能够满足业务需要的方案。 通常在设计过程 中,需要确定出要建立的数据库站点,各站点的类型,需要复制的数据对象,以 及同步方式、冲突解决方案等内容。数据复制的实现主要包括以下几步: (1) 创建复制站点。 (2) 创建组对象。 (3) 配 置冲突解决方案。85、在建立 ORACLE数据库时,选择“事务处理”模板与选用“数据仓库”模板 的区别是什么?解答:事物处理型 : 经常反馈给客户信息 ,处理大容量或超大容量的数据 . 数据仓 库型: 主要频繁处理小型数据库 , 只是进行一些查询等操作 .86、请说出两种以上扩大数据库的方式解答 1) 修改现有表空

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论