`

数据库面试题集1

 
阅读更多
阿里巴巴公司DBA笔试题 oracle DBA笔试题
以下题目,可根据自己情况挑选题目作答,不必全部作答.您也可以就相关问题直接找负责面试人员面述而不笔答……
  一:SQL tuning 类

  1:列举几种表连接方式
  2:不借助第三方工具,怎样查看sql的执行计划
  3:如何使用CBO,CBO与RULE的区别
  4:如何定位重要(消耗资源多)的SQL
  5:如何跟踪某个session的SQ
  6:SQL调整最关注的是什么
  7:说说你对索引的认识(索引的结构、对dml影响、对查询影响、为什么提高查询性能)
  8:使用索引查询一定能提高查询的性能吗?为什么
  9:绑定变量是什么?绑定变量有什么优缺点?
  10:如何稳定(固定)执行计划
  11:和排序相关的内存在8i和9i分别怎样调整,临时表空间的作用是什么
  12:存在表T(a,b,c,d),要根据字段c排序后取第21—30条记录显示,请给出sql

  二:数据库基本概念类

  1:pctused and pctfree 表示什么含义有什么作用
  2:简单描述table / segment / extent / block之间的关系
  3:描述tablespace和datafile之间的关系
  4:本地管理表空间和字典管理表空间的特点,ASSM有什么特点
  5:回滚段的作用是什么
  6:日志的作用是什么
  7:SGA主要有那些部分,主要作用是什么
  8:Oracle系统进程主要有哪些,作用是什么

  三:备份恢复类

  1:备份如何分类
  2:归档是什么含义
  3:如果一个表在2004-08-04 10:30:00 被drop,在有完善的归档和备份的情况下,如何恢复
  4:rman是什么,有何特点
  5:standby的特点
  6:对于一个要求恢复时间比较短的系统(数据库50G,每天归档5G),你如何设计备份策略

  四:系统管理类

  1:对于一个存在系统性能的系统,说出你的诊断处理思路
  2:列举几种诊断IO、CPU、性能状况的方法
  3:对statspack有何认识
  4:如果系统现在需要在一个很大的表上创建一个索引,你会考虑那些因素,如何做以尽量减小对应用的影响
  5:对raid10和raid5有何认识

  五:综合随意类

  1:你最擅长的是oracle哪部分?
  2:喜欢oracle吗?喜欢上论坛吗?或者偏好oracle的哪一部分?
  3:随意说说你觉得oracle最有意思的部分或者最困难的部分
  4:为何要选择做DBA呢?

Oracle面试题(技术篇,参考答案)



1.解释冷备份和热备份的不同点以及各自的优点

  解答:热备份针对归档模式的数据库,在数据库仍旧处于工作状态时进行备份。而冷 备份指在数据库关闭后,进行备份,适用于所有模式的数据库。热备份的优点在于当备份时,数据库仍旧可以被使用并且可以将数据库恢复到任意一个时间点。冷备 份的优点在于它的备份和恢复操作相当简单,并且由于冷备份的数据库可以工作在非归档模式下,数据库性能会比归档模式稍好。(因为不必将archive log写入硬盘) 软件开发网

  2.你必须利用备份恢复数据库,但是你没有控制文件,该如何解决问题呢?

  解答:重建控制文件,用带backup control file 子句的recover 命令恢复数据库。

  3.如何转换init.ora到spfile?

  解答:使用create spfile from pfile 命令.

  4.解释data block , extent 和 segment的区别(这里建议用英文术语)

  解答:data block是数据库中最小的逻辑存储单元。当数据库的对象需要更多的物理存储空间时,连续的data block就组成了extent . 一个数据库对象拥有的所有extents被称为该对象的segment.

  5.给出两个检查表结构的方法

  解答:1.DESCRIBE命令

     2.DBMS_METADATA.GET_DDL 包

  6.怎样查看数据库引擎的报错

  解答:alert log.

数据库DBA职位的SQL Server面试题(知名外企)



Question 1:Can you use a batch SQL or store procedure to calculating the Number of Days in a Month
Answer 1:找出当月的天数

程序代码
select datepart(dd,dateadd(dd,-1,dateadd(mm,1,cast(cast(year(getdate()) as varchar)+'-'+cast(month(getdate()) as varchar)+'-01' as datetime))))



Question2:Can you use a SQL statement to calculating it!
How can I print "10 to 20" for books that sell for between $10 and $20,"unknown" for books whose price is null, and "other" for all other prices?
Answer 2:
select bookid,bookname,price=case when price is null then 'unknown'
       when  price between 10 and 20 then '10 to 20' else price end
from books

Question3:Can you use a SQL statement to finding duplicate values!
How can I find authors with the same last name?
You can use the table authors in datatabase pubs. I want to get the result as below:
Output:

程序代码
au_lname                                 number_dups
---------------------------------------- -----------
Ringer                                   2

(1 row(s) affected)
Answer 3
select au_lname,number_dups=count(1) from authors group by au_lname

Question4:Can you create a cross-tab report in my SQL Server!
How can I get the report about sale quality for each store and each quarter and the total sale quality for each quarter at year 1993?
You can use the table sales and stores in datatabase pubs.
Table Sales record all sale detail item for each store. Column store_id is the id of each store, ord_date is the order date of each sale item, and column qty is the sale qulity. Table stores record all store information.
I want to get the result look like as below:
Output:



程序代码
stor_name                                Total       Qtr1        Qtr2        Qtr3        Qtr4      
---------------------------------------- ----------- ----------- ----------- ----------- -----------
Barnum's                                 50          0           50          0           0
Bookbeat                                 55          25          30          0           0
Doc-U-Mat: Quality Laundry and Books     85          0           85          0           0
Fricative Bookshop                       60          35          0           0           25


Answer 4:用动态SQL实现 http://www.mscto.com
Total                                    250         60          165         0           25

Question5: The Fastest Way to Recompile All Stored Procedures
I have a problem with a database running in SQL Server 6.5 (Service Pack 4). We moved the database (object transfer) from one machine to another last night, and an error (specific to a stored procedure) is cropping up. However, I can't tell which procedure is causing it. Permissions are granted in all of our stored procedures; is there a way from the isql utility to force all stored procedures to recompile?

Tips: sp_recompile can recomplie a store procedure each time
Answer 5:在执行存储过程时,使用 with recompile 选项强制编译新的计划;使用sp_recompile系统存储过程强制在下次运行时进行重新编译



Question6: How can I add row numbers to my result set?
In database pubs, have a table titles , now I want the result shown as below,each row have a row number, how can you do that?
Result:

程序代码
line-no     title_id
----------- --------
1           BU1032
2           BU1111
3           BU2075
4           BU7832
5           MC2222
6           MC3021
7           MC3026
8           PC1035
9           PC8888
10          PC9999
11          PS1372
12          PS2091
13          PS2106
14          PS3333
15          PS7777
16          TC3218
17          TC4203
18          TC7777



Answer 6:
--SQL 2005的写法
select row_number() as line_no ,title_id from titles
--SQL 2000的写法
select line_no identity(int,1,1),title_id into #t from titles
select * from #t
drop table #t

数据库DBA的面试题(Sql server2000)

请问在SQL2000中怎么区分登入,用户,角色,并用例子举例说明;
  再问:

      (1)登入ID是不是就是用户名(当我创建了一个登入, 我在点击登入所对应的数据,实例中的用户一栏看到登入ID与用户名一致)

  (2)一个登入ID是不是只能对应一个用户

  教科书答案:登录 ID 仅能使您连接到 SQL Server 实例。特定数据库内的权限由用户帐户控制。数据库管理员将您的登录帐户映射到您有权访问的任何数据库中的用户帐户

  用户如:sa

  角色如:public/db_owner/db_datareader/db_datawriter等
软件开发网

  只有给用户赋予角色,该用户才有相应的操作数据库的权限 http://www.mscto.com

  如将public/db_owner角色赋给sa,则该用户有对数据库进行一切操作的权限

  角色:完成特定的、与服务器相关的管理任务所需的权限,一个用户可以属于多个角色。

  登录:仅能使您连接到 SQL Server 实例。

  命题官的理解:

  登录是sql实例级的 

  用户是数据库级的 

  角色有实例级和数据库级两种 

  登录决定你是否能访问sql实例 

  用户与登录对应, 确实某个登录后, 它对那些数据库有那些权限.

  角色是为了方便管理一类登录或者用户所具有的权限, 当某一类登录或者用户具有相同的权限时, 可以简单地给予他们对应的角色即可. 

  做个形象的比喻: 

  sql实例就相当于一个公司.

  如果你要在公司工作自然就要成为公司的员工, 因此公司的员工就相当于登录

  公司有不同的部门, 这相当于数据库, 你要在某个部门做事, 必须把你分配到某个部门, 也就是在部门的名单中要有你, 这个部门的名单就相当于用户. 名单必须对应公司的某个员工.

  但你一个人是可以在多个部门工作的
软件开发网

  因此, 一个登录可以对应多个数据库的不同用户. 同样, 一个员工在一个部门的名单中只可能出现一次。 因此, 一个登录在同一数据库中, 只可能对应一个用户。为了方便定义每个员工应该做些什么, 应该承担什么职责, 公司会定义职位, 我个职位对应的, 在数据库中就叫角色. 

  因为有的职位是公司层面的, 比如懂事长, 他什么都可以管 软件开发网

  因此, 有sql实例级的角色

  也可以具体地为每个部位定义职位, 不同部门的同一名称的职位它的具体内容可以不同. 因此,对应于sql而言, 它又有数据库级的角色。某个员工是某个职位, 则具有该职位对应的权限与责任

  因此, 对于sql而言, 某个登录或者用户被授予某个或者某些角色, 它就具有对应的权限. 不同职位, 在不同时期, 可以由不人担任, 换人只需要取消和授予对应人员的职位就可以了. 不用改职位定义.

  因此, 对于sql而言, 可以根据需要取消和授予某个登录或者用户的角色. 
(这是管理方便性需要, 你完全可以不理会角色, 自己为用户或者登录指定权限)

数据库面试题(某知名企业)

一、Transact-SQL问题:
1 有订单表SO_Table,单号字段RefNo VARCHAR(10),需要实现自动编号,格式为YYYYMMXXXX,其中XXXX为序号, 如:2004050001,2004050002……2004059999等,采用Transact-SQL实现新订单编号的思路。
2 有表T1,T2,现有一事务,在向表T1添加数据时,同时也必须向T2也添加数据,如何确何数据的完整性。
3 如何求表中相邻(按聚集索引相邻)的两条记录的某字段的值之差,用Transact-SQL语句或存储过程。
4 如何删除表中的重复数据,用Transact-SQL写出代码。
5 基于MS-SQLSERVER 2000,如何统计数据库中所有用户表的数据,显示格式如下:
表名        记录数
   sales        23
6 人员情况表(employee)中字段包括,员工号(ID),姓名(name),年龄(age),文化程度(wh):包括四种情况(本科以上,大专,高 中,初中以下),现在我要根据年龄字段查询统计出:表中文化程度为本科以上,大专,高中,初中以下,各有多少人,占总人数多少。结果如下:
软件开发网

学历       年龄      人数        百分比
本科以上   20        34           14
大专       20        33           13
高中       20        33           13
初中以下   20        100          40
本科以上   21        50           20
。。。。。。
Transact-SQL查询语句如何写?
7表一(AAA)
商品名称mc   商品总量sl
   A          100
   B          120
表二(BBB)
商品名称mc   出库数量sl
    A          10
    A          20
    B          10
    B          20
    B          30


用一条Transact-SQL语句算出商品A,B目前还剩多少?
二、数据库管理问题(DBMS为:MS-SQL Server 2000)(选作一道题)
1使用文件与文件组恢复的方式恢复数据库
2 设计作业进行周期性的备份数据库
3 一个B/S结构ERP系统,出入库单据超过100万条,系统在单据调出、保存过程中速度比较慢,原因可能有哪些?有哪些办法可以提高速度?
三、数据库设计
有 一个钢铁产品检验数据库,包括产品的化学实验结果和物理试验结果,质检部门会根据高炉号来对这批产品进行综合判定,最后根据一个关键字段(比如说叫高炉 号)将两个表中的内容取出来放到质量证明书中。钢铁产品有多种不同的规格,针对同一个规格的钢材需要的物理性能检验包括力学性能、高倍指标、低倍指标、气 体含量四个大项,每个大项里边包含的内容也不一样,力学性能大约有20个小项,高倍有60个小项,低倍有20个小项、气体有8个小项,并且如果某一个大项 中有不合格的,必须取双倍的试样重新进行检验,而另外的大项不重做复验。
请给出物理试验结果表的设计思路。
四、项目管理问题
请叙述你经历的你认为是最为成功的或典型的项目的项目运作(管理)体系、业务流程体系和软件技术体系统。
五、请叙述你的职业理想。

Oracle DBA面试题及答案(for Oracle E-Business Suite DBA)



IT工作市场是如此的紧张,每个可获得的职位都有一堆人在申请。Naveen Nahata为Oracle E-Business Suite的数据库管理员申请者提供了以下一些面试时的技术问题,它可以帮助申请者们快速脱颖而出。

问题

  1如果信息采集管理系统(ICM)崩溃了怎么办?

  2你如何加速打补丁的过程?

  3打补丁的过程中出错了,你怎么办?

  4请提供克隆过程和克隆之后采取的手工操作的大概步骤。

软件开发网

  5介绍一下AutoConfig。AutoConfig是如何知道XML文件中的哪个树脂需要被放入哪一个文件的?

  6你能告诉我,你对一个发生故障的自服务登录问题做哪些测试吗?你要检查哪个配置文件操作选项和文件?

  7如果你不能看到并发管理日志和输出文件,是哪里出错了?

  8你是如何更改并发管理日志和输出文件的位置的? 

  9如果用户正遇到性能方面的问题,你如何找到问题的原因? 

  10你如何更改应用程序的密码? 

  11请写出DBC文件的位置,并且解释它的重要性和应用程序如何知道DBC文件名?



  答案 http://www.mscto.com

  1  所有其他的管理器都会继续工作。ICM只会处理队列控制请求,意思是开启和关闭其他并发的管理器。

软件开发网

  2 2.1你可以合并多个补丁。

  2.2你可以为一个非交互的补丁创建一个响应文件。

  2.3你可以通过选项(nocompiledb, nomaintainmrc, nocompilejsp)来应用补丁,并且在应用了所有的补丁之后,一次运行它们。

  3  查看失败工作的日志,找到并且纠正错误,用adctrl 工具重新开启工作。

  4  在源文件上(所有层)运行pre-clone,使用RMAN复制数据库(或者从热或者冷备份中重新存储数据库),拷贝文件系统,然后在目标文件(所有层)上运行post-clone 。

  手工步骤(可能会更多):

  4.1改变所有的非网站配置选项数值(快速克隆的话,只改变网站级别的配置文件选项)。

  4.2 修改工作流和并发管理器表。

  4.3更改打印机。

  5
  AutoConfig 使用了一个上下文文件来维护关键的配置文件。一个上下文文件就是一个XML文件,在$APPL_TOP/admin 目录下,进行集中式的存储。

  当你运行AutoConfig 的时候,它读取XML文件,并且创建所有的AutoConfig 管理配置文件。

  对于AutoConfig维护的每个配置文件,都存在一个临时文件来判断哪个数值是从哪个XML文件中得来的。

  6
  6.1检查DBC文件中的guest的用户名和密码,配置选项guest的用户名和密码、数据库。 软件开发网

  6.2查看apache/jserv是否启动了。

  6.3运行IsItWorking, FND_WEB.PING, aoljtest等。

  7  很 有可能是FNDFS监听器停止了。看看FND_CONCURRENT_REQUESTS 表中的OUTFILE_NODE_NAME 和 LOGFILE_NODE_NAME 的数值。看看FND_NODES 表。看看tnsnames.ora 中的FNDFS_ entry 。



  8  日志问卷爱女的位置是由$APPLCSF/$APPLLOG 参数来决定的,输出文件的位置是由$APPLCSF/$APPLOUT 决定的。

  9.1追踪这个会话(用等待)并且使用tkprof 来分析追踪文件。

  9.2生成statspack 报告并进行分析。

  9.3使用top/iostat/sar/vmstat 监控O/s 。 软件开发网

  9.4通过ping这类基本的测试结果来判断网络的瓶颈。

  10.1 使用FNDCPASS 来更改APPS密码。

  10.2 手工修改wdbsvr.app/cgiCMD.dat 文件。 软件开发网

  10.3 更改所有从其他环境指过来的数据库链接。
  11.1位置:$FND_TOP/secure directory

  11.2 重要性:在其他事务中指向数据库服务器。
11.3 应用程序通过使用“Applications Database Id.”来了解DBC文件的名字。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics