暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
梧桐数据数据库查询优化(三).pdf
102
7页
3次
2025-05-29
免费下载
梧桐数据数据库查询优化(三)
统计数据
优化器为了得到优化的查询执行计划,需要使用到表的
统计信息。
优化器使用的一种统计数据是表的元组(reltuples)
和磁盘页数(relpages这些信息存放在 pg_class 系统
中。
reltuples relpages
户执行 Analyze 时的时候更新。
postgres=# SELECT relname, relkind, reltuples, relpages FROM pg_class
WHERE relname = 'lineitem';
relname | relkind | reltuples | relpages
--------+---------+-------------+----------
lineitem | r | 6.00122e+06 | 29911
(1 row)
大部分查询会有一些 where 条件,用于从一个表中选择
出部分满足条件的元组。优化器需要估计选择谓词的选择
(selectivity) where 条件中满足条件的元组比例。
估计的统 pg_statistic 系
pg_statistic 系统表在用户使用 Analyze 时更新。
WuTongDB pg_statistic pg_stats
助用户更容易的查看一个表的统计数据例如下面的语句可
以查看 lineitem 表的相关统计数据
postgres=# SELECT * FROM pg_stats WHERE tablename = 'lineitem';
pg_statistic 中存放的信息由 ANALYZE 语句收集。
most_common_vals histogram_bounds 条目数由
default_statistics_target 确定。
default_statistics_target 参数可以在列级别设置,也可
以设置一个全局值,默认值为 25。用户可以调整该值的大小
来改变统计数据收集的精确性。
default_statistics_target 值越大,收集的统计信息越精
确,但是 ANALYZE 语句运行的时间会越长。
# 设置一个列的 statistics target
alter table <table_name> alter column <column_name> set statistics <
value from 1 to 1000 > ;
# 恢复使用 default_statistics_target
alter table <table_name> alter column <column_name> set statistics
诊断性能问
当你发现查询性能问题的时候,可以从以下几个方面入
手来加以诊断:
: HDFS
DataNode 或者 WuTongDB segment,方法如下
# 检查是否有 DataNode 死掉, 使用命令
hadoop dfsadmin -report
# 检查是否有 WuTong segment 死掉, 可以使用语句查看:
select * from oushu_cluster_status;
检查节点上是不是有坏盘。查看硬件的性能是不是
期待的一样。可以通过”WuTongDB checkperf”命令检查网
络,磁盘速度。磁盘速度以及网络速度经常是问题所在。
查看 Explain Analyze 查询的结果,找出慢的操作,
从而推测出问题的地方
I. 有时候有些操作不能在内存中完成, 比如 HashJoin,
HashAggregate,这时候在 Explain Analyze 的输出中会看
of 7
免费下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

关注
最新上传
暂无内容,敬请期待...
下载排行榜
Top250 周榜 月榜