随笔分类 -  postgresql

摘要:业务场景:大批量更新时,数据库长时间CPU占用超过90,影响其他正常业务流程,参考阿里云上的一篇文章:https://help.aliyun.com/knowledge_detail/43562.html 在数据库运维当中,一个DBA比较常遇到又比较紧急的问题,就是突发的CPU满(CPU利用率达到1 阅读全文
posted @ 2018-06-08 17:29 Splace 阅读(1678) 评论(0) 推荐(0)
摘要:日期操作 1. 操作当前日期和时间 Select NOW();返回日期时间还包括时区 2. 操作时间的获取子域 oracle中的TO_CHAR可以从日 期中拿到所需要的子域,日期,小时,分钟等。 3. 时间间隔,在一些应用中需要知道两个时间间隔多远 测量不同时间的间隔,不同的数据库之间函数语法有很大 阅读全文
posted @ 2018-03-11 12:25 Splace 阅读(3549) 评论(0) 推荐(0)
摘要:本篇为之前学习PG数据库一些基本操作使用以及优化注意。 <!--[if gte mso 9]><xml><o:OfficeDocumentSettings></o:OfficeDocumentSettings></xml><![endif]--> 比较运算符 = : <>,!=,<= , <,>=, 阅读全文
posted @ 2018-03-10 14:47 Splace 阅读(1135) 评论(0) 推荐(0)
摘要:系统吞度量要素 一个系统的吞度量(承压能力)与request对CPU的消耗、外部接口、IO等等紧密关联。单个reqeust 对CPU消耗越高,外部系统接口、IO影响速度越慢,系统吞吐能力越低,反之越高。系统吞吐量几个重要参数:QPS(TPS)、并发数、响应时间QPS(TPS):每秒钟request/ 阅读全文
posted @ 2017-11-02 10:04 Splace 阅读(915) 评论(0) 推荐(0)
摘要:业务过程中碰到多个join引起慢SQL问题,数据量不大,但查询很慢,搜到一片BLog,参考解决。 业务过程不记录,以blog内容重现: 原SQL: 以上SQL同: 分析优化: 从语义来看,这条SQL是在经过几个JOIN后取其中一个表的两个字段的唯一值。 但是每一次关联,都可能产生冗余的值,所以导致了 阅读全文
posted @ 2017-09-01 22:06 Splace 阅读(2147) 评论(0) 推荐(0)
摘要:本篇主要是上篇查询优化例子。 查询优化举例 连接5张表(persons, mobiles, mails, addresses, bank_accounts),获取个人全部信息。 作为查询优化必须解决一下两个问题: 1. What kind of join should I use for each 阅读全文
posted @ 2017-04-06 19:31 Splace 阅读(767) 评论(0) 推荐(0)
摘要:查询优化: 现代数据库都使用一种基于成本优化(参见第一部分)的方式进行优化查询,这种方式的思路是给每种基本运算设定一个成本,然后采用某种运算顺序总成本最小的方式进行查询,得到最优的结果。 为简化理解,对数据库的查询重点放在查询时间复杂度上,而不考虑CPU消耗,内存占用与磁盘I/O,且相比与CPU消耗 阅读全文
posted @ 2017-04-01 14:11 Splace 阅读(4591) 评论(1) 推荐(0)
摘要:窗口函数对于一些统计应用情况有非常好的使用效果,本文主要举例使用常用的几种窗口函数。 定义 A window function performs a calculation across a set of table rows that are somehow related to the curr 阅读全文
posted @ 2017-03-21 17:06 Splace 阅读(2242) 评论(0) 推荐(1)
摘要:查询管理器: 查询管理器是数据库的关键,在这里将对查询进行检查、优化、执行,并将查询结果返回给客户端。 Fig. 10 一般有以下步骤: 以下重点分析前面三个步骤。 查询解析: 在该过程一般检查SQL语法、查询表是否存在、列是否存在、类型是否正确、运算是否正确,然后检查用户是否对表有操作权限,解析过 阅读全文
posted @ 2017-03-20 12:24 Splace 阅读(894) 评论(0) 推荐(0)
摘要:本文从"数据库是如何处理一个 SQL 查询的?"这一基本数据库操作来讨论关系数据库的工作原理。 cost based optimization(基于成本的优化) 为了解成本,需要了解一下复杂度的概念,具体考虑时间复杂度,一般用O表示,对应某个算法(查询),对于其随着数据量的增加复杂度增加趋势,而非具 阅读全文
posted @ 2017-03-15 22:32 Splace 阅读(4602) 评论(0) 推荐(1)
摘要:语法:ROW_NUMBER() OVER(PARTITION BY COLUMN ORDER BY COLUMN) 简单的说row_number()从1开始,为每一条分组记录返回一个数字,这里的ROW_NUMBER() OVER (ORDER BY xlh DESC) 是先把xlh列降序,再为降序以 阅读全文
posted @ 2017-02-27 09:53 Splace 阅读(368) 评论(0) 推荐(0)
摘要:转载 一篇蛮老的文章了,但是还是很有用,可参考修补。 PG的配置文件是数据库目录下的postgresql.conf文件,8.0以后的版本可支持K,M,G这样的参数,只要修改相应参数后重新启动PG服务就OK了。 shared_buffers:这是最重要的参数,postgresql通过shared_bu 阅读全文
posted @ 2016-06-15 17:17 Splace 阅读(4028) 评论(0) 推荐(0)
摘要:转载以作参考。 错误1 FATAL: connection limit exceeded for non-superusers 原因:非超级用户的连接数(max_connections - superuser_reserved_connections)超过了设定值 解决办法:增加max_connec 阅读全文
posted @ 2016-06-15 17:10 Splace 阅读(3038) 评论(0) 推荐(0)
摘要:环境:Linux localhost.localdomain 2.6.32-431 GNU/Linux x86_64 Postgresql版本:postgresql.9.5.3 添加开启自启设置:http://my.oschina.net/ensn/blog/690719 1.下载postgresq 阅读全文
posted @ 2016-06-13 19:58 Splace 阅读(1027) 评论(0) 推荐(0)
摘要:在数据库postgresql中,一个客户端到服务器连接实际上是一个tcp socket连接,tcp连接是虚连接,一方非正常退出(如断电),另一方会继续维持这个连接。 举个例子,一个客户端电脑正常连上服务器后,强行拔掉电源造成人为断电,重新启动电脑,再此连上服务器。用SQL语句select * fro 阅读全文
posted @ 2016-05-09 18:35 Splace 阅读(6541) 评论(0) 推荐(1)
摘要:pg_stat_activity是一个非常有用的视图,可以帮助排查pg的一些问题(如连接数目过多问题)。pg_stat_activity每行展示的是一个“process”的相关信息,这里的“process”可以理解为一个DB连接。 :The pg_stat_activity view will ha 阅读全文
posted @ 2016-04-22 09:23 Splace 阅读(8848) 评论(0) 推荐(1)
摘要:转自:http://blog.163.com/digoal@126/blog/static/1638770402015112144250486/PostgreSQL是和Oracle最接近的企业数据库,包括数据类型,功能,架构和语法等几个方面。甚至大多数的日常应用的性能也不会输给Oracle。 但是Oracle有些函数或者包,默认PostgreSQL是没有的,需要安装orafce包来实现这些兼容... 阅读全文
posted @ 2016-04-11 16:32 Splace 阅读(2915) 评论(0) 推荐(1)
摘要:--对于分区表constraint_exclusion 这个参数需要配置为partition或on postgres=# show constraint_exclusion ; constraint_exclusion ---------------------- partition --创建父子表, 用于存储分区数据 create table t(id int primar... 阅读全文
posted @ 2016-04-11 11:22 Splace 阅读(709) 评论(0) 推荐(0)
摘要:此概念的接触是在做分区表的时候碰到的,分区表按时间字段分区,在查询时当where条件中时间为now()或者current_time()等时是无法查询的,即使进行格式转换也不行,只有是时间格式如‘2015-12-12’才能查询,在请教过以后说是函数形态的问题。搜索一篇文章介绍: 转自:http://b 阅读全文
posted @ 2016-03-28 16:05 Splace 阅读(626) 评论(0) 推荐(0)
摘要:通过安装第三方插件pldebugger,可实现在pgadmin客户端对函数设置断点、调试,具体过程如下:1.下载pldebugger安装包:http://git.postgresql.org/gitweb/ 所有第三方插件都可在此下载,此处下载pldebugger.git2.拷贝安装将下载好的压缩包 阅读全文
posted @ 2016-03-10 13:08 Splace 阅读(4744) 评论(0) 推荐(0)