昨天去了吉利面试.net开发,面试和一般的.net公司面试比起来比较有深度。总体过程磕磕绊绊,以为没戏的时候,下午收到了offer,不过因为待遇问题,还是拒绝掉了。不过这次面试过程对于自己还是有很大帮助的,挖掘了自己的一些潜在问题,特此记录下来。后面的每次面试只要有价值都会记录。

1.先自我介绍下吧。

这是每次面试开篇必备的,针对自己过去的履历,做个简短精要的介绍,切忌啰啰嗦嗦,长篇大论,面试官会觉得这个人把握不住重点。

2.介绍下自己重点做的项目或者模块,说下业务以及涉及到的表,怎么设计的。

这个就是根据自身情况如实介绍,不过在我说到有个业务涉及到一个业务下有子业务的时候,表结构为主表a和字表b时,面试官问到如果在这个业务下有很多子业务的时候,表也是一直建字表吗,当时没多想就是说是的,后来面试官提可以保存json串,后来自己想了下也可以一个表通过parentID字段来确认父子关系,这样多少子业务一张表就解决了。

3.数据库调优怎么调的?

  (1)先将执行慢的脚本找出来,然后一点点删逻辑,确定执行慢的点,然后进行对应的调整,一般来说对字段加个非聚集索引就可以了。

  (2)也可以通过查找执行计划来进行调整。

  (3)将冷热数据也就是不常用的数据和常用的数据进行分离。

  (4)一张大数量的表可以适量放些多余字段,这样就不用在此联表查询,提升效率。

4.聚集索引和非聚集索引的区别是什么,分别在什么情境下用?

聚集索引所在的字段是一张表物理排序的字段,没有声明的情况下,默认是主键。

聚集索引之外的索引就是非聚集索引。他们之间的区别是聚集索引是直接查到,非聚集索引则为通过rid来获取数据在磁盘中的数据查询得到。

聚集索引用于一个字段是不断增加的,并且在查询中经常会用到的关键字段,这会使得查询效率大大提升,不推荐默认为主键,是一种资源浪费。

(这个问题的回答觉得不是很严谨,后面会深入学习后再写一篇文章进行巩固)

5.出现脏读怎么办?

在数据库更新时加上排他锁,更新事务结束释放。

6.了解哪些设计模式,什么情况下使用。

单例,工厂,仓储工作单元(不知道这个算不算)

单例用在对于类似数据库,文件的访问对象创建用的比较多。

7.泛型,反射说一个实际应用场景。

8.委托,事件说个实际应用场景。

9.get和post有什么区别。

10.jquery查询一个动态的buttonlist,如何对一个特定的按钮进行操作。

//先准备下午面试,有时间了再把剩余的问题回答写上。