用户指南—诊断与优化—SQL审计与分析—简介

本文涉及的产品
云原生数据库 PolarDB 分布式版,标准版 2核8GB
简介: PolarDB-X联合日志服务推出SQL审计与分析功能,将SQL审计日志投递到日志服务中,实现了日志的实时查询、可视化分析、告警、投递、加工等操作。本文介绍SQL审计日志相关的信息。

功能优势

  • 操作简单:仅需在控制台上打开功能开关,即可实时进行SQL日志的审计与分析。
  • 性能无损:日志服务能够实时拉取PolarDB-X实例下各数据库的SQL审计日志文件,对实例本身性能无影响。
  • 实时分析:依托日志服务,提供实时日志分析、开箱即用的报表中心和下钻分析的功能,帮助您准确地了解数据库执行状况、性能和安全问题。
  • 实时告警:支持基于特定指标定制实时的监测与告警,当关键业务出现异常时可通过多种途径通知告警。

注意事项

  • SQL审计日志默认保存45天。
  • 日志服务会不定期更新SQL日志审计功能,专属日志库的索引与默认报表也会自动更新,请勿在日志服务控制台上随意删除或修改PolarDB-X的Project、Logstore、索引和仪表盘等配置。
  • PolarDB-XSQL审计与分析功能本身免费使用,但日志服务会对存储空间、读取流量、请求数量、数据加工、数据投递等进行收费,详情请参见日志服务产品定价
  • SQL审计与分析功能默认关闭,您可以在PolarDB-X控制台上随时开启SQL审计与分析
  • 功能关闭后将不再向日志服务写入数据,但您仍可以查看历史数据,这部分历史数据会产生存储和索引费用。您可以删除所有数据来停用日志服务,日志停止服务后将不再计费。

应用场景

  • 问题SQL排查开启SQL审计与分析功能后,您可以通过快速检索SQL日志排查定位问题。例如您可以使用如下命令查询响应时间超过1s的所有SQL:
__topic__:polardbx_sqlaudit and instance_id:pxc-*************** and response_time >= 1000 | select sql, response_time

2..png

  • 如上图所示,您可以在查询结果查看目标SQL的执行时间、执行该SQL的客户端IP地址等信息。
  • 高代价SQL模板分析大多数应用中,SQL通常是基于若干模板动态生成的,只是参数不同。例如,您可以使用如下命令获取目标数据库中的高代价SQL模板信息。
__topic__:polardbx_sqlaudit and instance_id:pxc-**************** | SELECT sql_code as "SQL模板ID", round(total_time * 1.0 /sum(total_time) over() * 100, 2) as "总体耗时比例(%)" ,execute_times as "执行次数", round(avg_time) as "平均执行时间",round(avg_rows) as "平均影响行数", CASE WHEN length(sql) > 200 THEN  concat(substr(sql, 1, 200), '......') ELSE trim(lpad(sql, 200, ' ')) end as "样例SQL" FROM  (SELECT sql_code, count(1) as execute_times, sum(response_time) as total_time, avg(response_time) as avg_time, avg(affect_rows) as avg_rows, arbitrary(sql) as sql FROM log GROUP BY sql_code) ORDER BY "总体耗时比例(%)" desc limit 10

3..png

  • 如上图所示,查询结果钟包括SQL模板的ID、该模板SQL占总体SQL的耗时比例、执行次数、平均执行时间、平均影响行数以及样例 SQL等信息。您可以基于该分析结果,找到应用中代价最高的SQL模板,并对其进行优化。
  • 日志报表统计为了便于分析问题,PolarDB-X SQL审计与分析功能结合日志服务,提供了开箱即用的日志报表功能,帮助您实时诊断分析数据库的执行状况、性能和潜在安全问题等,详情请参见日志报表
相关实践学习
快速体验PolarDB开源数据库
本实验环境已内置PostgreSQL数据库以及PolarDB开源数据库:PolarDB PostgreSQL版和PolarDB分布式版,支持一键拉起使用,方便各位开发者学习使用。
目录
打赏
0
0
0
0
50
分享
相关文章
MySQL进阶突击系列(07) 她气鼓鼓递来一条SQL | 怎么看执行计划、SQL怎么优化?
在日常研发工作当中,系统性能优化,从大的方面来看主要涉及基础平台优化、业务系统性能优化、数据库优化。面对数据库优化,除了DBA在集群性能、服务器调优需要投入精力,我们研发需要负责业务SQL执行优化。当业务数据量达到一定规模后,SQL执行效率可能就会出现瓶颈,影响系统业务响应。掌握如何判断SQL执行慢、以及如何分析SQL执行计划、优化SQL的技能,在工作中解决SQL性能问题显得非常关键。
如何优化SQL查询以提高数据库性能?
这篇文章以生动的比喻介绍了优化SQL查询的重要性及方法。它首先将未优化的SQL查询比作在自助餐厅贪多嚼不烂的行为,强调了只获取必要数据的必要性。接着,文章详细讲解了四种优化策略:**精简选择**(避免使用`SELECT *`)、**专业筛选**(利用`WHERE`缩小范围)、**高效联接**(索引和限制数据量)以及**使用索引**(加速搜索)。此外,还探讨了如何避免N+1查询问题、使用分页限制结果、理解执行计划以及定期维护数据库健康。通过这些技巧,可以显著提升数据库性能,让查询更高效流畅。
基于SQL Server / MySQL进行百万条数据过滤优化方案
对百万级别数据进行高效过滤查询,需要综合使用索引、查询优化、表分区、统计信息和视图等技术手段。通过合理的数据库设计和查询优化,可以显著提升查询性能,确保系统的高效稳定运行。
94 9
MySQL原理简介—10.SQL语句和执行计划
本文介绍了MySQL执行计划的相关概念及其优化方法。首先解释了什么是执行计划,它是SQL语句在查询时如何检索、筛选和排序数据的过程。接着详细描述了执行计划中常见的访问类型,如const、ref、range、index和all等,并分析了它们的性能特点。文中还探讨了多表关联查询的原理及优化策略,包括驱动表和被驱动表的选择。此外,文章讨论了全表扫描和索引的成本计算方法,以及MySQL如何通过成本估算选择最优执行计划。最后,介绍了explain命令的各个参数含义,帮助理解查询优化器的工作机制。通过这些内容,读者可以更好地理解和优化SQL查询性能。
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
|
10月前
|
SQL Server的并行实施如何优化?
【7月更文挑战第23天】SQL Server的并行实施如何优化?
265 13
|
10月前
|
SQL
解锁 SQL Server 2022的时间序列数据功能
【7月更文挑战第14天】要解锁SQL Server 2022的时间序列数据功能,可使用`generate_series`函数生成整数序列,例如:`SELECT value FROM generate_series(1, 10)。此外,`date_bucket`函数能按指定间隔(如周)对日期时间值分组,这些工具结合窗口函数和其他时间日期函数,能高效处理和分析时间序列数据。更多信息请参考官方文档和技术资料。
162 9
|
10月前
|
对比 SQL Server中的VARCHAR(max) 与VARCHAR(n) 数据类型
【7月更文挑战7天】SQL Server 中的 VARCHAR(max) vs VARCHAR(n): - VARCHAR(n) 存储最多 n 个字符(1-8000),适合短文本。 - VARCHAR(max) 可存储约 21 亿个字符,适合大量文本。 - VARCHAR(n) 在处理小数据时性能更好,空间固定。 - VARCHAR(max) 对于大文本更合适,但可能影响性能。 - 选择取决于数据长度预期和业务需求。
748 1
MySQL、SQL Server和Oracle数据库安装部署教程
数据库的安装部署教程因不同的数据库管理系统(DBMS)而异,以下将以MySQL、SQL Server和Oracle为例,分别概述其安装部署的基本步骤。请注意,由于软件版本和操作系统的不同,具体步骤可能会有所变化。
752 3
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等