日期:2014-05-18  浏览次数:20520 次

几道DBA的笔试题
1,char,varchar,nvarchar之间的区别,那个效率更高。
2,谈谈索引
3,SQL调优步骤,如何判断SQL语句存在的问题,怎么定位问题,如何解决
4,列举几种诊断IO,CPU,性能状况的方法。
5,系统DB有哪些,需不需要备份,说明一下理由,损坏了如何还原。
6,你如何做数据库监控,你会关注哪些指标。如何指定性能基线。你用过哪些监控软件。
---------------------------------------------
1,对于一个存在性能问题的系统,说出你的诊断思路。
2,假定你删除了一张重要的表,如何回复。(表未备份)
3,谈谈你是如何考虑和指定备份计划的。对于一个非常大的数据库或者表备份,且要求数据量尽可能的少丢失,你会采用什么办法。

------解决方案--------------------
问题1
SQL code
1.char

char的长度是固定的,最大支持2000个字节。

char的长度是固定的,比如说,你定义了char(20),即使你你插入abc,不足二十个字节,数据库也会在abc后面自动加上17个空格,以补足二十个字节;

char是区分中英文的,中文在char中占两个字节,而英文占一个,所以char(20)你只能存20个字母或10个汉字。

char适用于长度比较固定的,一般不含中文的情况

2.varchar/varchar2

varchar是长度不固定的,最大支持4000个字节。

varchar是长度不固定的,比如说,你定义了varchar(20),当你插入abc,则在数据库中只占3个字节。

varchar同样区分中英文,这点同char。

varchar的效率低于char。


varchar适用于长度不固定的,一般不含中文的情况

3.nvarchar/nvarchar2

nvarchar是长度不固定的

nvarchar不区分中英文,比如说:你定义了nvarchar(20),你可以存入20个英文字母/汉字或中英文组合,这个20定义的是字符数而不是字节数

nvarchar适用于存放中文