最近正在进行ETL后台系统数据的日志分析,查看运行耗时长的TASK,并找出耗时长的JOB,进行逻辑层面和数据库层面的优化.本文仅从数据库层面上的优化着手(包括SQL语句的调整以及greenplumtabledk的调整).查看一个耗时30分钟左右的JOB,找到相应的源表,进行如下分析:dw=#selectgp_segment_id,count(*)fromtb_namegroupbygp_segment_idorderbycount(*)descgp_seg
系统 2019-08-12 01:54:28 2180
一位哥们(之前的同事,某世界500强,你懂的)问我,老外要他优化SQL,一共4个,全是树形查询的。前面3个跑半个多小时,后面一个跑1个小时,总共要跑2个半小时。问有啥方法可以优化。因为SQL类型基本上一样,这里指贴一个SQL其实这些SQL都是insertinto...select....要想INSERT快,就必须SELECT块SQL语句如下selectrownum,adn,zdn,'cable'from(selectdistinctconnect_by_r
系统 2019-08-12 01:54:18 2180
最近略忙,就不写题意思路什么的,直接上代码。#include#includestructedge{intu,v,w,flag;}p[4952];intn,m;intf[101];intused[101];intcmp(constvoid*aa,constvoid*bb){return((structedge*)aa)->w-((structedge*)bb)->w;}intfind(intx){returnf[x]==
系统 2019-08-12 01:53:33 2180
/*********************Any/All/Contains/Concat/Union/Intersect/Except/take/skip/SqlMethods操作练习**********************************///判断没有成绩的学生varlist=fromsinctx.T_Studentwhere!s.T_Score.Any()selects;//判断有成绩大于80的学生varlist1=(fromsinctx
系统 2019-08-12 01:53:00 2180
打开intopen(structinode*inode,structfile*filp);模块使用计数加1识别次设备号硬件操作检查设备相关错误(诸如设备未就绪或类似的硬件问题)如果设备是首次打开,则对其初始化如果有中断操作,申请中断处理程序关闭intrelease(structinode*inode,structfile*filp);模块使用计数减1释放由open分配的,保存在filp>private_data里的所有内容。硬件操作:如果申请了中断,则释放
系统 2019-08-12 01:52:23 2180
QUnit是JavaScript单元测试框架。更加具体的介绍ref:http://qunitjs.com/下面是QUnit中的一段代码:(function(){functionF(){}F.prototype=QUnit;QUnit=newF();//MakeFQUnit'sconstructorsothatwecanaddtotheprototypelaterQUnit.constructor=F;}());Whatdoesitmean?Idon'tkn
系统 2019-08-12 01:52:07 2180
循环队列为充分利用向量空间,克服"假溢出"现象的方法是:将向量空间想象为一个首尾相接的圆环,并称这种向量为循环向量。存储在其中的队列称为循环队列(CircularQueue)。条件处理循环队列中,由于入队时尾指针向前追赶头指针;出队时头指针向前追赶尾指针,造成队空和队满时头尾指针均相等。因此,无法通过条件front==rear来判别队列是"空"还是"满"。解决这个问题的方法至少有三种:①另设一布尔变量以区别队列的空和满;②另一种方式就是数据结构常用的:队满
系统 2019-08-12 01:52:02 2180
SQL注入漏洞和SQL调优最近读了程序员的SQL金典这本书,觉得里面的SQL注入漏洞和SQL调优总结得不错,下面简单讨论下SQL注入漏洞和SQL调优。1.SQL注入漏洞由于“'1'='1'”这个表达式永远返回true,而true与任何布尔值的or运算的结果都是true,那么无论正确密码是什么“Password='1'or'1'='1'”的计算值永远是true,这样恶意攻击者就可以使用任何帐户登录系统了。这样的漏洞就被称作“SQL注入漏洞(SQLInject
系统 2019-08-12 01:51:46 2180
PIVOT用于将列值旋转为列名(即行转列),在SQLServer2000可以用聚合函数配合CASE语句实现PIVOT的一般语法是:PIVOT(聚合函数(列)FOR列in(…))ASP注意:PIVOT、UNPIVOT是SQLServer2005的语法,使用需修改数据库兼容级别(在数据库属性->选项->兼容级别改为90)SQL2008中可以直接使用完整语法:table_sourcePIVOT(聚合函数(value_column)FORpivot_columnI
系统 2019-08-12 01:33:02 2180
魏武挥的《内容型网站的核心竞争力》提出了一个“很多Geek们无条件要反对的论点”:“在内容型网站中,编辑的力量几乎可以视为决定网站胜负的关键。我不是不相信群智的力量,但完全依靠用户,让“每个人都成为编辑”(博客中国曾经推出的网摘式服务的广告语),结果恰恰是这项服务的无疾而终。优秀的编辑们懂得,如何策划一个话题,如何吸引更多的眼球(当然不是乱改一篇文章的标题),简而言之,他们知道受众的口味。而这一点,我无论如何不相信,在今天,技术会懂得。”这个观点我举双手赞
系统 2019-08-12 01:32:50 2180