201501-16 SQL Server调优系列基础篇(联合运算符总结) 前言上两篇文章我们介绍了查看查询计划的方式,以及一些常用的连接运算符的优化技巧,本篇我们总结联合运算符的使用方式和优化技巧。废话少说,直接进入本篇的主题。技术准备基于SQLServer2008R2版本,利用微软的一个更简洁的案例库(Northwind)进行解析。一、联合运算符所谓的联合运算符,其实应用最多的就两种:UNIONALL和UNION。这两个运算符用法很简单,前者是将两个数据集结果合并,后者则是合并后进行去重操作,... 继续阅读 >
201501-16 SQL Server调优系列基础篇(常用运算符总结) 前言上一篇我们介绍了如何查看查询计划,本篇将介绍在我们查看的查询计划时的分析技巧,以及几种我们常用的运算符优化技巧,同样侧重基础知识的掌握。通过本篇可以了解我们平常所写的T-SQL语句,在SQLServer数据库系统中是如何分解执行的,数据结果如何通过各个运算符组织形成的。技术准备基于SQLServer2008R2版本,利用微软的一个更简洁的案例库(Northwind)进行解析。一、数据连接数据连接是我们在写T-SQL语句的时候最... 继续阅读 >
201501-16 看看你身边的程序员有这8个习惯吗 作为一名软件开发者可以培养很多优秀的能力,比如在思考和解决问题上有很强的逻辑性。但是,它也会给你生活的很多方面带来不好的影响。根据近些年程序员在Stack Exchange和Quora两大论坛上的讨论,我们汇总了因编程带来的8大坏习惯。虽然在有些相似职业的从业人员身上也有这些习惯,像数学家和非软件工程师,但这依然不能减轻人们对这些习惯的厌恶。 0. 在自然语言中也遵循编程时的语... 继续阅读 >
201501-16 SQL Server调优系列基础篇 前言关于SQLServer调优系列是一个庞大的内容体系,非一言两语能够分析清楚,本篇先就在SQL调优中所最常用的查询计划进行解析,力图做好基础的掌握,夯实基本功!而后再谈谈整体的语句调优。通过本篇了解如何阅读和理解查询计划、并且列举一系列最常用的查询执行运算符。技术准备基于SQLServer2008R2版本,利用微软的一个更简洁的案例库(Northwind)进行解析。一、区别不同的运算符在所有T-SQL语句在执行的时候,都会... 继续阅读 >
201501-16 SQL Server调优系列进阶篇(深入剖析统计信息) 前言经过前几篇的分析,其实大体已经初窥到SQLServer统计信息的重要性了,所以本篇就要祭出这个神器了。该篇内容会很长,坐好板凳,瓜子零食之类…不废话,进正题技术准备数据库版本为SQLServer2008R2,利用微软的以前的案例库(Northwind)进行分析,部分内容也会应用微软的另一个案例库AdventureWorks相信了解SQLServer的朋友,对这两个库都不会太陌生。概念理解关于SQLServer中的统计信息,在联机丛书中是这样解释... 继续阅读 >
201501-16 SQL Server调优系列进阶篇(如何索引调优) 前言上一篇我们分析了数据库中的统计信息的作用,我们已经了解了数据库如何通过统计信息来掌控数据库中各个表的内容分布。不清楚的童鞋可以点击参考。作为调优系列的文章,数据库的索引肯定是不能少的了,所以本篇我们就开始分析这块内容,关于索引的基础知识就不打算深入分析了,网上一搜一片片的,本篇更侧重的是一些实战项内容展示,希望通过本篇文章各位看官能在真正的场景中找到合适的解决方法足以。对于索引的使用,我希... 继续阅读 >
201501-16 Android反编译:反编译工具和方法 前言开发过程中有些时候会遇到一些功能,自己不知道该怎么做,然而别的软件里面已经有了,这个时候可以采用反编译的方式,解开其他的程序,来了解一些它的做法,同时啊,还可以借鉴别人的软件结构,资源文件,等等,哈哈。那我就来讲解一些关于反编译相关的知识,主要分三篇,第一篇介绍反编译的工具和方法,第二篇,介绍smali的语法,第三篇介绍如何防止反编译,主要通过这几篇文章,了解如何去做反编译和代码加固。工具apktoo... 继续阅读 >
201501-16 Android反编译:smali语法 前言前面我们有说过android反编译的工具,如何进行反编译。反编译后可以得到jar或者得到smali文件。Android采用的是java语言进行开发,但是Android系统有自己的虚拟机Dalvik,代码编译最终不是采用的java的class,而是使用的smali。我们反编译得到的代码,jar的话可能很多地方无法正确的解释出来,如果我们反编译的是smali则可以正确的理解程序的意思。因此,我们有必要熟悉smali语法。类型的表示java里面包含两种类型,原始类... 继续阅读 >
201501-16 SQL Server调优系列进阶篇(如何维护数据库索引) 前言上一篇我们研究了如何利用索引在数据库里面调优,简要的介绍了索引的原理,更重要的分析了如何选择索引以及索引的利弊项,有兴趣的可以点击查看。本篇延续上一篇的内容,继续分析索引这块,侧重索引项的日常维护以及一些注意事项等。闲言少叙,进入本篇的主题。技术准备数据库版本为SQLServer2012,前几篇文章用的是SQLServer2008RT,内容区别不大,利用微软的以前的案例库(Northwind)进行分析,部分内容也会应用微... 继续阅读 >
201501-16 如何在Android Studio项目中导入开源库 前两天,谷歌发布了AndroidStudio1.0的正式版,也有更多的人开始迁移到AndroidStudio进行开发。然而,网上很多的开源库,控件等还是以前的基于Eclipse进行开发,很多人不知道怎么导入到自己的基于AndroidStudio项目中来,微博上也有人私信我,让我来写写,正好今天回来的比较早,就写写吧。主要介绍一下常见的一些导包的场景。前言--project//项目目录|build.gradle//项目的gradle配置文件|settings.gradle/... 继续阅读 >
201501-15 Java程序员应该知道的10个调试技巧 试可以帮助识别和解决应用程序缺陷,在本文中,作者将使用大家常用的的开发工具Eclipse来调试Java应用程序。但这里介绍的调试方法基本都是通用的,也适用于NetBeansIDE,我们会把重点放在运行时上面。在开始之前,推荐大家去看看Eclipseshortcuts这篇文章,它将会给你带来很多方便。在本文中使用的是EclipseJuno版(Eclipse4.2),在开始前给大家提3点建议!不要使用System.out.println作为调试工具把所有涉及到的组件日志... 继续阅读 >
201501-15 深入浅出数据仓库中SQL性能优化之Hive篇 一个Hive查询生成多个MapReduceJob,一个MapReduceJob又有Map,Reduce,Spill,Shuffle,Sort等多个阶段,所以针对Hive查询的优化可以大致分为针对MR中单个步骤的优化(其中又会有细分),针对MR全局的优化,和针对整个查询(多MRJob)的优化,下文会分别阐述。在开始之前,先把MR的流程图帖出来(摘自Hadoop权威指南),方便后面对照。另外要说明的是,这个优化只是针对Hive0.9版本,而不是后来Hortonwork发起Stinger项目... 继续阅读 >
201501-15 11个实用经典的SQL小贴士 写在前面的话:之前做的一个项目,数据库及系统整体构架设计完成之后,和弟兄们经过一段时间的编码,系统如期上线,刚开始运行一切良好,后来随着数据量的急剧膨胀,慢慢出现了很多莫名其妙的问题,经过调试,修改了数据库中几个存储过程的一些问题。有意思的是,有一个存储过程里,为了实现一个小的功能,写了好多好多的代码,又是游标又是循环的,其实用系统的一个默认函数就能解决掉。这里想说的是,学习工作之余,在没有要解... 继续阅读 >
201501-15 2014年Linux界发生的好事、坏事和丑事 2014年已经过去,现在正是盘点2014年Linux大事件的时候。整整一年,我们关注了有关Linux和开源的一些好事,坏事和丑事。让我们来快速回顾一下2014对于Linux是怎样的一年。好事首先,让我们来看看在2014年对于Linux爱好者发生了什么有积极意义的事。Linux上的Netflix从使用Wine到使用Chrome的测试功能,为了能让Netflix能在Linux上工作,Linux用户曾尝试了各种方法。好消息是Netflix终于在2014年带来了Linux的本地支持。这让... 继续阅读 >
201501-14 Java解世界最难九宫格问题 芬兰数学家因卡拉花费3个月设计出了世界上迄今难度最大的数独游戏,而且它只有一个答案。因卡拉说只有思考能力最快、头脑最聪明的人才能破解这个游戏。今日,一则腾讯的新闻称中国老头三天破解世界最难九宫格,虽然最后老人是改了一个数字,但是引起本人一时兴趣,想通过计算机程序求解该问题,于是在宿舍呆了一下午,终于成功求解,程序源码如下。packagenumberGame;publicclassPoint{privateintcol;//行号pr... 继续阅读 >
201501-14 Java编程中关于异常处理的10个最佳实践 在实践中,异常处理不单单是知道语法这么简单。编写健壮的代码是更像是一门艺术,在本文中,将讨论Java异常处理最佳实践。这些Java最佳实践遵循标准的JDK库,和几个处理错误和异常的开源代码。这还是一个提供给java程序员编写健壮代码的便利手册。Java编程中异常处理的最佳实践这里是我收集的10个Java编程中进行异常处理的10最佳实践。在Java编程中对于检查异常有褒有贬,强制处理异常是一门语言的功能。在本文中,我们将尽量减... 继续阅读 >