日期:2014-05-16  浏览次数:20384 次

整理下自己使用的sqlserver DBA面试题
1.sqlserver 2008 R2 on windows server 2008 R2群集中,有节点A、B,现在需要停机新添加一个节点C进来替换现有节点B,请列出必要的步骤.


2.sqlserver 2008 R2 on windows server 2008 R2群集中,有节点A、B,A节点内存比B节点内存大一倍,为当前的主节点,为了业务需要,需要释放A节点内存即重新启动sqlserver,在尽可能短时间的前提下,如何让群集服务不发生切换即操作过程中不切换到A节点,请列出操作步骤.


3.虚拟日志的作用,如何查看虚拟日志是否给性能带来影响?如何控制虚拟日志数量以避免
虚拟日志数目太多给数据库带来性能影响?


4.sqlserver 2008 R2 on windows server 2008 R2,数据库备份时如何避免JOB生产的日志记录到errorlog中,以避免errorlog被撑爆?


5.如何查看表中text类型字段的实际长度?


6.什么是数据库直方图?如何设计直方图统计以便提供数据库性能?


7.sqlserver分区表的理解以及对性能的影响?


8.sqlserver 2008 R2 on windows server 2008 R2环境中,系统日志一直提示"将密钥管理服务(KMS)发布到 'XXXXX' 域中的 DNS 失败",导致该问题的原因?如何解决,请列出必要的命令?


9.设计表时,如何使用char和varchar?请写出你对varchar(max)的理解?


10.sqlserver 2008 R2 on windows server 2008 R2,在尽可能节省CPU的情况下,提高备份的速度?


11.一个表有120字段,8500万条数据,如何删除重复数据?


12.ASP.NET调用SQL后台存储过程时,有时突然就变得很慢,使用sql语句直接执行存储过程没问题,但在前台调用存储过程时就是很慢,而且在前台调用成功后,再次调用还是一样的慢,但更新一下存储过程再调用就很快了,请分析原因?


13. sqlserver 2008 R2 on windows server 2008 R2环境中,数据库报错:"

18056 

客户端无法重新使用 SPID 为 %d 的会话,该会话已被重置用于连接池。失败 ID 为 %d。

此错误可能是由于先前的操作失败引起的。

请查看错误日志,找出在显示此错误消息之前刚发生的失败操作",请分析原因和解决办法?


14.请说明下面语句的用途?什么情况下使用?


declare @objtype varchar(20)
declare @usecounts int 
declare @size_in_bytes int
set @objtype='Adhoc'   --只能是Adhoc、proc、Prepared ,默认是Adhoc
set @usecounts=1     --数目,默认是1
set @size_in_bytes=1  --大小,默认是1
print '输入的对象类型为@objtype';
print '输入缓存次数为@usecounts';
print '输入缓存大小为@size_in_bytes';


if @objtype  in ('Adhoc','proc','Prepared')
begin
select  top 1000 usecounts as [缓存次数],
size_in_bytes/1024 as [占用Mb],
cacheobjtype as [缓存类型],
objtype as [对象类型],
b.text as [语句]
from sys.dm_exec_cached_plans a ,
(select   plan_handle, 
qt.text FROM    
sys.dm_exec_query_stats qs  
CROSS APPLY sys.dm_exec_sql_text (qs.[sql_handle]) AS qt ) b
where a.plan_handle=b.plan_handle and objtype=@objtype and
usecounts=@usecounts and size_in_bytes>@size_in_bytes
order by size_in_bytes desc
end
else
begin
print '                              ';
print '系统出错了!';
print '--------------------------';
print '输入类型不对,请核实';
print '--------------------------';
end



15.sqlserver 2008 R2 on windows server 2008 R2搭建sqlserver 群集时,在群集验证检查时提示"验证 SCSI-3永久保留失败",请分析下是什么原因导致的?

如何解决?


16.在平时很多业务逻辑中,需要每个月任何一天去统计上个月的交易数据,请写一个变量,自动获取到上个月的第一天和最后一天(如今天是2011-10-9,则获取到上个月的开始为 2011-09-01 结束时间为2011-19-90).


17.  sqlserver 2008 r2 on windows server 2008 R2中,事务复制时,通常使用“用于 OLEDB 流式处理的分发配置文件”的分发代理配置文件,请列出至少三个我们可以优化的参数.


18.在sqlserver 2008 R2复制性能监控中,我们需要在发布服务器上查看发布数据库中等待复制的数据量,我们通常查看的表名是?


19.在sqlserver 2008 R2复制中,我们经常使用下面语句,请说明下面这条命令的用途?

EXEC sp_repldone @xactid = NULL, @xact_segno = NULL, @numtrans = 0,     @time = 0, @reset = 1


20.请介绍下对sqlserver 2012 always on的理解?






















<