1.关于hive的优化 ->大表拆分小表 ->过滤字段 ->按字段分类存放 ->外部表与分区表 ->外部表:删除时只删除元数据信息,不删除数据文件 多人使用多个外部表操作同一份数据文件 ->分区表:hive中的数据库,表,分区来说都是文件夹 提高了检索效率 ->手动创建 ->动态分区 ->外部表+分区表 ->数据的存储 ->存储格式:列式存储 ->压缩 2.SQL的优化 ->后 join 先 filter 3.mapreduce…
11g新特性-自动sql调优(Automatic SQL Tuning) 在Oracle 10g中,引进了自动sql调优特性.此外,ADDM也会监控捕获高负载的sql语句. 在Oracle 11g中,通过运行sql tuning advisor加强了自动sql调优功能.默认情况下是每天夜间通过自动任务的方式运行”自动sql调优“. 自动sql调优的过程: 1.识别需要调优的sql语句  根据AWR中的CPU和I/O负载来识别 2.调优,生成新的sql profile 在维护窗口(maintena…
继<高性能SQL调优精要与案例解析>一书谈SQL调优(SQL TUNING或SQL优化),我们今天就谈谈各主流关系库中,占据SQL调优技术和工作半壁江山的.最重要的核心机制之一——索引(index).我们知道,<高性能SQL调优精要与案例解析>一书中也再三强调索引对SQL调优的重要性,可是上篇文章中也谈到,只看案例和解决问题的具体方法,而不掌握SQL调优的基础知识,是没有用的,我们必须做到知其然,更要知其所以然,才能做到融会贯通,活学活用,进而将SQL调优技术掌握到炉火纯青的地步.…
<高性能SQL调优精要与案例解析>一书上市发售以来,很多热心读者就该书内容及一些具体问题提出了疑问,因读者众多外加本人日常工作的繁忙 ,在这里就SQL调优学习进行讨论并对热点问题统一作答. 首先,我们说说何为SQL调优.SQL调优是关系库领域的一项技能或工作,其来自SQL Tuning一词,虽然也有很多同行更多称之为SQL优化,对应的英文单词为SQL Optimization,但本人始终认为SQL调优是一个过程,SQL调优也更能体现这项技术或工作的过程,而SQL优化一词,本人认为更通俗些,也更…
一.Fetch抓取 1.理论分析 Fetch抓取是指,Hive中对某些情况的查询可以不必使用MapReduce计算.例如:SELECT * FROM employees;在这种情况下,Hive可以简单地读取employee对应的存储目录下的文件,然后输出查询结果到控制台. 在hive-default.xml.template文件中hive.fetch.task.conversion默认是more,老版本hive默认是minimal,该属性修改为more以后,在全局查找.字段查找.limit查找等…
调优 Hive提供三种可以改变环境变量的方法,分别是: (1)修改${HIVE_HOME}/conf/hive-site.xml配置文件: 所有的默认配置都在${HIVE_HOME}/conf/hive-default.xml文件中,如果需要对默认的配置进行修改,可以创建一个hive-site.xml文件,放在${HIVE_HOME}/conf目录下.里面可以对一些配置进行个性化设定.这里做的配置都全局用户都生效,而且是永久的. (2)命令行参数: 在启动Hive cli的时候进行配置,可以在命…
调优 1 Fetch抓取(Hive可以避免进行MapReduce) Hive中对某些情况的查询可以不必使用MapReduce计算.例如:SELECT * FROM employees;在这种情况下,Hive可以简单地读取employee对应的存储目录下的文件,然后输出查询结果到控制台. 在hive-default.xml.template文件中hive.fetch.task.conversion默认是more,老版本hive默认是minimal,该属性修改为more以后,在全局查找.字段查找.l…
该文档为根据相关资料整理.总结而成,主要讲解Oracle数据库中,获取SQL语句执行计划的最权威.最正确的方法.步骤,此外,还详细说明了每种方法中可选项的意义及使用方法,以方便大家和自己日常工作中查阅使用,因本人未发现本博客支持附件上传功能,需要PDF文件格式的朋友可向我要,也可到群里下载,转载请注明出处. 1.查询v$sql_plan: SQL> col "Query Plan_Table" format a100 SQL> select id,lpad(' ', 2*(…
对于用户来说,系统是:慢的,难用的.你看xxx,多好用,多快,多人性化. 对于AX ERP系统也不例外,调优是必须的,调优一般分为几种: 系统性监测针对瓶劲环节提升,如:用户--应用服务器--DB--存储,整条链下来,网络慢就提升网络,存储慢就改用SSD,内存不足就加内存.这类问题通常最好解决,花最少的钱就能得到最快的效果,比蚁力神还管用. 应用程序监测,数据库监测,需要调整系统配置等,如AX有DynamicsPerf,系统有性能监视器,观察系统资源不足发生的时间以及现象,分析具体原因,找出对策…
9.企业级调优 9.1 Fetch 抓取 Fetch 抓取:Hive 中对某些情况的查询可以不必使用 MapReduce 计算: hive.fetch.task.conversion:more 9.2 本地模式 大多数的 Hadoop Job 是需要 Hadoop 提供完整的可扩展性来处理大数据集的.不过,有时 Hive 的输入数据量是非常小的.在这种情况下,为查询触发执行任务消耗的时间可能会比实际job的执行时间要多的多.对于大多数这种情况,Hive 可以通过本地模式在单台机器上处理所有的任务…
根据.方案最右侧一栏是一个8G VM的分配方案,方案预留1-2G的内存给操作系统,分配4G给Yarn/MapReduce,当然也包括了HIVE,剩余的2-3G是在需要使用HBase时预留给HBase的. 内存调优 一.AM.Container大小设置1.tez.am.resource.memory.mb #设置 tez AM容器内存 配置文件:tez-site.xml 建议:不小于或者等于yarn.scheduler.minimum-allocation-mb值. .hive.tez.conta…
说起SQL SERVER的调优,我想大伙也很想知道这方面的知识.本人也正在探索的路上,大家有什么好的意见,欢迎一起探讨.研究.博取众人之长,才能扬长避短.本文中的内容主要是摘自<程序员的SQL金典>,如若大家想拜读,可在网上下载拜读(当然最好的方式还是购买作者的书).关于调优的方案,有涉及硬件方面的知识,也有涉及软件方面的知识.但本人只是个软件方面的IT男,所以只是记录软件方面的内容.其实关于SQL SERVER或者是其它数据库来讲,有些优化手段都是一致的.比如常规的方式有如下几种方式: 创建…
6.4.5 优化MapReduce用户JAVA代码 MapReduce执行代码的方式和普通JAVA应用不同.这是由于MapReduce框架为了能够高效地处理海量数据,需要成百万次调用map和reduce函数.每次调用仅用较少时间.那么就不能用普通的经验来预测常见库(含JDK)的性能表现. 进一步阅读 Joshua Bloch的<Effective Java>中有很多如何调优JAVA代码的方法 在技术45中介绍如何用分析器(profiler)查找MapReduce代码中消耗时间的地方.这里要用同…
1.关于hive的优化 ->大表拆分小表 ->过滤字段 ->按字段分类存放 ->外部表与分区表 ->外部表:删除时只删除元数据信息,不删除数据文件 多人使用多个外部表操作同一份数据文件 ->分区表:hive中的数据库,表,分区来说都是文件夹 提高了检索效率 ->手动创建 ->动态分区 ->外部表+分区表 ->数据的存储 ->存储格式:列式存储 ->压缩 2.SQL的优化 ->后join先filter 3.mapreduce的优化…
poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨询qq:908821478,咨询电话010-84505200. 如何加快查询速度? 1.升级硬件 2.根据查询条件,建立索引,优化索引.优化访问方式,限制结果集的数据量. 3.扩大服务器的内存 4.增加服务器CPU个数 5.对于大的数据库不要设置数据库自动增长,它会降低服务器的性能 6.在查询Select语句中用Where字句限制返回的行数,避免表扫描,…
在生产环境下,有时公司客服反映网页半天打不到,除了在浏览器按F12的Network响应来排查,确定web服务器无故障后.就需要检查数据库是否有出现阻塞 当时数据库的生产环境中主表数据量超过2000w,子表数据量超过1亿,且更新和新增频繁.再加上做了同步镜像,很消耗资源. 这时就要新建一个会话,大概需要了解以下几点: 1.当前活动会话量有多少? 2.会话运行时间? 3.会话之间有没有阻塞? 4.阻塞时间 ? 查询阻塞的方法有很多.有sql 2000 的sp_lock, 有sql 2005及以上的d…
原文:http://bbs.landingbj.com/t-0-245451-1.html 对于SQL的优化,我们主要提供调整执行计划.优化SQL的方法有:缩短访问的路径.尽早过滤数据.尽可能减少排序.降低SQL复杂度.避开MySQL优化器Bug. 在真实环境中,优化SQL主要从以下方面考虑: 减少表连接,减少复杂SQL,拆分成简单SQL: 减少排序:非必要不排序,利用索引排序,减少参与排序的记录数: 尽量避免 SELECT *: 尽量用 JOIN 代替子查询: 尽量少使用 OR,使用 IN 或…
虽然当前各关系库CBO都已经非常先进和智能,但因为关系库理论和实现上的限制,CBO在特殊场景下也会给出次优甚至存在严重性能问题的执行计划,而这些场景中,有一部分只能或适合通过关系库提供的hints来进行干涉和解决.目前,所有三个商业数据库都提供了一定数目的hints,虽然具体使用语法或形式有所差别,但本质都是一样的,那就是指示数据库CBO给出更合理.更高效的执行计划选择.MSSQL作为商业库之一,hints功能当然不会少,下面,对MSSQL中支持和常用的hints做简单介绍. 1.{HASH |…
今天在看崔华老师所著SQL优化一书时,看到他解决SQL性能问题的一个案例,崔华老师成功定位问题并进行了解决.这里,在崔华老师分析定位的基础上,做进一步分析和推理,以便大家一起研究探讨,下面简述该案例场景. 1.发生性能问题的SQL语句: cu --注: 1)十几张表参与连接的较复杂SQL语句. 2.发生性能问题的执行计划: --注: 1)计划中节点19在表S_EVT_ACT上发生了FTS,据说该表上有700多W的数据量. 2)计划中节点34在表S_ACT_EMP上发生了index range s…
前几天,一个朋友找到我,说一个SQL性能有问题,看看能不能优化,下面为过程: 雪豹 9:35:10 在吗 兰花岛主 15:07:39 忙忘了,有事儿? 雪豹 15:07:49 嗯 雪豹 15:07:54 数据库优化问题 兰花岛主 15:08:04 哦,你说. 雪豹 15:09:09 select distincta.suite_no,b.bd_nm,b.crt_date from (select suite_no  from all_suite where cus_id =1)a left jo…
避免执行MR select * or select field1,field2 limit 10 where语句中只有分区字段或该表的本地字段 使用本地set hive.exec.mode.local.auto=true; EXPLAIN的使用 hive对sql的查询计划信息解析 EXPLAIN SELECT COUNT(1) FROM T_TABLE; EXPLAIN EXTENDED SELECT COUNT(1) FROM T_TABLE;(更为详细) 本地MR(提高本地资源利用率,一般在…
1.简单的查询,就是只是select,不带count,sum,group by这样的,都不走map/reduce,直接读取hdfs文件进行filter过滤,即尽量让fetch task(当开启一个Fetch Task功能,就执行一个简单的查询语句不会生成MapRreduce作业,而是直接使用FetchTask,从hdfs文件系统中进行查询输出数据,从而提高效率)任务不走MapReduce. 2.遵循hive的严格模式,禁止以下3种情况的查询模式 (1)当表为分区表时,where子句后无分区字段和…
pq_distribute提示通常被用于提升数据仓库中分区表间的连接操作性能. pq_distribute提示允许你确定参与连接的表数据行在生产和消费并行查询服务进程间如何分配. pq_distribute提示接受三个参数:表名,外分配和内分配. 当执行并行查询连接时,我们总是想着避免PARALLEL_TO_PARALLEL执行计划.PARALLEL_TO_PARALLEL操作意味着输入输出数据流都是并行的,导致连接性能低下.另一方面,PARALLEL_COMBINED_WITH_PARENT操…
(官方文档翻译整理及总结) 一.优化数据仓库 ① Hive LLAP  是一项接近实时结果查询的技术,可用于BI工具以及网络看板的应用,能够将数据仓库的查询时间缩短到15秒之内,这样的查询称之为Interactive Query. Ambari安装好之后,还需要额外的两个步骤来开启Hive LLAP: 1.在yarn中开启Hive LLAP的优先使用权   2.打开hive中的Interactive Query开发并配置相关参数 ② HiveServer2 高效的连接管理,类似于mysql连接池…
Hive在分布式运行的时候最害怕的是数据倾斜,这是由于分布式系统的特性决定的,因为分布式系统之所以很快是由于作业平均分配给了不同的节点,不同节点同心协力,从而达到更快处理完作业的目的. Hive中数据倾斜的原因: 数据在分布式节点上分部不均衡 join时某些key可能特别大(常见null值) group by 时某个值可能特别多 count(distinct key...)时有可能会出现数据倾斜,因为其内部处理会进行group by 操作 join join时key最好是分散的,如果一个key的…
合理使用文件存储格式 建表时,尽量使用 orc.parquet 这些列式存储格式,因为列式存储的表,每一列的数据在物理上是存储在一起的,Hive查询时会只遍历需要列数据,大大减少处理的数据量. 采用合适的文件压缩 Hive最终是转为 MapReduce 程序来执行的,而 MapReduce 的性能瓶颈在于网络 IO 和 磁盘 IO,要解决性能瓶颈,最主要的是减少数据量,对数据进行压缩是个好的方式.压缩虽然是减少了数据量,但是压缩过程要消耗CPU的,但是在Hadoop中, 往往性能瓶颈不在于CPU…
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将追究法律责任!原文链接:http://www.cnblogs.com/jiangzhengjun/p/4265175.html 11.1.     数据库编程方面优化 1.   个表会出现性能问题, 当使用JOIN联接的表超过3个时 l  如果两个表的数据非常大时(上百万),使用JOIN进行联合查询…
建立适当的索引(参考<正确建立数据库索引的姿势>)   用UNION替换OR (适用于索引列)   用exist.not exist代替 in.not in   不要以字符格式声明数字(会使索引无效,产生全表扫描)   不要使用select * (在select后列出每一列)   不要JOIN和WHERE子句中进行计算操作(在表中用一新列来事先存放计算的值)   避免在索引列上使用IS NULL和IS NOT NULL   尽量对表中为NULL的列使用占位符  …
表分为内部表.外部表.分区表,桶表.内部表.外部表.分区表对应的是目录,桶表对应目录下的文件.…
数据的倾斜: 主要就是合理的控制我们的map个数以及reduce个数 第一个问题:maptask的个数怎么定的???与我们文件的block块相关,默认一个block块就是对应一个maptask 第二个问题:reduceTask的个数怎么定的???是我们自己手动设置的,爱设几个设几个,没人管你 第三个问题:是不是maptask的个数越多越好:不一定:有时候有些小文件,都要启动一个maptask,分配资源的时间超过了数据处理的时间 减少mapTask的个数:设置map端的小文件合并:使用combin…