本文概述了在Azure Database for PostgreSQL灵活服务器中使用查询存储的最佳做法。
设置最佳查询捕获模式
配置查询存储以捕获最重要的查询。
| pg_qs.query_capture_mode | 情景 |
|---|---|
all |
捕获所有查询(顶级或嵌套)及其执行频率和其他统计信息。 使用此模式标识工作负荷中的新查询。 检测是否使用了即席查询,从而识别用户定义的参数化或自动参数化的机会。 |
top |
仅捕获顶级查询。 顶级查询是客户端直接发出的查询。 这些查询不包括嵌套语句(在过程或函数内执行的语句)。 |
none |
不会捕获任何新查询。 如果已在要调查的时间范围内捕获了查询集,并且不想继续记录任何新查询,请设置此值。
none 适用于测试和基准测试环境。 请谨慎使用 none ,因为你可能错过了跟踪和优化重要新查询的机会。 |
注释
pg_qs.query_capture_mode 取代了 pgms_wait_sampling.query_capture_mode。 如果 pg_qs.query_capture_mode 为 none,则 pgms_wait_sampling.query_capture_mode 设置不起作用。
保留所需的数据
pg_qs.retention_period_in_days 参数指定查询存储的数据保留期。 系统删除早于该时间段的统计信息。 系统还会删除那些没有任何统计信息引用的查询的查询文本或查询计划。 默认情况下,查询存储配置为将数据保留 7 天。 避免保留你并不打算使用的历史数据。 若需要将数据保留更长时间,请增大保留期的值。