202004-02 nginx与php-fpm通信的两种方式 HOT 在linux中,nginx服务器和php-fpm可以通过tcp socket和unix socket两种方式实现。 unix socket是一种终端,可以使同一台操作系统上的两个或多个进程进行数据通信。这种方式需要再nginx配置文件中填写php-fpm的pid文件位置,效率要比tcp socket高。 tcp socket的优点是可以跨服务器,当nginx和php-fpm不在同一台机器上时,只能使用这种方式。 windows系统只能使用tcp socket的通信方式 继续阅读 >
201906-19 大牛是怎么思考设计SQL优化方案的? 在进行MySQL的优化之前,必须要了解的就是MySQL的查询过程,很多查询优化工作实际上就是遵循一些原则,让MySQL的优化器能够按照预想的合理方式运行而已。 继续阅读 >
201504-10 实战:上亿数据如何秒查 最近在忙着优化集团公司的一个报表。优化完成后,报表查询速度有从半小时以上(甚至查不出)到秒查的质变。从修改SQL查询语句逻辑到决定创建存储过程实现,花了我3天多的时间,在此总结一下,希望对朋友们有帮助。数据背景首先项目是西门子中国在我司实施部署的MES项目,由于项目是在产线上运作(3years+),数据累积很大。在项目的数据库中,大概上亿条数据的表有5个以上,千万级数据的表10个以上,百万级数据的表,... 继续阅读 >
201504-10 SQL中树形分层数据的查询优化 在数据查询中,从2008开始SQLServer提供了一个新的数据类型hierarchyid,专门用来操作层次型数据结构。hierarchyid 类型对层次结构树中有关单个节点的信息进行逻辑编码的方法是:对从树的根目录到该节点的路径进行编码。 这种路径在逻辑上表示为一个在根之后被访问的所有子级的节点标签序列。表示形式以一条斜杠开头,只访问根的路径由单条斜杠表示。对于根以下的各级,各标签编码为由点分隔的整数序列。子级之... 继续阅读 >
201504-10 在SSRS 里实现 SUMIF 最近在做报表时,要实现Excel中的SUMIF的功能,示例:SUMIF($B$2:$B$465,"East",$G$2:$G$465),即汇总B列值等于East的G列值。 在SSRS中,我们想到的一定是IIF语句,因此第一次写的结果一定是:示例:sum(IIF(Fields!Team.Value="East",Fields!LeaseArea.Value,0))运行结果是#ERROR 通过相关资料查找最终结果是:示例:sum(IIF(Fields!Team.Value="East",cdbl(Fields!LeaseArea.Value),0.00))原因:采用cdbl将字段转换为... 继续阅读 >
201503-23 关于SQL Server数据表的五中约束 1、主键约束(PRIMARYKEY)主键约束可以在表中定义一个主键值,它可以唯一确定表中每一条记录,每个表中只能有一个主键约束(只能有一个主键约束的意思并不是说受主键约束的列只能有一个),并且受主键约束的列不能为空值。如果主键约束定义在不止一列上,则某一列中的值可以存在重复,但是受主键约束的所有列的组合值必须唯一。2、唯一性约束(UNIQE)唯一性约束确保在非主键列中不输入重复的值。用于指定一个或多个列的组合... 继续阅读 >
201503-23 在SQL Server中将数据导出为XML和Json 有时候需要一次性将SQLServer中的数据导出给其他部门的也许进行关联或分析,这种需求对于SSIS来说当然是非常简单,但很多时候仅仅需要一次性导出这些数据而建立一个SSIS包就显得小题大做,而SQLServer的导入导出工具其中BUG还是蛮多的,最简单的办法是BCP。 数据导出为XML 在SQLServer2005之后提供了一个forxml子句在关系数据库中原生支持XML。通过该命令可以将二维关系结果集转换为... 继续阅读 >
201503-23 sql CHARINDEX函数 CHARINDEX函数返回字符或者字符串在另一个字符串中的起始位置。CHARINDEX函数调用方法如下: CHARINDEX(expression1,expression2[,start_location]) Expression1是要到expression2中寻找的字符中,start_location是CHARINDEX函数开始在expression2中找expression1的位置。 ... 继续阅读 >
201503-16 SQLServer 2012 可视化窗口中,设置“时间”默认值为“当前时间" 最近,需要在SQLServer2012中,设置datetime的默认值为当前时间。通过可视化窗口进行设置,而不是将getdate()函数写在sql语句中,也不是将‘2022-2-222:22:22’写在sql语句中。起初网上已经有文章写到,不过更多的是写在sql语句中,当时设置默认值的格式有些问题,一直失败。正确插图: (getdate())其实它是一个可视化而已,在sql语句中拼写getdate()能ok,在可视化窗口也ok的。就是这么简单,但当时脑残了,非得加... 继续阅读 >
201501-31 程序员容易忽略的SQL Server错误集锦 概述因为每天需要审核程序员发布的SQL语句,所以收集了一些程序员的一些常见问题,还有一些平时收集的其它一些问题,这也是很多人容易忽视的问题,在以后收集到的问题会补充在文章末尾,欢迎关注,由于收集的问题很多是针对于生产数据,测试且数据量比较大,这里就不把数据共享出来了,大家理解意思就行。步骤大小写大写T-SQL语言的所有关键字都使用大写,规范要求。使用“;”使用“;”作为Transact-SQL语句终止符。虽然... 继续阅读 >
201501-16 SQL Server调优系列基础篇(子查询运算总结) 前言前面我们的几篇文章介绍了一系列关于运算符的介绍,以及各个运算符的优化方式和技巧。其中涵盖:查看执行计划的方式、几种数据集常用的连接方式、联合运算符方式、并行运算符等一系列的我们常见的运算符。有兴趣的童鞋可以点击查看。本篇我们介绍关于子查询语句的一系列内容,子查询一般是我们形成复杂查询的一些基础性操作,所以关于子查询的应用方式就非常重要。废话少说,开始本篇的正题。技术准备数据库版本为SQLSe... 继续阅读 >
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 SQL Server调优系列基础篇 HOT 前言关于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-12 SQL Server新一轮更新 上个月微软的SQLServer团队发布了大量小型更新。值得关注的内容包括:针对本地服务器的PowerBI、针对SQLServer2014的SystemCenter支持,以及对Java/PHP驱动程序的更新。但首先要关注的是,针对DB2用户的微软迁移工具。针对DB2的SQLServer迁移助手微软针对DB2的SQLServer迁移助手(SQLServerMigrationAssistantforDB2)最近发布了6.0版本。这个工具声称要“自动化迁移工作的各个方面,包括迁移评估分... 继续阅读 >