理解 glibc 内存分配器的机制与实现
一直以来,我都沉迷于堆内存的一切。脑子里一直充斥着这些问题:怎样从内核获取堆内存?内存管理的效率如何?是什么在管理它?内核?库函数?还是应用程序?堆内存可以扩展吗?直到最近我才有时间思考并理解这些问题。所以想在本文和大家分享我的思考过程。除了我们即将讨论的内存分配...
Flyway:简单的数据库迁移工具
Flyway是一个简单开源数据库版本控制器(约定大于配置),主要提供migrate、clean、info、validate、baseline、repair等命令。它支持SQL(PL/SQL、T-SQL)方式和Java方式,支持命令行客户端等,还提供一系列的插件支持(Maven、Gradle、SBT、ANT等)。主要特性普通SQL:纯SQL脚本(包括占位符替换)没有专有的X...
SQL优化(一) Merge Join vs. Hash Join vs. Nested Loop
本文转发自Jason’s Blog,原文链接 http://www.jasongj.com/2015/03/07/Join1/Nested Loop,Hash Join,Merge Join介绍 Nested Loop:对于被连接的数据子集较小的情况,Nested Loop是个较好的选择。Nested Loop就是扫描一个表(外表),每读到一条记录,就根据Join字段上的索引去另一张表(内表)里面查找,...
The Visibility Map (and other relation forks)
The Visibility Map is a simple data structure associated with every heap relation (table). It is a "relation fork"; an on-disk ancillary file associated with a particular relation (table or index). Note that index relations (that is, indexes) do not have a visibility map associated with them. The ...
SQL优化 —— 读懂执行计划
Bucket and Batch I saw that functions which use hash join, like as ExecHashGetBucketAndBatch and ExecScanHashBucket, have bucket and batch concepts.So, I would like to know the differences between bucket and batch. I dont understand tables partitioning mechanism in hash join.A bucket is, well, on...
GPDB pg_log
In the gpperfmon DB, there are 3 tables involved in recording alert log information from the pg_log files for a Greenplum DB. These tables are:log_alert_now: Current pg_log errors and warnings data is stored in log_alert_now during the period between data collection from the Command C...
什么是Segmentation fault(Core Dump)? + 我遇到的实例问题
什么是Core Dump?Core的意思是内存, Dump的意思是扔出来, 堆出来.开发和使用Unix程序时, 有时程序莫名其妙的down了, 却没有任何的提示(有时候会提示core dumped). 这时候可以查看一下有没有形如core.进程号的文件生成, 这个文件便是操作系统把程序down掉时的内存内容扔出来生成的, 它可以做为调试程序的参考.core dump...
什么是Core Dump
今天调试一个程序, 用到了core dump, 于是写出来, 记于此.什么是Core Dump?Core的意思是内存, Dump的意思是扔出来, 堆出来.开发和使用Unix程序时, 有时程序莫名其妙的down了, 却没有任何的提示(有时候会提示core dumped). 这时候可以查看一下有没有形如core.进程号的文件生成, 这个文件便是操作系统把程序down掉时的内存...
透过proc看内存
1 内存信息查看proc文件系统中涉及内存使用情况的文件主要有:/proc/meminfo表征了系统内存使用概要信息:[root@localhost ~]# cat /proc/meminfoMemTotal: 505964 kB &n...
DNS查询 and trouble-shooting case
while true; do curl -s -o /dev/null -w "Connect: %{time_connect} TTFB: %{time_starttransfer} Total time: %{time_total} Size: %{size_download} \n" -H 'Host: www.decathlon.fr'
1ID's lock problem
For 1ID's lock problem, after I exchange with Oliver, my debrief as blow:At first, fix SSL encryption slowness. --> NSOC team made an intervention for problem with SSL configuration Then, analyze apache log( mod_jk.log on www52 and www53) and notice...
Configuration modification after black friday
Actual configuration in préprod
Postgres Query tuning
IPK --> unique, not nullUnique contrast --> unique, nullableAuto vacuum select name,setting from pg_settings;autovacuum_analyze_scale_factor: Modification (insert/update/delete rows) reach autovacuum_analyze_threshold\d+ [table_name]\d+ [table_name]\h alterALTER TABLE [tabl...
HTTP 教程
HTTP1.0定义了三种请求方法: GET, POST 和 HEAD方法。序号方法描述1GET请求指定的页面信息,并返回实体主体。2HEAD类似于get请求,只不过返回的响应中没有具体的内容,用于...
实用的Linux命令
//每2秒检查1次,检查10次root@cnpphttp50:~# top -d 2 -n 10//显示现在登陆着的用户,load:5/10/15 minsroot@cnpphttp50:~# w 11:29:08 up 231 days, 10:44, 1 user, load average: 0.00, 0.00, 0.00USER TTY FROM ...
PostgreSQL 事务模型介绍
PostgreSQL有自己的事务实现模型。总体上分为三层:top layer, middle layer和bottom layer。1. Top LayerTop Layer主要由用户控制,对用户可见。这一层的事务,主要由用户来决定事务的发起与结束。事务生命周期由用户控制,是high-level的。也就是通常所说的事务块,transaction block。当用户发起:BEGIN, ...
postgresql 的三类日志
一、PostgreSQL有3种日志: 1)pg_log(数据库运行日志) 内容可读 默认关闭的,需要设置参数启动 2)pg_xlog(WAL 日志,即重做日志) 内容一般不具有可读性 强制开启 3)pg_clog(事务提交日志,记录的是...
Postgres Checkpoint
PostgreSQL checkpoint原理 1.PG检查点的类型Shutdown检查点:在PG实例shutdown时做的检查点Recovery End检查点:在recovery 结束阶段做的检查点,类似于shutdown检查点,只不过在WAL恢复结束时发起。Immediate检查点:不仅仅创建检查点,而且会马上做。这类请求一般在比较紧急的情况下,需要马上获取...
oracle分页查询语句
Oracle分页查询格式: 以下是代码: SELECT * FROM ( SELECT A.*, ROWNUM RN FROM (SELECT * FROM 表名) A WHERE ROWNUM <= 40 ) WHERE RN >= 21 其中最内层的查询SELECT * FROM 表名表示不进行翻页的原始查询语句。ROWNUM <= ...
oracle中rownum和rowid的区别
rownum和rowid都是伪列,但是两者的根本是不同的,rownum是根据sql查询出的结果给每行分配一个逻辑编号,所以你的sql不同也就会导致最终rownum不同,但是rowid是物理结构上的,在每条记录insert到数据库中时,都会有一个唯一的物理记录 ,例如 AAAMgzAAEAAAAAgAAB 7499 ALLEN SALESMAN 7698 1981/2/20 1600.00 300.0...