通过数据库日志获取数据库中的慢SQL

文章目录

环境

系统平台:N/A

版本:6.0,5.6.5,5.6.4,5.6.3,5.6.1,4.5.2,4.5,4.3.4.9,4.3.4.8,4.3.4.7,4.3.4.6,4.3.4.5,4.3.4.4,4.3.4.3,4.3.4.2,4.3.4,4.7.8,4.7.7,4.7.6,4.7.5,4.3.2,4.1.1

文档用途

本文介绍了如何通过设置数据库日志获取数据库中执行较慢的SQL语句。

详细信息

首先,修改配置文件postgresql.conf,设置以下参数,修改完成后,需重启数据库

#开启日志记录

logging_collector = on

#设置日志输出格式,格式有stderr(默认), csvlog , syslog

log_destination = 'csvlog'

#设置日志存放位置,下面设置表示日志存放在$PGDATA下hgdb_log日志中

log_directory = 'hgdb_log'

#设置日志截断

log_truncate_on_rotation = on

#设置日志的名称

log_filename = 'highgodb_%d.log'

#设置跟踪的SQL语句级别,级别包含none(默认,只记录出错信息), ddl, mod, all

log_statement = all

#记录执行超过以下时间的SQL语句,单位毫秒

log_min_duration_statement = 5000

注:

日志保留时间通过日志名称控制,设置如下

log_filename = 'postgresql-%I.log' #最多保存12小时的日志,每小时一个文件

log_filename = 'postgresql-%H.log' #最多保存24小时的日志,每小时一个文件

log_filename = 'postgresql-%w.log' #最多保存一周的日志,每天一个文件

log_filename = 'postgresql-%d.log' #最多保存一个月的日志,每天一个文件

log_filename = 'postgresql-%j.log' #最多保存一年的日志,每天一个文件

创建日志分析用表

CREATE TABLE hgdb_log

( log_time timestamp(3) with time zone,

user_name text,

database_name text,

process_id integer,

connection_from text,

session_id text,

session_line_num bigint,

command_tag text,

session_start_time timestamp with time zone,

virtual_transaction_id text,

transaction_id bigint,

error_severity text,

sql_state_code text,

message text,

detail text,

hint text,

internal_query text,

internal_query_pos integer,

context text,

query text,

query_pos integer,

location text,

application_name text,

PRIMARY KEY (session_id, session_line_num)

);

将日志文件导入数据

COPY hgdb_log FROM '/path/to/logfile.csv' WITH csv;

使用SQL对日志进行分析,示例如下

按执行时间由长到短排序

select log_time,database_name,user_name,application_name,substr(message, 7,8),message from hgdblog where message like '%执行时间%' order by substr(

相关推荐
SelectDB31 分钟前
快手基于 Apache Doris 千亿多模态检索的实践
大数据·数据库·数据分析
SelectDB36 分钟前
StarRocks 迁移至 Apache Doris 完整指南:三步完成结构、数据与业务平滑切换
大数据·数据库·数据分析
这个DBA有点耶37 分钟前
InnoDB索引组织表下,复合主键和自增主键的物理存储差异与选型对比
数据库·mysql·架构
其实防守也摸鱼1 小时前
常见安全架构中 Shiro 的认证确认机制解析
运维·服务器·数据库·windows·github
TDengine (老段)2 小时前
TDengine 常见问题 TOP7
大数据·数据库·时序数据库·常见问题·tdengine·涛思数据
+VX:Fegn08952 小时前
计算机毕业设计|基于java+ vue共享单车信息系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
mysqloffice2 小时前
数智时代,核心系统数据库架构往哪走
数据库·人工智能
l1t3 小时前
DeepSeek总结的 pgColumnar 1.0-alpha4 发布说明
数据库·postgresql
DBA_G3 小时前
南大通用GBase 8s数据库助力某农商行核心系统投产
数据库
工业涂料百问3 小时前
【环保合规】系列(四)工业涂料碳足迹怎么算?边界定义、因子选择与减排优先级拆解
数据库