锁定老帖子 主题:周末两家面试总结
精华帖 (0) :: 良好帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-03-17
grandboy 写道 SELECT t.year as Year, t.salary + t.salary * 0.5 * (t.year-2000) as Salary
FROM test t 这样效率最高。如果用SP来实现的话,就可以用递归方法来实现了。 不能根据数据的规律去实现。。。 面试的一看就会把你CUT。。 |
|
返回顶楼 | |
发表时间:2009-03-17
jackman 写道 ybak 写道 rain2005 写道 使用子查询
select a.year, (<script type="text/javascript" src="http://www.iteye.com/javascripts/tinymce/themes/advanced/langs/zh.js"></script><script type="text/javascript" src="http://www.iteye.com/javascripts/tinymce/plugins/javaeye/langs/zh.js"></script>select sum(b.salary) from t_salary b where b.year<=a.year) from t_salary a 就是oracle上的最佳sql 你这个语句根本不符合题目的意思。根本就谈不上最佳。 这里明显是用window function最简单直接,效率也不低。 oracle上子查询是最佳实践,那oracle就不是oracle了,分析函数专门处理此类问题,这里都不用分区的,直接一个order by搞定 select year,sum(salary) over(order by year) from test; 两个的处理数据量不一样大。。。子查询很小。。 当然,效率在我测试的时候没发现有多大区别。。 上M级别的时候才能体现吧 |
|
返回顶楼 | |
发表时间:2009-03-17
holan 写道 aquleo 写道 jackman 写道 哎,要做连接,可以在循环外面创建stringbuffer或在循环外面创建string对象,当然stringbuffer性能好点,另外oracle的分析函数你不知道吗???或者你用连接,子查询等也能搞定啊!基础最重要,做累加计算,分析函数用的很多,而且性能比你用连接子查询要好,oracle已经做了优化了,当然一般的数据库也有实现分析函数的方法。
抱歉,数据库我确实不强... Oracle DB2都没用过...MySQL用的也少...用的最多的就是MSSQL,那玩意太智能太傻瓜了... 搞到现在好多语句都不会写了...惭愧... sqlserver怎么傻瓜了,都是sql语句,不同的就是sqlserver2005版的sql实现了很多标准比如over()子句等 如果你用oracle,sql语句和sql大致也是一样的。 比如你说的题目,和用sqlserver或者是oracle没有什么关系,就是你对sql理解不深。 怎么能怪到sqlserver头上 这位兄弟你可能曲解我的意思了,我是说MSSQL在做视力和一些可视化操作的时候比较智能,为什么微软的东西那么多人用,就是太智能了...再一个我也说了我数据库不强,这方面我的确要加强,所以这个问题就这样吧... |
|
返回顶楼 | |
发表时间:2009-03-17
安博软件前些日子我也去面试过了,人家要做sns网站,总共要22个人,那时还少10个左右,他们承包的别人的项目吧,大概会做1年左右,用 ssh框架,负责人是内地美国来回飞地那种,我也是基础太差,比试不过阿,现在正加强java基础和数据库方面的东西
|
|
返回顶楼 | |
发表时间:2009-03-17
去年我找工作也是因为基础,错过好多公司,那时我面试回来,就会看看书,至少先把当天面试的知识弄会,然后再看相关的知识,看的都是基础。
好几个月没做项目,这些基础又忘得差不多了 呵呵。 |
|
返回顶楼 | |
发表时间:2009-03-17
分析函数应该比子查询效率要高些的
|
|
返回顶楼 | |
发表时间:2009-03-17
xiaocheng 写道 1 cost 16 2 cost 0 append cost 0 大部分测试结果表明 楼主的性能瓶颈在以 String s = new String(); 应改成-->String s=""; SIZE = 10000,100000或者更大才能看得出性能瓶颈。 另这道题考的是求和及类型转换吧。 求和应该直接用公式求解就行了,还这么麻烦。 题目很怪!!!!!!!! |
|
返回顶楼 | |
发表时间:2009-03-18
aquleo 写道 先简单做下自我介绍,本人只算一个小程序员,有三年工作经验,研究过Spring,Struts部分源码,自己封装过一些类...
对技术有点兴趣,啥都略懂点,但不精而且觉得越学越多不会...惭愧... 第一家:安博在线 说重点,做了一套题,从基础到数据结构算法,项目管理然和Unix操作... 说说我错的几个题 public String test(){ String tmp = new String(); for(int i = 0; i < 10; i++){ tmp += i; } return tmp; } 这个代码有什么问题,请给出修改方法... 当时我就觉得没啥问题,就没写,后来面试我的项目经理说再仔细看看...我实在想不出,就说了是不是应该用StringBuffer做拼接...他说不对....没下文了 然后问到get与post的区别...当时一下愁住了,说url参数...他说参数有限制嘛...当时我糊里糊涂的说不大清楚... 又问及负载均衡问题...这个没做过,实在不会答... 还有一个是论坛上有的题目,1000W数据做替换的,不用数据库和shell,1G内存...我只给了一个思路,他说不好,让我再想想...无奈本人数据结构太差...他给我了点提示,说当文件拆分,然后我说可以将文件拆分后排序再处理...又是一顿说...最后又问到数据库,表,视图,索引的作用,区别,效率,是否占空间等... 最后一个问题,如果让你实现一个在线人数的统计... 我说了一堆,估计他也不怎么认同... 总结:题不错,面试官知识面也广,自己要学习的比较多,会一步步给你思路,让你想解决方案,自己技术还是差了,估计没戏.... 1,用buffer没有builder好 2,post加密 3,论坛有详细 4,论坛里童子总结过,表做了index以后速度快(index是另外存储的),但是浪费额外的空间,而且并不是全部字段index以后都快的。要作权衡(貌似这是dba的事情) 5,在线人数统计有session监听器。 |
|
返回顶楼 | |
发表时间:2009-03-18
bonny 写道 1,用buffer没有builder好 2,post加密 3,论坛有详细 4,论坛里童子总结过,表做了index以后速度快(index是另外存储的),但是浪费额外的空间,而且并不是全部字段index以后都快的。要作权衡(貌似这是dba的事情) 5,在线人数统计有session监听器。 1.我当时也和他解释了为什么用StringBuffer,StringBuilder也说了... StringBuilder是1.5的新加的,只是不是线程安全的...可能效率会高... 2.post加密我也说了,但他当时就提出参数是否有限制...这点我想了一会,没想起来... 3.数据结构那题其实后来面试官也和我说了思路,完事后他说这题其实不考你数据结构这些东西,而是面对一个棘手的问题你如何去思考,如何去改善... 4.关于table, view, index我就不多说了,我数据库不强...还等高人给出完整的吧... 5.这题关键是你以什么标准去判断用户是否在线,多长时间不操作或者注销再或者直接关闭浏览器,你如何判断用户是否重复统计等等这都需要考虑... |
|
返回顶楼 | |
发表时间:2009-03-19
public String test(){
String tmp = new String(); for(int i = 0; i < 10; i++){ tmp += i; } return tmp; } 如果他要的是这个结果 public String test(){ return "0123456789"; } 才是最正确的,资源消耗最少、步骤最少、速度最快 |
|
返回顶楼 | |