201501-16 SQL Server调优系列基础篇(索引运算总结) 前言上几篇文章我们介绍了如何查看查询计划、常用运算符的介绍、并行运算的方式,有兴趣的可以点击查看。本篇将分析在SQLServer中,如何利用先有索引项进行查询性能优化,通过了解这些索引项的应用方式可以指导我们如何建立索引、调整我们的查询语句,达到性能优化的目的。闲言少叙,进入本篇的正题。技术准备基于SQLServer2008R2版本,利用微软的一个更简洁的案例库(Northwind)进行解析。简介所谓的索引应用就是在我... 继续阅读 >
201501-16 SQL Server调优系列进阶篇(查询语句运行几个指标值监测) 前言上一篇我们分析了查询优化器的工作方式,其中包括:查询优化器的详细运行步骤、筛选条件分析、索引项优化等信息。本篇我们分析在我们运行的过程中几个关键指标值的检测。通过这些指标值来分析语句的运行问题,并且分析其优化方式。通过本篇我们可以学习到调优中经常利用的几个利器!废话少说,开始本篇的正题。技术准备数据库版本为SQLServer2008R2,利用微软的一个更简洁的案例库(Northwind)进行分析。利器一、IO... 继续阅读 >
201501-16 SQL Server调优系列进阶篇(查询优化器的运行方式) 前言:前面我们的几篇文章介绍了一系列关于运算符的基础介绍,以及各个运算符的优化方式和技巧。其中涵盖:查看执行计划的方式、几种数据集常用的连接方式、联合运算符方式、并行运算符等一系列的我们常见的运算符。有兴趣的童鞋可以点击查看。本篇介绍在SQLServer中查询优化器的工作方式,也就是一个好的执行计划的形成,是如何评估出来的,作为该系列的进阶篇。废话少说,开始本篇的正题。技术准备数据库版本为SQLServe... 继续阅读 >
201501-16 SQL Server调优系列基础篇(并行运算总结篇二) 前言上一篇文章我们介绍了查看查询计划的并行运行方式。本篇我们接着分析SQLServer的并行运算。闲言少叙,直接进入本篇的正题。技术准备同前几篇一样,基于SQLServer2008R2版本,利用微软的一个更简洁的案例库(Northwind)进行解析。内容文章开始前,我们先来回顾上一篇中介绍的并行运算,来看文章最后介绍的并行运算语句:SELECTB1.[KEY],B1.DATA,B2.DATAFROMBigTableB1JOINBigTable2B2ONB1.[KEY]=B2.[KEY]... 继续阅读 >
201501-16 SQL Server调优系列基础篇(并行运算总结) 前言上三篇文章我们介绍了查看查询计划的方式,以及一些常用的连接运算符、联合运算符的优化技巧。本篇我们分析SQLServer的并行运算,作为多核计算机盛行的今天,SQLServer也会适时调整自己的查询计划,来适应硬件资源的扩展,充分利用硬件资源,最大限度的提高性能。闲言少叙,直接进入本篇的正题。技术准备同前几篇一样,基于SQLServer2008R2版本,利用微软的一个更简洁的案例库(Northwind)进行解析。一、并行运算符... 继续阅读 >
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 SQL Server调优系列进阶篇(如何维护数据库索引) 前言上一篇我们研究了如何利用索引在数据库里面调优,简要的介绍了索引的原理,更重要的分析了如何选择索引以及索引的利弊项,有兴趣的可以点击查看。本篇延续上一篇的内容,继续分析索引这块,侧重索引项的日常维护以及一些注意事项等。闲言少叙,进入本篇的主题。技术准备数据库版本为SQLServer2012,前几篇文章用的是SQLServer2008RT,内容区别不大,利用微软的以前的案例库(Northwind)进行分析,部分内容也会应用微... 继续阅读 >
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-13 postgres数据库中的数据转换 postgres8.3以后,字段数据之间的默认转换取消了。如果需要进行数据变换的话,在postgres数据库中,我们可以用"::"来进行字段数据的类型转换。实际上"::"是调用CAST函数的。究竟哪些字段之间可以进行数据转换呢? 这个问题只要研究一下cast函数就能够得到答案。cast函数的信息在系统pg_cast表里面管理。通过查询我们可以得到现阶段可以转换的类型对照表如下:源类型 &nb... 继续阅读 >
201501-13 sqlserver 数据库里面金额类型为什么不建议用float,实例告诉你为什么不能。 项目当中如果设计到金额类型的数据,你是否有考虑过为什么不能用float类型。这里举个例子:12345678910... 继续阅读 >