Oracle函数面试题(三)

2014-11-24 15:53:29 · 作者: · 浏览: 11
思)
Oracle数据库表存放在数据文件上。
31、Oracle使用什么语句给用户分配权限
GRANT TO 语句
32、你在项目现场,用户要求你向正在运行的表中添加一个字段,你该怎么做
第一种方法:关闭数据库,然后使用受限模式打开,由sys/sysdba来进行
第二种方法:不关闭数据库,将数据库置于静默状态在SYS/SYSDBA模式下用ALTER SYSTEM QUISCE RESTRICTED,这种状态下只有SYS/SYSDBA才可以对数据库进行操作,修改完毕之后再退出静默状态ALTER SYSTEM UNQUISCE
在这里复习到了数据库的两种特殊状态:静默状态(QUISCE)和挂起状态
静默状态就是只有特殊权限的SYS/SYSDBA才可以对数据库进行操作,使用ALTER SYSTEM QUISCE RESTRICTED以后 系统将等候活动着的会话主动结束,同时阻止建立新的会话,系统挂起所有的SQL语句,等恢复以后再重新激活会话执行挂起的SQL。
挂起状态就是系统将数据库所有对物理文件(数据文件,控制文件,日志文件)的I/O操作都暂停,但是并不禁止非DBA用户对数据库进行操作。这种状态主要用于进行数据库备份。
33、Oracle中回滚的概念 回滚段有什么作用。
回滚就是在事务提交之前将数据库数据恢复到事务修改之前数据库数据状态。
回滚段就是为回滚提供依据,记录的是事务操作数据库之前的数据或者对应于以前操作的操作,这个内容要根据以前的操作而定。比如说以前事务操作如果是UPDATE那么回滚段则存储UPDATE以前的数据,如果事务是DELETE操作那么存储的则是与之相对应的INSERT操作语句,相反如果事务操作是INSERT那么记录相应的则是DELETE操作了。
34、Oracle的8I和9I有什么区别
35、一张表有10万条记录,如何删除其中的任意20条记录 请用SQL语句进行操作
36、客户端如何访问服务器端的oracle 如果客户端无法访问服务器端的oralce,可能会是什么原因
客户端通过网络或者进程方式以合法的用户身份来取得和服务器端ORACLE的连接。如果客户端无法访问服务器端ORACLE可能出现的原因是:用户无权访问;服务器端数据库并没有打开(启动数据库的第三步没有完成);如果服务器是在共享模式下的则有可能没有对应于该客户所使用的通信协议的调度进程Dnnn。
37、oracle中执行语句错误时去哪里查找错误信息
Select * from USER_ERRORS
38、select语句需要提交吗 insert和update语句呢
39、在执行insert语句并提交后,这些提交的数据存储到什么地方
被存储到数据文件中
40、oracle中有哪些类型的文件
数据文件,控制文件,日志文件和数据字典
41、介绍一下oracle的体系结构
逻辑体系结构:块,区,段,表空间
物理体系结构:表空间,三大文件
软件体系结构:SGA,后台进程
42、谈谈对oracle的row_ id是否理解 请简述
ORACLE的row_id是一个伪列,其个是为18个字节可将这18个字节用6363来划分,分别表示段编号,数据文件编号,数据块编号和记录编号。
Row_id表示的是一个记录的物理存储地址。
43、oracle中如何删除用户
Oracle中使用DROP USER来删除用户,如果使用DROP USER CASCADE那么用户的对象也同时被删除掉。为了达到删除用户的效果而又不影响对用户下的对象的使用可以使用alter user username account lock将用户锁定。
44、客户端对服务器端的oralce操作的流程是什么
专用模式下:用户通过应用程序进程试图去得到一个与ORACLE数据库服务器的连接 客户端通过网络传递连接请求,ORACLE服务器则使用监听进程监听用户请求,并且来验证用户身份,通过验证则为用户分配一专用服务进程 用户提交SQL语句 专用服务进程则首先在SGA区的共享池中检查是否有与该SQL语句相似的已经被解析执行并且缓存的SQL语句,如果有则采用它的解析结果和执行计划执行SQL语句,如果没有则对SQL语句进行语法解析生成执行计划 通过解析则执行操作获取数据 将执行结果返回给客户。
共享模式下:与专用模式不同在于当监听程序验证用户的合法性以后并不为它分配一个专用的服务进程,而是将该请求与响应的调度进程相联系起来,并将起放入到一个请求队列中,最终由响应的Dnnn来从调度队列中获取一个请求并为之分配一个空闲的服务进程,接下来有服务进程对该请求进行服务操作和专用方式下相同,处理完成之后由服务进程先将结果放入一个返回队列最后再由调度进程(Dnnn)将返回队列中的结果返回给对应的用户。
45、exits和in在ORALCE数据库中那个执行效率更高
Exits执行效率比in高。因为:
46、如何判断游标已经到最后一行
Cursor_name%notfound
47、聚簇索引和普通索引在不同的SQL语句中哪个效率更高 (笔试题,原题回忆不起来,主题就是聚簇索引和普通索引的区别)
概念类:
聚合函数 Session的定义和用法 Oracle的存储过程 什么是构造函数
48、简述ORACLE中SGA的组成部分。
答:系统全局区包括:共享池、重做日志缓存区、数据高速缓存区,大池,JAVA池。
49、简述ORACLE的启动和关闭各有多少步骤
启动:启动实例、装载数据库数据、打开数据库。
关闭:关闭数据库、卸载数据库数据、关闭实例。
50、在Oracle表空间的分类和作用,如排序时数据将放在什么表空间
作用是为了突破存储容量的限制,是一个逻辑概念。排序数据放在临时表空间。
51、执行COMMIT命令时,数据库将会发生什么改变,ROLLBACK呢
答:commit 提交时首先是与事务对应的重做日志信息将被写入到数据库物理文件中的重做日志文件中,至于是否会真正将事务操作的内容反映到数据文件还好看DBWR是否启动了。在完成数据库的插入,删除和修改操作时,只有当事务提交到数据库才算完成,有提交前只有操作数据库的本人才能看到,别人只有在最后提交完成才可以看到。
ROLLBACK回滚当前尚未提交的事务,使数据库恢复到事务操作前的状态。
52、用命令创建用户,并为用户授权。
Create user user_name
identified by password /
identified externally/
identified blobally as ‘CN=user’
default tablespace tablespace_name
temporary tablespace tablespace_name;
grant role/privilege to user_name;
53、写一个存储过程,使employee(name,age,emp_no,salary)表中的