- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
SQL Server DBA_名企面试问题及答案
某名企数据库面试问题答案
答案仅供参考!
1.磁盘柜上有14块73G的磁盘, 数据库为200G 大小包括日志文件,如何设置磁盘(要说明这14磁盘是怎么用的)?
这个问题应该是考察硬件知识和数据库物理部署。
首先需要知道这些磁盘是否要用于存放数据库备份文件和数据库性能(读/写)要求。来决定raid的级别。
1)、如果偏重于性能考虑,而且不用存放数据库备份文件的话,考虑使用raid0+1,这样可使用的磁盘容量为:14*73*50%=511G。
2)、如果读/写性能要求不高,而且还比较抠门的话,可以考虑raid5,这样可使用的磁盘容量为:13*73=949G。
至于如何使用应该是说数据库物理文件的部署。注意说出将tempdb,data file,log file分开存放以减少I/O竞争即可。其实现在的条带化磁盘一般都会自动将文件分存,人为的分布已经越来越不重要了。
2.有两服务器群集,分别为node1和node2 现在要打win200系统补丁,打完后,要重新启动,如何打补丁,不能影响用户使用(要用群集的术语详细说明)。
这个具体操作有点忘了。大致是:首先看哪个节点正在使用,通过节点IP(私有)访问另一个空闲节点,为其打上补丁,然后在群集管理器中停止该节点(也可以用命令行方式),重新启动。等到启动完毕,将切换使用节点,为另一个节点打补丁。然后重新启动。
3.有一个A 数据库,分别复制到B和C B 要求 每次数据更新 也同时更新,C 每天更新一次就行,如何制定复制策略!
这个应该考察的是复制知识。
a-b
1)、如果使用SQL Server复制功能,那么让a-b使用事务性复制方式(同步复制)。
2)、如果表不多,也可以自己写触发器,利用linkserver+distribute transaction。
a-c
1)、如果使用SQL Server复制功能,那么让a-b使用快照复制方式,在某一时间点进行一次性复制。
2)、也可以自己写bat,将a备份后,通过ftp传输备份介质,恢复c。(比较麻烦,不推荐)
4.有一个order 表,有90个字段,20个索引,15个复合索引,其中有3个索引字段超过10个,如何进行优化
这个问题问的比较没水平。你不详细说明这个表的使用方式(读写类的,还是几乎是静态表),就问人家怎么优化?!!还不如问问索引的分布访问原理更好。
看得出他就想让你说:那三个索引超过10个,B树遍例效率很低,适当减少字段数目。如果是SQL2005,可以将选择性不好的字段放在“索引附加字段”中,以保证索引覆盖。而且SQL Server由于有锁升级的毛病,可以考虑拆开表。
5.有一个数据库200G大小,每天增加50M 允许用户随时访问,制定备份策略(详细说明)。
这种情况可以采用增量备份方式。每周日做一次全备份,周一到周六作增量备份(由于数据量较少,可以考虑每30分钟增量备份一次)。这样可以尽量减少性能消耗,而且如果transaction log丢失的情况下,可以保证最多丢失30分钟数据。
6.管理50台数据库,日常工作是检查数据库作业是否完成,你该如何完成这项检查工作?
这个比较简单。在每台机器上建立linkserver,然后在DBA管理服务器上做个分布式视图,每次查询该视图,各个机器上的作业情况一目了然。分布式视图写法:
create view vw_job
as
select 机器一 as MName,* from linkserver1..sysjobactivity
union all
select 机器二 as MName,* from linkserver2..sysjobactivity
union all
select 机器三 as MName,* from linkserver3..sysjobactivity
。。。
7.自定义函数和存储过程的区别是什么,什么情况下只能用自定义函数,什么情况下只能用存储过程
这个应该是考察存储过程编写经验。一般自定义函数主要用于其他sql中的调用,如:
select yourfunc(...) from table
这种情况下,一般只能通过函数实现。
存储过程的功能要远远强于函数,例如动态执行sql(sp_executesql)的使用和一些特殊的功能,自定义函数中是不支持的,只能用存储过程实现。
8.SQL 2005 的新特性是什么 ? 与oracle 有什么区别?
SQL 2005 的新特性一般都是和Oracle学的。
下面是当时被leimin逼着写的,你可以做个参考:
一、数据库设计方面
1、字段类型。
varc
文档评论(0)