读书人

DBA电话面试小结

发布时间: 2013-06-19 10:26:41 作者: rapoo

DBA电话面试总结
本人工作经验一年,前两年以DBA的职位进去,大多都在帮公司看服务器,就是人们熟知的监控人员,我不怪公司和老大们的安排,只怪自己技不如人,但是我知道我不会一直做监控。入正题吧。

首先电话面试不同于做题,而且电话面试者的语速都非常快,我们一定要调整自己的语速,这不是抢答题,我们不要去迎合他的语速。一定要明白面试管想要考哪一个知识点。不得不说xiechengDBA的老大是个大牛。每次碰到这种人都会有敬畏之心,仿佛跟这些人有说不完的话,因为我深深的明白他们毅力过人,当我们看电影,娱乐,熟睡的时候这些人应该还在勤劳的研究技术。说几个我答错的和不完善的题吧?这里应该不算是泄题吧?因为他面试的时候看着你的简历。你简历上写你什么地方强,他就会在你强的地方问?

1. 唯一索引和唯一约束的区别?
这一问他只想要一句话,索引是物理概念,约束是逻辑概念。实现上没有什么区别唯一约束就是创建一个唯一索引来实现的。

2. checkpoint和惰性写入器的区别?
也只想要你一句话。checkpoint把数据脏页从缓存刷入磁盘,但是脏页并没有消失。而是在缓存中这个页头标记为干净页。

懒惰写应该是把缓冲中的脏数据页刷入磁盘后把这些页面的内存空间标记为空闲空间。(千万不要像我一样,回答什么检查点一分钟一次,切要刷入磁盘的脏数据页大于10M,懒惰写当内存压力比较大,bcp,bulk insert触发。这只是在他想要问题的边缘转一转。不是他想要的答案。10分题有可能会给2分。不高兴一分没有。)

3. 线程占用内存0.5MB,2MB,4MB CPU架构不一样占用内存不一样。我竟然说sqlserver版本不一样,占用内存不一样。

4. 一张表只有一条记录,占用10GB空间(意识就是有很多空数据页)。现在把其中的一列varchar(50)改变为varchar(100)问我要找到这条记录会比修改列宽度之前找到这条记录的时间快还是慢?
这道题当时我就蒙了,为什么蒙,因为我不知道他要考我什么,是考char和varchar 存储的区别,表结构,索引结构,还是要考扫描表有无索引是怎么驱动的,怎么跑的。 我的回答是时间会增长。(什么单次IO得到的行数更多啦,得到自己需要的数据概率更大啦,后续插入会页面产生也拆分啦。会扫描的页数更多啦,等等一堆没有用的废话。我感觉这个题他会给我0分。)

如果是堆结构,alter 过之后页面的数量没有变化,开始时是这么多页,现在还是这么多页为什么时间会变长? 如果此表有聚集索引,并且聚集索引就在这个列上和where后面跟的是这个列的条件。这个扫描时间会不会变长哪?我想也只能说有可能会增长。因为它IO次数有可能会增加,并不是数据页的IO而是索引层次的IO。意识就是本来索引树只有三层,而现在有6层(树更高了)。也就是多了一倍的IO找到了这条数据。当然这只是我自己想的。直到现在这道题考的那个知识点我都还没有弄明白。别人当然可以给你0分。

5. 隔离级别,我说道可序列化的时候他就打住不让我说了,意识就是乐观并发我不考你。然后就问,锁分别持有到什么时候。

前三个就不说了,到可序列化的时候,我说可序列化就是在聚集键上创建一个范围锁,他马上反问,那如果表没有聚集索引聚集键怎么办。我说那只能是表锁或RID上锁了,他马上又反问RID能上范围锁吗。它本来就是数据的物理结构,fileID,pageID,slotNumber 物理文件上能上范围锁吗? 哎,又一个0. 本来就是随机杂乱无序的怎么上范围。

HR说只不会很长时间最多问20分钟,结果整整问了我一个小时。唉。接完电话手机上全是油。

这么长时间了,回答错那么多题,又拒绝了他开的工资。我想一定是没有希望了。但是哦并没有灰心,我一定好好学习,向大牛们致敬,向大牛们看齐。在自己眼里我永远都是IT界的小小鸟。我们能做的只有更勤劳,更勇敢!
有英文面试的分享一下不?
[解决办法]
DBA电话面试小结
[解决办法]
DBA电话面试小结
[解决办法]
DBA电话面试小结
[解决办法]
DBA电话面试小结 学习无止尽啊...
[解决办法]
DBA电话面试小结
[解决办法]
感觉你回答的不错的,问这么细的目的不在于你具体问题的对错,而在于你是否了解到这个程度

第4个问题有个很奇怪的前提,一条数据,而且10g,搞不清什么情况(空页会自动回收的,不会留在表中,估计是这条数据带有大量BLOB字段);ALTER数据表字段改长,操作上是相当于增加了一个字段,页数是可能变化的,但是最多也就是增加1-2页,速度影响不大(BLOB页不必变化)。



可能的话联系下我,我们公司招聘DBA,公司在珠海。


[解决办法]
顶,加油, 俺学习学习
[解决办法]
楼主,加油!!!!!
[解决办法]
回答的挺好的嘛

第四个应该是没变化的,都是变长,增加了长度,而实际数据长度没有变之前
这个时候并不会去申请空间的。所以页数不会有增幅
[解决办法]
楼主加油DBA电话面试小结
[解决办法]
DBA电话面试小结额来学习学习
[解决办法]
看来专业的DBA就是不一样啊
[解决办法]
从varchar(50)到varchar(100)根本就不会去修改底层的数据,直接修改下系统元数据就好了
[解决办法]
看了,但是看不懂。。。
支持楼主~~~
[解决办法]
DBA电话面试小结
[解决办法]
楼主说的,一点不懂。。。

会一丁点MySQL的撸过。。。。
[解决办法]
真是漫长啊!!!!!
[解决办法]
楼主,加油!
[解决办法]
专业DBA就是不一样
[解决办法]
靠,我这个业余的,不懂啊
[解决办法]
专业就是专业啊,
不错啊

[解决办法]
唯一索引、唯一约束都只能有唯一空值,唯一筛选索引能有多个空值:
MS SqlServer2008

Use Tempdb;
create database test;
Go
Use test;
create table tb1
(
name varchar(20)
);
Go
Alter table tb1
Add constraint st_uq unique(name);
Insert Into tb1 values(null),(null);
/*消息 2627,级别 14,状态 1,第 1 行
违反了 UNIQUE KEY 约束 'st_uq'。不能在对象 'dbo.tb1' 中插入重复键。
语句已终止。
*/
Drop index idx_uq on [dbo].[tb1];
Delete tb1;

Create unique index inx_uq On tb1(name);
Insert Into tb1 values(null),(null);
/*
消息 2601,级别 14,状态 1,第 1 行
不能在具有唯一索引 'inx_uq' 的对象 'dbo.tb1' 中插入重复键的行。
语句已终止。
*/
IF EXISTS (SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID(N'[dbo].[tb1]') AND name = N'inx_uq')
DROP INDEX [inx_uq] ON [dbo].[tb1] WITH ( ONLINE = OFF )
GO
Create unique index idx_uq_where On tb1(name)
Where name is not null
Insert Into tb1 values(null),(null);
/*(2 行受影响)*/

[解决办法]
不错,好好学习一下
[解决办法]
我是来学习的。
[解决办法]
看来做个DBA还有很长的路要走啊!!!!!!!!
------解决方案--------------------


看过楼主的面试题,要学的还真多呀。不过做开发不需要研究这么细吧。
[解决办法]
看到上面的面试题,对于一直想做一名专业dba的我来说,还要继续努力才行啊
[解决办法]
DBA电话面试小结
[解决办法]
完全迷糊。
俺不是搞技术的,整不明白了。
[解决办法]
第五个问题,锁范围的

当定义了隔离级别时
这个是搜索引擎自动回选择最优的加锁方式吧
当行锁的代价达到一定程度的时候,会自动转换为更大范围的锁,这个也不是很懂
没见过应用程序去显式指定锁方式的

这个问题大牛可以出来讨论讨论
[解决办法]
DBA电话面试小结门外汉路过
[解决办法]

这是个陷阱题吧....同意14楼 没变化 考得应该是varchar本身的特点(在限制范围内根据内容的长度灵活的分配空间) char是分配固定的空间(在限制范围内无论内容多少) 我也觉得 这公司 怎么尽面试那么细的题目啊

个人觉得工作态度和综合能力比较重要 http://bbs.csdn.net/topics/390457206
[解决办法]
引用:
Quote: 引用:

网上是这么说的,BUT,我自己测试一下。他们都可以插入N多个null。

DB2中是这样的,实践出真知,顶你:)


create table u(id int unique)
insert into u values(null)
insert into u values(null) --插入第二个null就报错了

[解决办法]
第三题有点问题啊,SQL SERVER 工作线程 stack的大小,不是由CPU架构单独决定的,而是CPU架构,OS跟SQL SERVER 三者共同决定的。
[解决办法]
第四条我也觉得那个面试官可能虚幻一枪,比如说他就是考你varchar(50)变为varchar(100)改变的就是元数据,实际的数据不会变。也有可能那个面试官他自己搞错了知识点,呵呵。 反正啥事都要抱着批判的态度去思考不要说MSDN了,就是微软研究院数据库组的论文也会有搞错了,呵呵
[解决办法]
第 4 问 时间不会变吧、因为输入不变

读书人网 >SQL Server

热点推荐